:root{--bg:#080a0d;--panel:#11151b;--line:#493a31;--text:#d9d2c6;--muted:#8d9299;--red:#9e2025;--gold:#b68a55}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 50% 0,#171c23,#07090c 55%);color:var(--text);font:16px Georgia,serif;min-height:100vh}header{min-height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:12px 5%;gap:50px;background:#0b0e12;position:sticky;top:0;z-index:10}.brand{font-size:23px;color:#d6a56c;letter-spacing:2px}.brand small{display:block;font-size:10px;color:#aaa;letter-spacing:3px;margin-top:4px}nav{display:flex;gap:28px;flex:1}a{color:#aeb9c6;text-decoration:none}button,input{font:inherit}button{background:#782126;color:#eee;border:1px solid #a54b4b;padding:11px 18px;cursor:pointer}button:disabled{opacity:.5;cursor:default}.ghost{background:#171b20;border-color:#55483d}.hidden{display:none!important}main{max-width:1400px;margin:28px auto;padding:0 20px}.panel{background:linear-gradient(180deg,#12171d,#0d1116);border:1px solid var(--line);box-shadow:0 0 0 3px #080a0d;padding:20px}.auth{max-width:500px;margin:70px auto}.auth input,#createHero input{display:block;width:100%;margin:10px 0;padding:13px;background:#080b0f;border:1px solid #403a35;color:#eee}.row{display:flex;gap:10px;flex-wrap:wrap}.center{justify-content:center}.msg{color:#d16e6e}.grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(310px,1fr);gap:18px}.grid aside{display:flex;flex-direction:column;gap:18px}.battle{text-align:center}.battleHead{display:flex;justify-content:space-between;align-items:start;text-align:left}.battleHead h1{margin:5px 0}.live{color:#e34646;font:13px Arial}.bossStage{height:520px;display:flex;justify-content:center;align-items:end;background:radial-gradient(ellipse at bottom,#282127 0,#11151b 55%,#0c1014 75%);overflow:hidden;position:relative}.bossStage img{height:95%;max-width:95%;object-fit:contain;image-rendering:pixelated}.phase{position:absolute;right:14px;top:14px;border:1px solid #6d5a49;background:#0a0c0fe8;padding:8px 12px;font:12px Arial;color:#c4a679}.phase.rage{color:#ff6262;border-color:#8f3232}.hp{height:34px;background:#090909;border:2px solid #6c5042;margin:12px 0;position:relative}.hp>div{height:100%;background:linear-gradient(#b1262b,#6f1015);transition:.35s}.hp>span{position:absolute;inset:6px;font-weight:bold;text-shadow:1px 1px #000}.events{margin-top:15px;text-align:left;height:190px;overflow:auto;border-top:1px solid #302923;padding-top:8px;font:14px Arial}.event{padding:7px;border-bottom:1px solid #1d2228}.event.damage{color:#e26b6b}.event.heal{color:#68c98b}.event.system{color:#d7a46d}.heroName{font-size:24px;color:#d7a46d}.miniBar{height:23px;background:#07090b;border:1px solid #3c3935;margin:6px 0 11px;position:relative;overflow:hidden}.miniBar i{display:block;height:100%;background:#51565c}.miniBar.red i{background:#8f2428}.miniBar.blue i{background:#284f7d}.miniBar.gold i{background:#8b6b34}.miniBar span{position:absolute;inset:3px;text-align:center;font:12px Arial;text-shadow:1px 1px #000}.statsGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:15px}.statsGrid span{background:#0a0d11;border:1px solid #2b2d31;padding:8px;font:11px Arial;color:#999}.statsGrid b{display:block;color:#ddd;font-size:16px;margin-top:3px}.totals{font:12px Arial;color:#999;margin-top:12px}.classes{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:20px}.classes button{min-height:190px;background:#11161d;border-color:#66503f;font-size:42px}.classes b,.classes small{display:block;font-size:20px;margin-top:15px}.classes small{font:13px Arial;color:#999}.classes span{font-size:42px}#createHero{max-width:850px;margin:60px auto}.rank{display:grid;grid-template-columns:28px 1fr auto;gap:8px;padding:8px 0;border-bottom:1px solid #292d32;font:13px Arial}.lower{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.item{display:grid;grid-template-columns:minmax(180px,1fr) 2fr auto;gap:12px;align-items:center;border:1px solid #2b2d31;background:#0b0e12;padding:10px;margin:8px 0}.item.equipped{border-color:#796045}.item small{display:block;color:#888;margin-top:3px}.itemStats{font:12px Arial;color:#b8a98e}.muted{color:#777;font:13px Arial}@media(max-width:900px){.grid,.lower{grid-template-columns:1fr}.classes{grid-template-columns:1fr}.bossStage{height:360px}nav{display:none}.item{grid-template-columns:1fr}.battleHead{gap:12px}}
.admin{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.actionBtn:disabled{opacity:.45;cursor:not-allowed}.event.boss{border-left-color:#b66}.event.death{border-left-color:#d22}.event.loot{border-left-color:#c99b3b}
nav a.navActive{color:#e1b274;border-bottom:1px solid #b68a55;padding-bottom:7px}.pagePanel{min-height:650px}.heroProfile{display:grid;grid-template-columns:180px 1fr;gap:28px;align-items:center;max-width:900px}.heroSigil{height:180px;border:1px solid #59483a;background:radial-gradient(circle,#292129,#0a0d11 70%);display:flex;align-items:center;justify-content:center;font-size:72px;color:#d7a46d}.heroName.big{font-size:36px}.profileBars{max-width:650px}.heroStatsLarge{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:12px;max-width:900px;margin:24px 0}.heroStatsLarge span{padding:18px;background:#0a0d11;border:1px solid #302c29;color:#999;font:13px Arial}.heroStatsLarge b{display:block;color:#e0d7ca;font:24px Georgia;margin-top:7px}.equipmentGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:22px 0 30px}.equipSlot{min-height:125px;border:1px solid #66503f;background:#0a0d11;padding:18px;display:flex;flex-direction:column;justify-content:center}.equipSlot small{color:#8e8176;text-transform:uppercase}.equipSlot b{font-size:19px;margin:10px 0}.equipSlot span{color:#888;font:12px Arial}.event.revive{color:#7bd89c}@media(max-width:700px){.heroProfile{grid-template-columns:1fr}.heroSigil{width:180px}.heroStatsLarge,.equipmentGrid{grid-template-columns:1fr}}
/* v0.4.4 character art fitted proportionally to portrait panel */
.classSelect{max-width:1320px!important;margin:28px auto!important}.selectHead{text-align:center;max-width:650px;margin:0 auto 18px}.selectHead input{max-width:440px;margin:16px auto!important}.visualClasses{align-items:stretch}.classCard{min-height:680px!important;padding:18px!important;display:flex;flex-direction:column;align-items:center;overflow:hidden;position:relative;background:linear-gradient(180deg,#171218,#0a0d11)!important}.classCard h2{font-size:27px;margin:2px 0 8px;color:#e2c8a5}.classCard p{font:15px/1.5 Georgia;color:#c8c0b6;min-height:70px;margin:8px 12px}.classCard small{font:12px/1.5 Arial!important;color:#a99a87!important;min-height:38px}.classCard>b{font-size:17px!important;margin-top:auto!important;border:1px solid #6d4a3b;width:100%;padding:12px;background:#38171a}.classArt{height:465px;width:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(circle at 50% 42%,#2b2527 0,#11151a 48%,transparent 72%)}.classArt img{height:70%;width:70%;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 14px 16px #000)}.mageCard .classArt{background:radial-gradient(circle at 50% 42%,#16213c 0,#10131b 48%,transparent 72%)}.healerCard .classArt{background:radial-gradient(circle at 50% 42%,#382619 0,#15120f 48%,transparent 72%)}
.heroDashboard{display:grid;grid-template-columns:minmax(310px,36%) 1fr minmax(220px,25%);gap:18px;min-height:720px}.heroPortraitPanel,.heroInfoPanel,.heroEquipPreview{border:1px solid #44382f;background:linear-gradient(180deg,#10151b,#090c10);padding:18px}.portraitBackdrop{height:565px;display:flex;align-items:end;justify-content:center;overflow:hidden;background:radial-gradient(ellipse at 50% 45%,#272126 0,#11151a 52%,#090c10 74%)}.heroPortrait{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center bottom;image-rendering:pixelated;filter:drop-shadow(0 18px 18px #000)}.classSummary{border-top:1px solid #493a31;padding:10px 4px}.classSummary h2{color:#d6a56c;margin:4px 0}.classSummary p{color:#aaa;line-height:1.45}.heroTitle{display:flex;justify-content:space-between;gap:12px;align-items:start;border-bottom:1px solid #332c27;margin-bottom:18px}.aliveState{font:12px Arial;padding:8px 10px;border:1px solid #315a42;color:#79cf9b;background:#0d1b13}.aliveState.dead{border-color:#713333;color:#e17474;background:#211010}.dashboardBlock{border:1px solid #332c27;margin-top:16px}.dashboardBlock h2{font-size:17px;color:#d6a56c;padding:11px 14px;margin:0;border-bottom:1px solid #332c27;background:#151516}.dashboardBlock .heroStatsLarge{margin:0;max-width:none;padding:12px;grid-template-columns:repeat(3,1fr)}.heroEquipPreview h2{color:#d6a56c;margin-top:0;border-bottom:1px solid #44382f;padding-bottom:12px}.heroEquipSlot{min-height:120px;border:1px solid #5a4739;background:#0b0e12;margin:12px 0;padding:15px;display:flex;flex-direction:column;justify-content:center}.heroEquipSlot small{color:#998674}.heroEquipSlot b{margin:8px 0;font-size:17px}.heroEquipSlot span{font:12px Arial;color:#777}@media(max-width:1050px){.heroDashboard{grid-template-columns:1fr 1fr}.heroEquipPreview{grid-column:1/-1}.portraitBackdrop{height:480px}}@media(max-width:760px){.heroDashboard{grid-template-columns:1fr}.heroEquipPreview{grid-column:auto}.classArt{height:420px}.portraitBackdrop{height:430px}.dashboardBlock .heroStatsLarge{grid-template-columns:1fr 1fr}}

/* v0.4.6 skills */
.skillsGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:24px}.skillCard{border:1px solid #59483a;background:linear-gradient(180deg,#12171d,#090c10);padding:18px;min-height:350px;display:flex;flex-direction:column}.skillIconEmpty{width:112px;height:112px;border:2px solid #6d5846;background:#080b0f;margin:0 auto 18px;box-shadow:inset 0 0 22px #000}.skillCard h2{text-align:center;color:#d6a56c;margin:0 0 12px}.skillCard p{color:#bbb;line-height:1.5;min-height:90px}.skillMeta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0 18px;font:12px Arial}.skillMeta span{border:1px solid #302c29;background:#0a0d11;padding:9px;color:#999}.skillMeta b{display:block;color:#ddd;margin-top:4px}.skillCard button{margin-top:auto}.skillCard button.cooldown{background:#222;border-color:#444}.event.skill{color:#c7a6ff}.event.buff{color:#e3bf69}@media(max-width:900px){.skillsGrid{grid-template-columns:1fr}}

/* v0.4.7 raid skill quickbar */
.raidSkills{margin:16px 0 4px;padding:14px;border:1px solid #3e342d;background:#0a0d11;text-align:left}.raidSkillsHead{display:flex;align-items:baseline;justify-content:space-between;gap:15px;margin-bottom:10px}.raidSkillsHead h2{margin:0;color:#d6a56c;font-size:18px}.raidSkillsHead span{font:12px Arial;color:#777}.raidSkillsGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.raidSkill{display:flex;align-items:center;gap:10px;text-align:left;background:linear-gradient(180deg,#171b20,#0e1115);border:1px solid #66503f;padding:9px;min-height:72px}.raidSkill:hover:not(:disabled){border-color:#b68a55;background:#1d2025}.raidSkillIcon{width:48px;height:48px;min-width:48px;border:1px solid #705b49;background:#07090c;box-shadow:inset 0 0 12px #000}.raidSkillText{display:flex;flex-direction:column;gap:5px;min-width:0}.raidSkillText b{color:#dfc39f;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.raidSkillText small{font:11px Arial;color:#9c948b}.raidSkill.cooldown{opacity:.48}.raidSkills .msg{margin:8px 0 0;font:12px Arial;min-height:14px}@media(max-width:760px){.raidSkillsGrid{grid-template-columns:1fr}.raidSkillsHead{align-items:flex-start;flex-direction:column}}

.genderPick,.heroGenderSwitch>div{display:flex;gap:8px;justify-content:center}.genderPick{width:100%;margin:8px 0}.genderPick button,.heroGenderSwitch button{flex:1;padding:9px 10px;border:1px solid #5a4739;background:#0c1015;color:#b9ad9e;cursor:pointer}.genderPick button.active,.heroGenderSwitch button.active{border-color:#b97845;color:#f0c58e;background:#351a18}.chooseClass{font:700 17px Georgia;margin-top:auto;border:1px solid #6d4a3b;width:100%;padding:12px;background:#38171a;color:#eee;cursor:pointer}.heroGenderSwitch{border-top:1px solid #493a31;padding:12px 4px 6px}.heroGenderSwitch>span{display:block;color:#9f8d7b;font:12px Arial;margin-bottom:8px;text-transform:uppercase;letter-spacing:.08em}.classCard{cursor:default}.classCard>b{display:none}

/* v0.5.1 skill artwork */
.skillIcon{width:160px;height:160px;border:2px solid #6d5846;background:#080b0f;margin:0 auto 18px;overflow:hidden;box-shadow:inset 0 0 22px #000,0 8px 22px #000}.skillIcon img{width:100%;height:100%;object-fit:cover;display:block}.raidSkillIcon{overflow:hidden}.raidSkillIcon img{width:100%;height:100%;object-fit:cover;display:block}.raidSkill:hover:not(:disabled) .raidSkillIcon img{transform:scale(1.04)}.raidSkillIcon img{transition:transform .15s ease}

/* v0.6 raid completion and history */
.raidResult{margin:18px 0;padding:20px;border:1px solid #8b653d;background:radial-gradient(circle at 50% 0,#342314,#11100e 55%,#090b0e);box-shadow:0 0 30px #000}.victoryTitle{text-align:center;color:#f0c16f;font:700 34px Georgia;letter-spacing:.16em;text-shadow:0 0 18px #a45b18}.raidResult>h2{text-align:center;color:#e7d4b5}.raidSummary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0}.raidSummary span{border:1px solid #4c3d30;background:#0b0d10;padding:10px;color:#928579;font:11px Arial}.raidSummary b{display:block;color:#e5d6c3;font:16px Georgia;margin-top:5px}.myReward{border:1px solid #76552f;background:#17120d;padding:14px;text-align:center;margin:14px 0}.myReward h3{margin:0 0 8px;color:#dca65e}.myReward>b{display:inline-block;margin:4px 10px;color:#f1d28e}.myReward small{display:block;color:#9d8d79;margin-top:7px}.lootReward{color:#c6a3ff!important}.resultTable{display:flex;flex-direction:column;gap:5px}.resultTable>div{display:grid;grid-template-columns:minmax(150px,1.5fr) repeat(5,minmax(80px,1fr));gap:8px;align-items:center;border-bottom:1px solid #302820;padding:8px;font:12px Arial;color:#aaa}.resultTable strong{color:#ddd}.resultTable b{color:#e4bb77}.resultTable em{color:#c6a3ff}.historyCard{display:grid;grid-template-columns:1.5fr 1fr 1.3fr auto;gap:16px;align-items:center;border:1px solid #3e342d;background:#0b0e12;padding:16px;margin:10px 0}.historyCard h2{margin:0 0 5px;color:#d6a56c}.historyCard small{color:#777}.historyStats,.historyTop{display:flex;flex-direction:column;gap:4px;font:12px Arial;color:#aaa}.historyDetail{margin-top:18px}.event.victory{color:#f0c16f;font-weight:bold}@media(max-width:900px){.raidSummary{grid-template-columns:1fr 1fr}.resultTable>div,.historyCard{grid-template-columns:1fr}.historyCard button{justify-self:start}}


/* v0.7 full equipment and inventory */
.equipmentSeven{grid-template-columns:repeat(4,1fr)}.equipSlot,.heroEquipSlot{cursor:pointer;color:inherit;text-align:left}.equipSlot.selected{outline:2px solid #b97845;outline-offset:2px}.inventoryFilter{display:flex;justify-content:space-between;align-items:center;margin:4px 0 16px;color:#cdb38f}.inventoryCards{display:flex;flex-direction:column;gap:10px}.inventoryCard{display:grid;grid-template-columns:72px 1fr auto;gap:14px;align-items:center;border:1px solid #3d3732;background:#0b0e12;padding:12px;position:relative}.itemIcon{width:64px;height:64px;border:1px solid #66503f;background:radial-gradient(circle,#2a2420,#090b0e);display:flex;align-items:center;justify-content:center;font:32px Georgia;color:#b89b77}.itemTitle{display:flex;gap:12px;align-items:baseline}.itemTitle b{font-size:17px;color:#e2d7ca}.itemTitle span{font:11px Arial;text-transform:uppercase}.itemBody small{color:#81786f}.itemBody p{margin:7px 0 0;color:#b8afa5;font:12px Arial}.itemAction{display:flex;flex-direction:column;gap:7px;min-width:100px;text-align:center}.itemAction>b{color:#83c99b}.rarity-common{border-color:#555}.rarity-uncommon{border-color:#477b55}.rarity-rare{border-color:#426b9b}.rarity-epic{border-color:#80539e}.rarity-legendary{border-color:#a77938;box-shadow:inset 0 0 18px #4c2d0c55}.rarity-uncommon .itemTitle span,.rarity-uncommon>span{color:#70b37f}.rarity-rare .itemTitle span,.rarity-rare>span{color:#6e9ed0}.rarity-epic .itemTitle span,.rarity-epic>span{color:#b17bd0}.rarity-legendary .itemTitle span,.rarity-legendary>span{color:#e1b35d}.heroEquipPreview .heroEquipSlot{width:100%}.heroEquipPreview{overflow:auto}@media(max-width:900px){.equipmentSeven{grid-template-columns:1fr 1fr}.inventoryCard{grid-template-columns:58px 1fr}.itemIcon{width:52px;height:52px}.itemAction{grid-column:1/-1;flex-direction:row;justify-content:flex-end}}

/* v0.8.0: character progression */
.progressionInfo{display:grid;gap:8px;color:#c9b9a8;font:14px Arial}.progressionInfo span{padding:9px 11px;border:1px solid #493a31;background:#0d1116}.progressionInfo b{color:#efc88e}

/* v0.9.0 rankings */
.rankingMode,.rankingFilters{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.rankingMode button,.rankingFilters button{border:1px solid #4b4037;background:#0b0e12;color:#a99c8d;padding:10px 14px;cursor:pointer}.rankingMode button.active,.rankingFilters button.active{border-color:#b97845;background:#351a18;color:#f0c58e}.rankingTable{margin-top:16px}.rankRow{display:grid;grid-template-columns:54px 1fr minmax(180px,auto);gap:14px;align-items:center;border:1px solid #332c27;background:#0b0e12;padding:13px 16px;margin:6px 0}.rankPos{font-size:20px;color:#76695d;text-align:center}.rankHero{font-size:17px;color:#ddd}.rankHero small{display:block;margin-top:4px;color:#81786f;font:11px Arial}.rankValue{color:#d9b277;text-align:right}.rankRow.top{border-color:#725a3f;background:linear-gradient(90deg,#21170f,#0b0e12 60%)}.rankRow.top1 .rankPos{color:#f1c46e}.rankRow.top2 .rankPos{color:#c9c9c9}.rankRow.top3 .rankPos{color:#c78b5d}.raidRankHead,.raidRankRow{display:grid;grid-template-columns:42px minmax(130px,1.5fr) 90px repeat(5,minmax(78px,1fr));gap:8px;align-items:center;padding:10px;border-bottom:1px solid #302820;font:12px Arial}.raidRankHead{color:#81786f;text-transform:uppercase;background:#0a0c0f}.raidRankRow{color:#aaa;background:#0b0e12}.raidRankRow strong{color:#ddd}.raidRankRow> b:nth-child(3){color:#d9b277}.raidRankRow.top{border-left:3px solid #8c693e;background:#15110d}@media(max-width:900px){.raidRankHead{display:none}.raidRankRow{grid-template-columns:36px 1fr 80px}.raidRankRow span{font-size:11px}.rankRow{grid-template-columns:44px 1fr}.rankValue{grid-column:2;text-align:left}}

.streamLinkBox{margin:12px 0;padding:12px;border:1px solid #493a31;background:#11151b}.streamLinkBox b,.streamLinkBox span{display:block;margin-bottom:8px}.streamLinkBox span{color:#a99b8b;font-size:13px}.streamLinkBox button{padding:9px 12px;border:1px solid #7b593e;background:#351a18;color:#f0c58e;cursor:pointer}

.socialLoginButtons{display:grid;gap:12px;margin-top:18px}.socialLoginButtons button{padding:14px 18px;font-weight:700;font-size:15px}.twitchLogin{background:#6441a5!important;border-color:#8b6bd1!important}.youtubeLogin{background:#9d1b1b!important;border-color:#d94a4a!important}

/* v1.4.1 - compact gender selector inside class cards */
.classCard .genderPick{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:8px;
  width:100%;
  max-width:100%;
  margin:8px 0 12px;
  padding:0;
  overflow:hidden;
}
.classes .classCard .genderPick button{
  width:100%;
  min-width:0;
  min-height:0;
  height:46px;
  padding:0 8px;
  margin:0;
  font:700 15px/1 Georgia,serif;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  border:1px solid #5a4739;
  background:#0c1015;
  color:#b9ad9e;
}
.classes .classCard .genderPick button.active{
  border-color:#b97845;
  color:#f0c58e;
  background:#351a18;
}
