
:root{--bg:#0b100b;--panel:#151d14;--panel2:#1c281a;--panel3:#253423;--line:#354933;--text:#f2f5ed;--muted:#9fad99;--green:#83d65d;--green2:#b2f07e;--gold:#f2c75a;--red:#ee6b68;--blue:#68a7ea;--purple:#ad7bea;--shadow:0 12px 30px rgba(0,0,0,.28)}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:radial-gradient(circle at 50% -10%,#253821 0,#10170f 40%,#090d09 100%);min-height:100vh}button{font:inherit}.app{max-width:820px;margin:auto;min-height:100vh;padding-bottom:88px}
header{position:sticky;top:0;z-index:20;padding:10px 12px 11px;background:rgba(10,14,9,.93);backdrop-filter:blur(10px);border-bottom:1px solid #2a3828}.brand{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}.brand h1{font-size:21px;margin:0;letter-spacing:.2px}.version{font-size:10px;border:1px solid #41623a;color:var(--green2);padding:3px 7px;border-radius:999px}.power{font-size:11px;color:var(--muted);white-space:nowrap}.power b{color:var(--gold);font-size:13px}.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.stat{background:linear-gradient(180deg,#1e291c,#151d14);border:1px solid #30422e;border-radius:10px;padding:7px 5px;text-align:center;font-size:10px;color:var(--muted)}.stat b{display:block;font-size:14px;color:#fff;margin-top:1px}
main{padding:12px}.screen{display:none}.screen.active{display:block}.hero-card,.card{background:linear-gradient(180deg,rgba(31,44,29,.97),rgba(20,28,19,.98));border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow);overflow:hidden;margin-bottom:12px}.card{padding:14px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px}.section-title h2,.section-title h3{margin:0}.muted{color:var(--muted);font-size:13px}.tiny{font-size:11px;color:var(--muted)}.btn{border:0;border-radius:11px;padding:11px 13px;background:linear-gradient(180deg,#9be570,#74c951);color:#10200b;font-weight:900;box-shadow:inset 0 1px rgba(255,255,255,.25);cursor:pointer}.btn.secondary{background:#33442f;color:#f1f5ed}.btn.gold{background:linear-gradient(180deg,#f7d879,#e6b743);color:#312200}.btn.danger{background:var(--red);color:white}.btn:disabled{filter:grayscale(.5);opacity:.42}.pill{display:inline-flex;align-items:center;gap:4px;border:1px solid #40523c;background:#1b2619;border-radius:999px;padding:4px 8px;font-size:11px;color:var(--muted)}
/* character */.character-stage{position:relative;min-height:455px;background:radial-gradient(circle at 50% 36%,#31452d 0,#182217 42%,#10160f 74%),repeating-linear-gradient(90deg,transparent 0 44px,rgba(255,255,255,.015) 45px 46px);border-bottom:1px solid var(--line);padding:14px}.char-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.char-title{font-weight:900;font-size:20px}.level-badge{background:#10170f;border:1px solid #456342;border-radius:10px;padding:6px 9px;font-size:12px}.equipment-grid{display:grid;grid-template-columns:1fr minmax(150px,1.2fr) 1fr;gap:8px;align-items:center;min-height:360px}.equip-col{display:grid;gap:10px}.slot{min-height:83px;border:1px solid #50634a;border-radius:13px;background:linear-gradient(180deg,rgba(42,57,39,.9),rgba(27,38,25,.93));padding:8px;position:relative;box-shadow:inset 0 0 20px rgba(0,0,0,.2)}.slot-icon{font-size:23px}.slot-label{font-size:10px;text-transform:uppercase;color:#92a68d;letter-spacing:.7px}.slot-name{font-size:12px;font-weight:800;margin-top:4px;line-height:1.15}.rarity-epic{border-color:#936ad2!important;box-shadow:inset 0 0 20px rgba(154,101,226,.13)}.character-figure{align-self:end;min-height:330px;display:flex;align-items:flex-end;justify-content:center;position:relative}.figure-glow{position:absolute;width:180px;height:180px;border-radius:50%;background:rgba(131,214,93,.12);filter:blur(8px);bottom:42px}.person{position:relative;width:135px;height:300px;filter:drop-shadow(0 16px 12px rgba(0,0,0,.45))}.head{position:absolute;left:42px;top:8px;width:52px;height:58px;background:#d59a69;border-radius:45% 45% 48% 48%;border:3px solid #182116}.hair{position:absolute;left:39px;top:2px;width:59px;height:28px;background:#2a211a;border-radius:50% 50% 35% 35%}.cap{position:absolute;left:33px;top:-4px;width:69px;height:22px;background:#5da94a;border-radius:50% 50% 20% 20%;border:3px solid #22321f}.cap:after{content:'';position:absolute;right:-15px;top:11px;width:27px;height:7px;background:#5da94a;border-radius:0 9px 9px 0}.neck{position:absolute;left:57px;top:58px;width:24px;height:22px;background:#c88b5e}.torso{position:absolute;left:26px;top:73px;width:84px;height:112px;background:linear-gradient(135deg,#283328,#182219);clip-path:polygon(15% 0,85% 0,100% 100%,0 100%);border-radius:12px}.torso:after{content:'🌿';position:absolute;left:28px;top:34px;font-size:27px}.arm{position:absolute;top:82px;width:25px;height:115px;background:#c98e62;border-radius:15px}.arm.left{left:8px;transform:rotate(8deg)}.arm.right{right:8px;transform:rotate(-8deg)}.leg{position:absolute;top:178px;width:33px;height:114px;background:#27372a;border-radius:5px 5px 15px 15px}.leg.left{left:31px}.leg.right{right:31px}.shoe{position:absolute;bottom:0;width:45px;height:18px;background:#111;border-radius:10px 13px 5px 5px}.shoe.left{left:22px}.shoe.right{right:22px}.char-name{text-align:center;font-weight:900;margin-top:4px}.char-sub{text-align:center;color:var(--green2);font-size:11px}
.char-bottom{padding:13px}.combat-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.combat-box{background:#11180f;border:1px solid #33442f;border-radius:12px;padding:9px}.combat-box span{display:block;font-size:10px;color:var(--muted)}.combat-box b{font-size:17px;color:var(--gold)}.attrs{display:grid;grid-template-columns:1fr 1fr;gap:7px}.attr{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#192217;border:1px solid #30402d;padding:8px 9px;border-radius:10px}.attr span{font-size:12px}.attr button{width:29px;height:29px;border:0;border-radius:8px;background:var(--green);font-weight:900}.inventory-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.inv-item{border:1px solid #384a35;border-radius:12px;padding:9px;background:#192318}.item-name{font-weight:800;font-size:13px}.item-bonus{font-size:10px;color:#a8b6a2;margin:4px 0 8px}.empty{text-align:center;padding:20px;color:var(--muted);border:1px dashed #3d4e39;border-radius:12px}
/* grow */.grow-room{min-height:285px;position:relative;background:linear-gradient(rgba(10,15,10,.08),rgba(10,15,10,.35)),linear-gradient(90deg,#1d261c 0 8%,#2b3529 8% 92%,#1d261c 92%);border-bottom:1px solid var(--line);padding:14px;overflow:hidden}.lamp{width:78%;height:14px;margin:0 auto 16px;background:linear-gradient(90deg,#dbe4d8,#fff,#dbe4d8);border-radius:4px;box-shadow:0 0 24px rgba(225,255,205,.5)}.grow-shelf{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;align-items:end;min-height:195px}.grow-slot{height:190px;border:1px solid #495948;border-radius:13px;background:linear-gradient(180deg,rgba(105,131,88,.12),rgba(11,15,10,.45));display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding:9px;position:relative}.grow-slot.locked{filter:grayscale(1);opacity:.4}.plant-visual{font-size:65px;transform-origin:bottom center;transition:.3s}.pot{font-size:38px;margin-top:-12px}.grow-slot-label{position:absolute;top:7px;left:7px;font-size:9px;background:#10160f;border:1px solid #354432;border-radius:999px;padding:3px 6px;color:var(--muted)}.progress{height:10px;background:#0b100a;border-radius:999px;overflow:hidden;border:1px solid #34432f}.bar{height:100%;width:0;background:linear-gradient(90deg,#62b946,#a4e976);transition:width .4s}.grow-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
/* quests */.tavern-scene{height:175px;background:linear-gradient(rgba(13,12,8,.12),rgba(13,12,8,.55)),radial-gradient(circle at 75% 28%,#b27837 0 7%,transparent 8%),linear-gradient(135deg,#4b3220,#211912 60%);position:relative;border-bottom:1px solid #57412c}.tavern-scene:before{content:'🍺';position:absolute;left:24px;bottom:20px;font-size:78px;filter:drop-shadow(0 10px 8px #000)}.quest-giver{position:absolute;right:28px;bottom:17px;font-size:86px;filter:drop-shadow(0 10px 8px #000)}.scene-label{position:absolute;left:14px;top:12px;background:rgba(8,10,7,.78);border:1px solid #685036;padding:6px 9px;border-radius:10px;font-weight:800}.quest{border:1px solid #3b4d38;border-radius:13px;background:linear-gradient(180deg,#202b1e,#182117);padding:11px;margin-top:9px}.quest.active-q{border-color:#81c95e}.quest-top{display:flex;gap:9px}.quest-icon{width:46px;height:46px;display:grid;place-items:center;background:#11180f;border-radius:11px;font-size:26px}.quest h3{font-size:14px;margin:0 0 3px}.quest-meta{display:flex;gap:5px;flex-wrap:wrap;margin:9px 0}.quest-meta span{font-size:10px;background:#11180f;border-radius:999px;padding:4px 7px;color:#aeb9aa}.timer{font-weight:900;color:var(--gold)}
/* dungeon */.dungeon-map{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-top:8px}.room-node{flex:1;text-align:center;position:relative}.room-node:not(:last-child):after{content:'';position:absolute;height:2px;background:#3b4938;width:60%;right:-30%;top:19px}.node-circle{width:40px;height:40px;margin:auto;border-radius:50%;display:grid;place-items:center;border:2px solid #455443;background:#121811;position:relative;z-index:2;font-size:19px}.room-node.done .node-circle{border-color:#73be55;background:#21331d}.room-node.current .node-circle{border-color:var(--gold);box-shadow:0 0 16px rgba(240,199,94,.28)}.room-node small{display:block;font-size:8px;color:#8f9c8a;margin-top:3px}.battle-stage{position:relative;height:325px;background:radial-gradient(circle at 50% 38%,#354430 0,#20291f 43%,#121812 100%);border-radius:14px;border:1px solid #354331;overflow:hidden;margin-top:10px}.battle-stage:after{content:'';position:absolute;left:0;right:0;bottom:0;height:66px;background:linear-gradient(#263324,#172016)}.fighter{position:absolute;bottom:48px;width:44%;text-align:center;z-index:2;transition:transform .18s}.fighter.player{left:3%}.fighter.enemy-side{right:3%}.fighter.hit{animation:hit .35s}.fighter.attack-right{animation:attackRight .4s}.fighter.attack-left{animation:attackLeft .4s}@keyframes hit{0%,100%{transform:translateX(0)}25%{transform:translateX(-8px)}50%{transform:translateX(8px)}75%{transform:translateX(-5px)}}@keyframes attackRight{50%{transform:translateX(46px) scale(1.05)}}@keyframes attackLeft{50%{transform:translateX(-46px) scale(1.05)}}.fighter-avatar{font-size:78px;filter:drop-shadow(0 12px 8px rgba(0,0,0,.55))}.fighter-name{font-size:11px;font-weight:800}.hpbar{height:9px;background:#280f0f;border-radius:999px;border:1px solid #58302f;overflow:hidden;margin:5px auto;width:90%}.hpfill{height:100%;background:linear-gradient(90deg,#d24f4d,#ef7a68);width:100%;transition:width .25s}.damage{position:absolute;top:110px;font-size:30px;font-weight:1000;color:#fff;text-shadow:0 2px 3px #000;z-index:6;opacity:0}.damage.left{left:18%}.damage.right{right:18%}.damage.pop{animation:pop .65s}@keyframes pop{0%{opacity:0;transform:translateY(12px) scale(.7)}30%{opacity:1;transform:translateY(-8px) scale(1.2)}100%{opacity:0;transform:translateY(-42px) scale(.9)}}.battle-log{min-height:42px;background:#0f150e;border:1px solid #303f2d;border-radius:10px;padding:8px;font-size:11px;color:#b1bbae;margin:9px 0}.loot{padding:8px;border-radius:10px;background:#1d291b;border:1px solid #3c4e38;margin-top:7px}.good{color:var(--green2)}
/* shop */.shop-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.shop-item{border:1px solid #3a4c37;border-radius:13px;background:#192318;padding:10px}.shop-icon{font-size:30px}.shop-item h3{font-size:13px;margin:4px 0}.price{color:var(--gold);font-weight:900;font-size:12px}
.bottom{position:fixed;z-index:30;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);background:rgba(12,17,11,.97);border-top:1px solid #30402d;backdrop-filter:blur(10px);padding-bottom:max(3px,env(safe-area-inset-bottom))}.nav{border:0;background:none;color:#899685;padding:8px 3px 9px;font-size:9px}.nav span{display:block;font-size:21px;margin-bottom:1px}.nav.active{color:var(--green2)}
@media(max-width:560px){.stats{grid-template-columns:repeat(5,1fr)}.stat{font-size:8px;padding:6px 2px}.stat b{font-size:12px}.equipment-grid{grid-template-columns:1fr 1.15fr 1fr}.slot{min-height:75px;padding:6px}.slot-icon{font-size:19px}.slot-name{font-size:10px}.person{transform:scale(.88)}.attrs,.inventory-grid,.shop-grid{grid-template-columns:1fr 1fr}.battle-stage{height:300px}.fighter-avatar{font-size:68px}.grow-shelf{gap:5px}.grow-slot{height:170px;padding:4px}.plant-visual{font-size:54px}}

.world-hero{position:relative;overflow:hidden;min-height:210px;background:linear-gradient(180deg,#273b2a,#121b13);border:1px solid var(--line);border-radius:22px;padding:20px;margin-bottom:14px}
.world-hero:before{content:"";position:absolute;inset:auto -10% -65px -10%;height:150px;background:radial-gradient(ellipse at center,#4f7245 0,#263a26 50%,#142014 72%);border-radius:50%}
.world-title{position:relative;z-index:2}.world-title h2{font-size:28px;margin:0 0 5px}.world-title p{max-width:520px}
.world-town{position:relative;z-index:2;height:95px;margin-top:15px;display:flex;justify-content:space-around;align-items:end;font-size:48px;filter:drop-shadow(0 7px 5px #0008)}
.world-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.world-place{border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,var(--panel2),#111811);padding:14px;min-height:132px;text-align:left;cursor:pointer;color:var(--text);box-shadow:var(--shadow)}
.world-place:active{transform:scale(.98)}.world-place .place-icon{font-size:36px}.world-place h3{margin:6px 0 4px}.world-place p{margin:0;font-size:12px;color:var(--muted);line-height:1.35}
.world-place .badge{display:inline-block;margin-top:8px;font-size:10px;border:1px solid #53734d;border-radius:999px;padding:4px 7px;color:var(--green2)}
@media(min-width:720px){.world-grid{grid-template-columns:repeat(3,1fr)}}

.story-card{background:linear-gradient(145deg,#18231a,#101710);border:1px solid var(--line);border-radius:18px;padding:14px;margin-bottom:12px}
.story-row{display:flex;gap:12px;align-items:flex-start}.npc-avatar{width:58px;height:58px;display:grid;place-items:center;border-radius:16px;background:#263725;font-size:34px;flex:0 0 58px}
.story-card h3{margin:0 0 4px}.story-card p{margin:0;color:var(--muted);line-height:1.45}
.story-chip{display:inline-block;margin-top:8px;padding:4px 8px;border:1px solid #496946;border-radius:999px;font-size:11px;color:var(--green2)}
.rare{border-color:#5f82c4!important;box-shadow:0 0 0 1px #5f82c433 inset}.epic{border-color:#8f61c9!important;box-shadow:0 0 0 1px #8f61c933 inset}.legendary{border-color:#c69a3a!important;box-shadow:0 0 0 1px #c69a3a33 inset}
.progress-wrap{margin-top:10px}.progress-line{height:10px;background:#0c120c;border-radius:999px;overflow:hidden;border:1px solid #31442f}.progress-fill{height:100%;background:linear-gradient(90deg,#6db454,#b8e67c)}
.boss-title{font-weight:800;margin-bottom:5px}.world-place .npc-mini{font-size:12px;color:#d7e3d2;margin-top:6px}

.class-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.class-card{border:1px solid var(--line);border-radius:14px;padding:10px;background:var(--panel2);text-align:center;cursor:pointer;color:var(--text)}
.class-card.active{border-color:var(--green);box-shadow:0 0 0 1px #83d65d55 inset}
.class-card .class-icon{font-size:30px}.class-card h4{margin:5px 0 3px}.class-card p{font-size:10px;color:var(--muted);margin:0;line-height:1.25}
.inv-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}
.sell-btn{background:#6c5130!important}
.sell-price{font-size:11px;color:var(--gold);margin-top:4px}

.compare{font-size:10px;margin-top:6px;padding:6px;border-radius:8px;background:#0e150e}
.better{color:#9be879}.worse{color:#ff8f8b}.same{color:var(--muted)}
.slot-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:5px}
.mini-btn{border:0;border-radius:7px;padding:5px;font-size:9px;background:#344a31;color:white}

.set-panel{border:1px solid #4a6a45;border-radius:14px;padding:10px;margin-top:10px;background:#111811}
.set-title{font-weight:800;margin-bottom:5px}.set-bonus{font-size:11px;color:var(--muted);margin:3px 0}
.set-bonus.active{color:var(--green2);font-weight:700}
.set-item{box-shadow:0 0 0 1px #8fc66c66 inset}
.set-tag{display:inline-block;font-size:9px;padding:2px 6px;border-radius:999px;background:#294328;color:#b8ef9f;margin-top:4px}

/* V4.02 */
.common-gray{border-color:#737973!important;box-shadow:0 0 0 1px #73797355 inset}
.uncommon{border-color:#4fae61!important;box-shadow:0 0 0 1px #4fae6155 inset}
.rare{border-color:#4f86d9!important;box-shadow:0 0 0 1px #4f86d955 inset}
.epic{border-color:#9a5bd6!important;box-shadow:0 0 0 1px #9a5bd655 inset}
.legendary{border-color:#e28b2e!important;box-shadow:0 0 0 1px #e28b2e66 inset}
.mythic{border-color:#24c7c9!important;box-shadow:0 0 0 1px #24c7c966 inset}
.currency-row{display:flex;gap:8px;flex-wrap:wrap}.currency-pill{padding:7px 10px;border-radius:999px;background:#111811;border:1px solid var(--line);font-size:12px}
.lock-note{padding:9px;border-radius:10px;background:#121a12;border:1px solid #384f35;color:var(--muted);font-size:11px;margin-top:8px}
.seed-grid,.equip-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.seed-card,.equip-card{border:1px solid var(--line);border-radius:14px;padding:10px;background:var(--panel2)}
.seed-card h4,.equip-card h4{margin:2px 0 5px}.seed-card .big,.equip-card .big{font-size:30px}
.ticket-box{border:1px solid #4d6648;border-radius:14px;padding:10px;background:#111811;margin-bottom:10px}
.ticket-time{font-size:13px;font-weight:700;color:var(--green2)}
.q-gray{color:#a4aaa4}.q-green{color:#70d181}.q-blue{color:#74a8f0}.q-purple{color:#c18af0}.q-orange{color:#f3a64d}.q-cyan{color:#55e0df}

.resource-stats{grid-template-columns:repeat(4,1fr)!important}.harz-stat b{color:#9ce86f!important}
.center-hero{position:relative;text-align:center;min-height:390px;padding:8px 0 4px}
.avatar-scene{height:280px;display:flex;align-items:flex-end;justify-content:center;position:relative}
.avatar-scene:before{content:"";position:absolute;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,#46753b55 0,#1b2a1d22 55%,transparent 72%);bottom:18px}
.class-avatar-big{font-size:148px;line-height:1;position:relative;z-index:2;filter:drop-shadow(0 14px 8px #0008)}
.avatar-prop{position:absolute;z-index:3;font-size:70px;right:calc(50% - 100px);top:55px;transform:rotate(-15deg);filter:drop-shadow(0 5px 3px #0008)}
.avatar-leaf{position:absolute;z-index:4;font-size:43px;left:calc(50% + 20px);top:35px}
.center-name{font-size:22px;font-weight:900;margin-top:3px}.center-class{color:var(--green2);font-weight:800;margin-top:2px}
.level-shield{display:inline-block;margin-top:10px;padding:6px 15px;border:2px solid #a87c2d;border-radius:12px;background:#1a1a12;font-weight:800}.level-shield b{font-size:22px;color:#f4d06f}
.center-xp{max-width:270px;margin:8px auto 0}.center-xp-row{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-bottom:4px}
.center-xp-track{height:13px;background:#0b100b;border:1px solid #40583c;border-radius:999px;overflow:hidden}.center-xp-fill{height:100%;background:linear-gradient(90deg,#62b843,#b1e96f)}
@media(max-width:520px){.resource-stats{grid-template-columns:repeat(2,1fr)!important}.class-avatar-big{font-size:125px}.avatar-scene{height:245px}.center-hero{min-height:355px}}

/* ===== V4.02 unified mobile RPG redesign ===== */
:root{
 --bg:#071008;--panel:#111a12;--panel2:#172319;--line:#31442f;
 --text:#f1f5ef;--muted:#9aa79a;--green:#77c95b;--green2:#a6e789;
 --gold:#e4b74f;--shadow:0 10px 28px rgba(0,0,0,.34)
}
*{box-sizing:border-box}
body{background:radial-gradient(circle at 50% -10%,#203722 0,#0b160d 26%,#071008 58%);color:var(--text);max-width:760px;margin:auto;padding-bottom:88px}
header{position:sticky;top:0;z-index:30;background:rgba(8,15,9,.94);backdrop-filter:blur(12px);border-bottom:1px solid #31442f;padding:10px 12px 9px;box-shadow:0 8px 22px #0006}
.brand{display:flex;align-items:center;gap:8px}.brand h1{font-size:20px;letter-spacing:-.5px}.version{font-size:9px;padding:3px 7px;border-radius:999px;background:#223520;border:1px solid #456541}.power{margin-left:auto;font-size:10px;background:#111a12;border:1px solid #334b30;border-radius:10px;padding:5px 8px}
.stats{gap:6px;margin-top:8px}.stat{background:linear-gradient(180deg,#182319,#101811);border:1px solid #30462e;border-radius:11px;padding:6px 5px;font-size:9px;min-width:0}.stat b{font-size:13px;margin-top:2px}
main{padding:12px}
.hero-card,.card{background:linear-gradient(155deg,#152018,#0e160f);border:1px solid #344a32;border-radius:18px;box-shadow:var(--shadow);overflow:hidden;margin-bottom:12px}
.card{padding:13px}
.section-title{margin-bottom:10px}.section-title h2,.section-title h3{letter-spacing:-.2px}
.btn{border-radius:11px;font-weight:800;box-shadow:0 5px 12px #0004}.btn:not(.secondary):not(.gold){background:linear-gradient(180deg,#78cb5a,#4c9639);color:#081008}.btn.secondary{background:linear-gradient(180deg,#273a28,#1a281b);border:1px solid #405c3d}.btn.gold{background:linear-gradient(180deg,#e4bc5a,#b7872e);color:#1a1206}
.pill,.currency-pill{background:#172319!important;border:1px solid #3c5739!important}
.bottom{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(760px,100%);height:72px;background:rgba(8,14,9,.96);backdrop-filter:blur(13px);border-top:1px solid #334a31;padding:7px 8px 8px;z-index:40;box-shadow:0 -8px 24px #0008}
.nav{border-radius:12px;color:#8e9c8d}.nav span{font-size:21px}.nav.active{background:#1c2d1d;color:#a9ea8b;box-shadow:inset 0 0 0 1px #41633c}
.world-hero{border-radius:18px;background:linear-gradient(180deg,#27462c,#142117);border-color:#456243;box-shadow:var(--shadow)}
.world-title h2{font-size:25px}.world-town{opacity:.95}
.world-grid{gap:9px}.world-place{border-radius:15px;min-height:122px;background:linear-gradient(150deg,#18251a,#101711);border-color:#354c33;box-shadow:0 6px 16px #0005}.world-place .place-icon{font-size:32px}.world-place h3{font-size:14px}.world-place .badge{background:#172718}
.story-card{border-radius:15px;background:linear-gradient(150deg,#17231a,#0f1710);border-color:#354c33}
.character-stage{background:radial-gradient(circle at 50% 38%,#29482b 0,#152419 35%,#0d150f 72%);padding:12px 10px 8px}
.char-head{padding:2px 4px 10px}.char-title{font-size:20px;font-weight:900}
.equipment-grid{grid-template-columns:minmax(76px,1fr) minmax(150px,1.7fr) minmax(76px,1fr);gap:8px;align-items:center}
.equip-col{gap:9px}.slot{min-height:92px;border-radius:13px;background:linear-gradient(150deg,#1a261b,#111812);border:1px solid #40563d;padding:7px;box-shadow:inset 0 0 14px #0003}.slot-icon{font-size:27px}.slot-label{font-size:8px}.slot-name{font-size:9px;line-height:1.15}
.center-hero{min-height:340px!important}.avatar-scene{height:225px!important}.class-avatar-big{font-size:120px!important}.avatar-prop{font-size:58px!important;right:calc(50% - 84px)!important}.avatar-leaf{font-size:35px!important}
.center-name{font-size:19px!important}.center-class{font-size:12px}.level-shield{padding:5px 12px!important}.level-shield b{font-size:19px!important}.center-xp{max-width:235px!important}
.char-bottom{background:#0d150f;border-top:1px solid #31462f;padding:12px}.combat-box{background:#151f16;border:1px solid #344a32;border-radius:12px}.attrs{gap:7px}.attr{background:#151f16;border:1px solid #334931;border-radius:11px}
.set-panel{background:#101811;border-color:#405a3d}.set-bonus.active{background:#172719;padding:4px 6px;border-radius:7px}
.class-grid{gap:7px}.class-card{border-radius:13px;background:linear-gradient(150deg,#19251a,#101711);border-color:#3a5137}.class-card.active{background:#213721;border-color:#75ba5b}
.inventory-grid,.shop-grid{gap:8px}.inv-item,.shop-item{border-radius:13px!important;background:linear-gradient(150deg,#182319,#101711)!important;border:1px solid #374d34!important;padding:10px!important}
.item-name{font-weight:800}.set-tag{background:#213821!important;border:1px solid #456943}
.grow-room{background:linear-gradient(180deg,#203923,#101a12);border-bottom:1px solid #344b32}.grow-slot{border-radius:12px;background:#162218;border-color:#3a5237}
.seed-card,.equip-card{border-radius:13px;background:linear-gradient(150deg,#182419,#101711);border-color:#394f36}
.tavern-scene{background:linear-gradient(180deg,#3b2b1c,#17130f);min-height:180px}
.quest-card{border-radius:13px!important;background:#151f16!important;border-color:#364d34!important}
.dungeon-scene{background:linear-gradient(180deg,#221c20,#111014);border-bottom:1px solid #423542}.enemy-card{border-radius:14px;background:#18151a;border-color:#493d49}
.room-node .node-circle{box-shadow:0 4px 10px #0006}
.ticket-box{background:#121b13;border-color:#405a3d}
.progress,.hp-track,.progress-line,.center-xp-track{background:#080d09;border-color:#3b5038}
.bar,.hp-fill,.progress-fill,.center-xp-fill{box-shadow:0 0 10px #71c65355}
@media(max-width:520px){
 main{padding:9px}.equipment-grid{grid-template-columns:72px minmax(130px,1fr) 72px;gap:5px}.slot{min-height:82px;padding:5px}.slot-icon{font-size:24px}.slot-name{font-size:8px}.slot-actions{grid-template-columns:1fr}.mini-btn{font-size:8px;padding:4px}.center-hero{min-height:315px!important}.avatar-scene{height:205px!important}.class-avatar-big{font-size:105px!important}.world-grid{grid-template-columns:repeat(2,1fr)}
}

/* V4.02 skill system */
.skill-tree{display:grid;gap:9px}
.skill-card{border:1px solid #354c33;border-radius:14px;padding:11px;background:linear-gradient(150deg,#182419,#101711)}
.skill-card.locked{opacity:.58;filter:saturate(.6)}
.skill-head{display:flex;align-items:center;gap:10px}.skill-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:12px;background:#223522;font-size:27px}
.skill-title{font-weight:900}.skill-level{font-size:11px;color:var(--green2)}
.skill-desc{font-size:11px;color:var(--muted);margin:7px 0;line-height:1.4}
.skill-ranks{display:flex;gap:4px;margin:8px 0}.rank-dot{height:6px;flex:1;border-radius:999px;background:#263226;border:1px solid #394d37}.rank-dot.on{background:#75c756;border-color:#83d665}
.skill-footer{display:flex;justify-content:space-between;gap:8px;align-items:center}.unlock-note{font-size:10px;color:#d6b46c}
.skill-point-pill{border:1px solid #4e683f;border-radius:999px;padding:6px 9px;background:#172319;font-size:11px}
.grow-feedback{display:none;margin-top:8px;padding:8px 10px;border-radius:10px;background:#142115;border:1px solid #395439;font-size:11px;color:#b8e9a7}
.grow-feedback.show{display:block}
.seed-card.selected{border-color:#76c45b!important;box-shadow:0 0 0 1px #76c45b55 inset}

/* v0.16 adventure dungeon map + grow slot interactions */
.dungeon-map-shell{overflow:auto;border:1px solid #5b4a31;border-radius:16px;background:#17130f;padding:8px;box-shadow:inset 0 0 30px #0008}
.adventure-map{position:relative;width:980px;height:620px;min-width:980px;border-radius:12px;overflow:hidden;background:
 radial-gradient(circle at 16% 20%,#6f8050 0 7%,transparent 8%),radial-gradient(circle at 76% 18%,#536e45 0 9%,transparent 10%),
 radial-gradient(circle at 55% 72%,#76613c 0 8%,transparent 9%),linear-gradient(135deg,#927b50,#65583d 48%,#3f4932 100%);box-shadow:inset 0 0 70px #231a10}
.adventure-map:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(18deg,transparent 0 34px,#ffffff08 35px 36px),radial-gradient(circle at 35% 45%,transparent 0 14%,#0002 44%,#0005 100%);pointer-events:none}
.map-title-ribbon{position:absolute;left:26px;top:22px;padding:10px 18px;border-radius:6px;background:#2a2117;border:2px solid #9a7e4d;color:#f0d793;font-weight:1000;letter-spacing:.06em;box-shadow:0 5px 15px #0007;z-index:3}
.map-scenery{position:absolute;font-size:34px;filter:drop-shadow(0 4px 3px #0008);opacity:.82;z-index:1;pointer-events:none}.map-scenery.s1{left:95px;top:120px}.map-scenery.s2{left:450px;top:70px}.map-scenery.s3{right:80px;top:245px}.map-scenery.s4{left:300px;bottom:85px}.map-scenery.s5{right:265px;bottom:55px}
.map-path{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}.map-path polyline{fill:none;stroke:#d2bd7d;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3 13;opacity:.72;filter:drop-shadow(0 2px 1px #0008)}
.dungeon-node{position:absolute;width:92px;height:92px;transform:translate(-50%,-50%);border-radius:50%;border:4px solid #6f5d3d;background:radial-gradient(circle at 38% 30%,#403725,#211b13 68%);box-shadow:0 6px 14px #000a,inset 0 0 0 3px #1118;z-index:4;color:#fff;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:5px;transition:.16s}
.dungeon-node:hover{transform:translate(-50%,-50%) scale(1.06)}.dungeon-node.available{border-color:#d8bd68;box-shadow:0 0 18px #d8bd6855,0 6px 14px #000a}.dungeon-node.active{border-color:#7ed65d;box-shadow:0 0 22px #7ed65d77,0 6px 14px #000a}.dungeon-node.locked{filter:grayscale(.8);opacity:.68;cursor:not-allowed}.dungeon-node.completed{border-color:#665d59;background:radial-gradient(circle,#2b2927,#141312);filter:grayscale(1);cursor:not-allowed}.dungeon-node.completed:after{content:'⛓️';position:absolute;right:-10px;bottom:-8px;font-size:28px}.dungeon-node .nicon{font-size:28px;line-height:1}.dungeon-node .nnum{font-size:10px;font-weight:1000;margin-top:2px}.dungeon-node .nlvl{font-size:8px;color:#d8c991}.dungeon-node .nlock{position:absolute;right:-6px;top:-9px;font-size:24px}
.map-legend{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}.map-legend span{font-size:9px;border:1px solid var(--line);border-radius:999px;padding:5px 8px;background:#171c16}
.dungeon-detail{margin-top:10px;border:1px solid #4c493d;border-radius:12px;padding:10px;background:#171813}.dungeon-detail.completed{border-color:#61554f;background:#1b1716}.dungeon-detail h3{margin:0 0 5px;font-size:14px}.dungeon-detail .state{font-size:10px;color:var(--muted)}
.dungeon-map{overflow-x:auto;justify-content:flex-start;padding-bottom:5px}.room-node{min-width:54px;flex:0 0 54px}
.grow-slot.open-slot{cursor:pointer}.grow-slot.open-slot:hover{border-color:#76c45b;box-shadow:0 0 0 1px #76c45b44 inset}.slot-plant-btn{margin-top:5px;padding:5px 7px;font-size:9px}
@media(max-width:560px){.dungeon-map-shell{margin-left:-2px;margin-right:-2px}.adventure-map{transform-origin:top left}.map-legend{gap:5px}.dungeon-node{width:86px;height:86px}}
