:root{
  --bg:#061015; --bg2:#08171d; --panel:#0a1419ee; --panel2:#101a1fcc; --line:#5a3d22; --line2:#9b6b31;
  --gold:#d5a23f; --gold2:#f1d494; --text:#f4ead8; --muted:#b9ad99; --blue:#4eb5ff; --red:#e95d5d; --green:#70d47a; --purple:#b677e8;
  --shadow:0 0 24px rgba(0,0,0,.55); --font-title:'Segoe UI',Arial,sans-serif; --font-body:'Segoe UI',Arial,sans-serif;
}
*{box-sizing:border-box} html,body,#app{height:100%; margin:0} body{background:radial-gradient(circle at 30% 10%,#10252d 0,#071116 42%,#03080b 100%);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow:hidden}
button,input,select{font:inherit} button{cursor:pointer;color:var(--text)}
.game{height:100vh;display:grid;grid-template-rows:84px auto 1fr 64px;position:relative;border:2px solid #312112;background:linear-gradient(180deg,rgba(13,24,28,.98),rgba(4,9,11,.98));}
.game:before{content:'';position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle at 20% 20%,rgba(216,161,63,.035) 0 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025),transparent 40%);background-size:22px 22px,100% 100%;opacity:.6}
.topbar,.bottombar{z-index:2;background:linear-gradient(180deg,#081319,#050b0f);border-bottom:1px solid #513618;box-shadow:var(--shadow);display:flex;align-items:center;padding:0 28px}.bottombar{border-top:1px solid #513618;border-bottom:0;gap:24px;color:var(--muted)}
.top-navigation{z-index:2;display:flex;align-items:stretch;gap:18px;padding:7px 28px;background:linear-gradient(180deg,#0b171c,#071116);border-bottom:1px solid #513618;overflow-x:auto}.top-nav-group{display:flex;align-items:center;gap:5px;white-space:nowrap}.top-nav-title{color:var(--gold);font-size:11px;letter-spacing:1px;margin-right:4px}.top-nav-btn{height:38px;border:1px solid transparent;background:transparent;color:var(--text);padding:0 10px;display:flex;gap:7px;align-items:center}.top-nav-btn:hover,.top-nav-btn.active{border-color:#a36d25;background:linear-gradient(90deg,rgba(133,91,32,.45),rgba(255,207,84,.08));color:var(--gold2)}
.brand{display:flex;align-items:center;gap:20px;min-width:450px}.brand-icon{width:58px;height:58px;border:1px solid var(--line2);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);display:grid;place-items:center;color:var(--gold2);font-size:31px;background:#071016}.brand-title{font:42px var(--font-title);letter-spacing:2px;color:var(--text);text-shadow:0 0 12px rgba(213,162,63,.25)}
.resource-row{margin-left:auto;display:flex;align-items:center;gap:16px}.resource{height:52px;min-width:205px;display:flex;align-items:center;gap:12px;padding:9px 12px;border:1px solid #4b3017;background:linear-gradient(180deg,#0c171d,#071015);box-shadow:inset 0 0 0 1px #18262b}.resource .ico{font-size:25px}.resource .label{font-size:15px;color:var(--gold2)}.resource .value{font-size:19px}.plus{margin-left:auto;width:31px;height:31px;border:1px solid #523718;border-radius:4px;background:#101820;color:var(--gold2);font-size:22px;line-height:1}.profile-pill{height:54px;min-width:240px;border:1px solid #4b3017;display:flex;align-items:center;gap:11px;padding:7px 12px;background:#0b151a}.mini-avatar{width:42px;height:42px;border:1px solid var(--line2);border-radius:50%;background:url('assets/art-v2/characters/starting/warrior-male-cutout.png') center/cover}.profile-name{font-size:18px}.profile-sub{font-size:13px;color:var(--muted)}
.main-layout{z-index:1;display:grid;grid-template-columns:308px 1fr;height:100%;min-height:0}.sidebar{border-right:1px solid #4b3017;background:linear-gradient(180deg,rgba(5,13,16,.96),rgba(4,10,13,.96));padding:18px 15px 12px;overflow:hidden}.player-card{border:1px solid #432d19;background:linear-gradient(180deg,#0a151a,#071015);padding:12px;display:grid;grid-template-columns:120px 1fr;gap:14px;box-shadow:var(--shadow);position:relative}.portrait{height:158px;border:1px solid var(--line2);background:url('assets/art-v2/characters/starting/warrior-male-cutout.png') center/cover}.badge{display:none}.player-name{font-size:22px}.small{font-size:14px;color:var(--muted)}.house{margin-top:10px;color:#d7c8ab}.renown{grid-column:1/-1;border-top:1px solid #2b2218;padding-top:10px}.bar{height:8px;border:1px solid #3c2c18;background:#0b0d0e;border-radius:10px;overflow:hidden}.fill{height:100%;background:linear-gradient(90deg,#b77a22,#ffd66b);box-shadow:0 0 10px rgba(255,204,74,.35)}.fill.blue{background:linear-gradient(90deg,#2b8bcc,#79d3ff)}.fill.red{background:linear-gradient(90deg,#c34141,#ff7b7b)}.fill.green{background:linear-gradient(90deg,#3ca85a,#93f29a)}.nav-section{margin-top:18px}.nav-title{font-size:13px;color:var(--gold);letter-spacing:.8px;margin:0 0 8px 18px;text-transform:uppercase}.nav-btn{width:100%;height:45px;border:1px solid transparent;background:transparent;color:#efe6d4;display:flex;align-items:center;gap:14px;padding:0 16px;margin:2px 0;text-align:left;font-size:18px}.nav-btn .nav-ico{width:24px;text-align:center;color:#dfc794}.nav-btn:hover,.nav-btn.active{border-color:#a36d25;background:linear-gradient(90deg,rgba(133,91,32,.4),rgba(255,207,84,.06),transparent);box-shadow:inset 0 0 15px rgba(224,155,39,.12),0 0 9px rgba(211,162,63,.15)}
.content{padding:24px 24px 18px;overflow:auto;min-width:0}.page-title{font:32px var(--font-title);letter-spacing:1.2px;margin:0 0 14px;color:#f4ead8}.subtle{color:var(--muted)}.grid{display:grid;gap:16px}.panel{border:1px solid #513618;background:linear-gradient(180deg,rgba(10,19,23,.96),rgba(6,13,16,.96));box-shadow:var(--shadow);position:relative}.panel.pad{padding:16px}.panel-title{font:20px var(--font-title);letter-spacing:.8px;color:var(--gold2);text-transform:uppercase;margin:0 0 12px}.btn{border:1px solid #8b5f27;background:linear-gradient(180deg,#2b1d0f,#120d08);color:#f7e4bb;padding:10px 16px;min-height:38px}.btn.gold{background:linear-gradient(180deg,#9e6821,#42270d);color:#fff1c2}.btn.dark{background:#091116}.btn:disabled{opacity:.45;cursor:not-allowed}.pill{display:inline-flex;align-items:center;gap:6px;border:1px solid #4b3017;background:#0b151a;padding:6px 10px;color:var(--gold2)}.iconbox{width:54px;height:54px;border:1px solid #5b3b1b;background:linear-gradient(180deg,#17252b,#080f12);display:grid;place-items:center;font-size:28px}.two-col{display:grid;grid-template-columns:1.2fr .9fr;gap:16px}.three-col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.four-col{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.art{background:#081015 center/cover no-repeat;border:1px solid #6b471f}.command-layout{display:grid;grid-template-columns:1.15fr .7fr .55fr;gap:16px}.hero-card{height:650px;background-image:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.82)),url('assets/art-v2/stronghold/buildings/stronghold-town-hall.png');background-size:cover;background-position:center;border:1px solid #8b5f27;padding:22px;display:flex;flex-direction:column;justify-content:flex-end}.hero-card h2{font:34px var(--font-title);margin:0}.hero-row{display:flex;align-items:end;justify-content:space-between;gap:18px}.dots{display:flex;justify-content:center;gap:10px;margin-top:16px}.dot{width:9px;height:9px;border-radius:50%;background:#475159}.dot.active{background:var(--gold)}.action-list{display:grid;gap:12px}.action-tile{border:1px solid #4e3219;background:linear-gradient(90deg,rgba(169,110,32,.22),rgba(8,16,19,.98));padding:13px;display:grid;grid-template-columns:52px 1fr 24px;gap:10px;align-items:center}.status-row{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;margin:13px 0}.mini-card{display:grid;grid-template-columns:92px 1fr;gap:12px;align-items:center}.mini-art{width:92px;height:80px;background:url('assets/art-v2/stronghold/buildings/stronghold-town-hall.png') center/cover;border:1px solid #5a3d22}.buff{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:10px 0;border-top:1px solid #27211a}
.character-layout{display:grid;grid-template-columns:385px 1fr;gap:16px}.character-art{height:700px;background-image:linear-gradient(180deg,rgba(0,0,0,.1),rgba(0,0,0,.5)),url('assets/art-v2/characters/starting/warrior-male-cutout.png');background-size:cover;background-position:center top;display:flex;align-items:end;justify-content:center;padding:28px}.summary-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.summary-card{text-align:center;min-height:164px}.summary-icon{font-size:38px;color:var(--gold);display:block;margin:6px}.level-diamond{width:66px;height:66px;border:2px solid var(--gold);transform:rotate(45deg);margin:8px auto 18px;display:grid;place-items:center}.level-diamond span{transform:rotate(-45deg);font-size:28px}.progress-row{display:grid;grid-template-columns:54px 210px 1fr 48px;align-items:center;gap:14px;border:1px solid #2f2519;background:#0b1418;padding:10px;margin:10px 0}.attribute-card{padding:14px;text-align:center}.attribute-card .big{font-size:32px}.kv{display:flex;justify-content:space-between;margin:5px 0;color:var(--muted)}.kv .pos{color:#83db8d}.secondary{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:18px;align-items:center}
.map-layout{display:grid;grid-template-columns:1fr 350px;gap:16px}.map-stage{position:relative;aspect-ratio:938/692;border:1px solid #8b5f27;overflow:hidden;background:#071015}.map-stage img{width:100%;height:100%;display:block;object-fit:fill}.hotspot{position:absolute;border:1px solid rgba(255,214,107,.7);background:rgba(255,177,43,.16);box-shadow:0 0 18px rgba(255,183,59,.28);color:#fff4cd;display:grid;place-items:center;font-size:12px;text-align:center}.hotspot.locked{border-color:rgba(99,179,255,.55);background:rgba(74,132,180,.12)}.hotspot.city{border-radius:50%;width:32px!important;height:32px!important;background:#1e1307}.map-controls{position:absolute;left:16px;top:18px;display:grid;gap:8px;z-index:2}.map-controls button{width:42px;height:42px;border:1px solid #6a431d;background:#0b1418;color:var(--gold2);font-size:22px}.legend{position:absolute;left:9%;right:9%;bottom:10px;height:43px;border:1px solid #6a431d;background:rgba(5,10,12,.9);display:flex;align-items:center;justify-content:center;gap:28px;color:#e2d3b8}.region-detail .detail-art{height:185px;background:url('assets/art-v2/locations/regions/region-stonehill-village.png') center/cover}.region-detail h2{font:34px var(--font-title);text-align:center;color:var(--gold2)}
.region-grid{display:grid;grid-template-columns:1fr 1fr 1fr 310px;gap:16px}.region-banner{height:300px;background-image:linear-gradient(90deg,rgba(0,0,0,.72),transparent 70%),url('assets/art-v2/locations/regions/region-stonehill-village.png');background-size:cover;background-position:center;display:flex;align-items:center;padding:44px}.region-banner h2{font:38px var(--font-title);margin:0}.activity-card img{width:100%;height:155px;object-fit:cover;border:1px solid #4b3017}.reward-row{display:flex;gap:10px}.drop-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.drop{height:50px;border:1px solid #4b3017;display:grid;place-items:center;background:#0c1519;font-size:24px}
.combat-layout{display:grid;grid-template-columns:1fr 330px;gap:16px}.encounter{height:632px;display:grid;grid-template-rows:62px 1fr 192px;background:#071015}.encounter-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #4b3017}.battle-stage{position:relative;background:linear-gradient(90deg,rgba(0,0,0,.35),rgba(0,0,0,.05),rgba(0,0,0,.35)),url('assets/art-v2/combat/scene-combat-whispering-woods.png') center/cover}.combatant-card{position:absolute;top:48px;width:215px;border:1px solid #6a431d;background:rgba(7,14,17,.9);padding:14px}.combatant-card.left{left:32px}.combatant-card.right{right:32px}.combat-face{width:76px;height:76px;border:2px solid var(--line2);border-radius:50%;background:url('assets/art-v2/characters/starting/warrior-male-cutout.png') center/cover;margin:-42px auto 8px}.enemy-face{background:linear-gradient(#151515,#020202);display:grid;place-items:center;font-size:38px}.combat-name{text-align:center;font-size:22px}.statline{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;text-align:center;color:var(--gold2);font-size:13px}.ability-row{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;padding:12px 20px;background:#071015}.ability{border:1px solid #513618;background:linear-gradient(180deg,#111a1f,#080e11);padding:10px;text-align:center}.ability:hover{border-color:var(--gold);box-shadow:0 0 10px rgba(220,163,63,.2)}.ability-icon{font-size:33px}.combat-log{height:632px;overflow:auto}.log-entry{padding:11px 8px;border-top:1px solid #2c2419}.log-time{color:var(--muted);font-size:13px}.danger{color:#ff6d6d}.success{color:#7ee388}.magic{color:#68bdff}.goldtext{color:var(--gold2)}
.inventory-layout{display:grid;grid-template-columns:460px 1fr 310px;gap:16px}.paperdoll{height:665px;background:radial-gradient(circle at 45% 35%,rgba(63,89,103,.23),transparent 45%);position:relative}.paper-character{position:absolute;left:118px;right:92px;top:60px;bottom:110px;background:url('assets/art-v2/characters/starting/warrior-male-cutout.png') center/contain no-repeat}.slot{position:absolute;width:80px;height:80px;border:1px solid #6a431d;background:#0a1216;display:grid;place-items:center;font-size:32px}.slot label{position:absolute;top:-24px;color:var(--gold2);font-size:16px}.slot.head{left:28px;top:60px}.slot.chest{left:28px;top:174px}.slot.hands{left:28px;top:288px}.slot.legs{left:28px;top:402px}.slot.boots{left:28px;top:516px}.slot.weapon{right:28px;top:115px}.slot.offhand{right:28px;top:265px}.slot.charm{right:28px;top:415px}.gear-score{position:absolute;left:120px;right:120px;bottom:25px;text-align:center;border-top:1px solid #3e2d18;padding-top:14px}.item-grid{display:grid;grid-template-columns:repeat(5,minmax(70px,1fr));gap:8px}.item{aspect-ratio:1/1;border:1px solid #4e3219;background:linear-gradient(180deg,#142025,#090e11);position:relative;display:grid;place-items:center;font-size:35px}.item.selected{border-color:var(--gold);box-shadow:0 0 14px rgba(225,172,67,.3)}.item .count{position:absolute;right:8px;bottom:5px;font-size:17px;color:#e8dcc5}.rarity-Rare{box-shadow:inset 0 0 0 2px rgba(69,160,255,.45)}.rarity-Uncommon{box-shadow:inset 0 0 0 2px rgba(87,202,104,.35)}.rarity-Epic{box-shadow:inset 0 0 0 2px rgba(171,83,231,.45)}.selected-art{height:210px;display:grid;place-items:center;font-size:120px;background:radial-gradient(circle,#102331,transparent 60%)}
.market-layout{display:grid;grid-template-columns:350px 1fr 310px;gap:16px}.merchant-art{height:430px;background:url('assets/art-v2/scenes/core/scene-merchant-highmere.png') center/cover}.filters{display:grid;grid-template-columns:170px 170px 1fr;gap:12px;margin-bottom:12px}.filter{height:42px;border:1px solid #4e3219;background:#0a1115;color:var(--text);padding:0 12px}.shop-row{display:grid;grid-template-columns:72px 1fr 80px 72px 72px;gap:12px;align-items:center;padding:12px;border-top:1px solid #322618}.shop-icon{width:64px;height:64px;border:1px solid #4e3219;display:grid;place-items:center;font-size:34px;background:#11191d}.tabs{display:flex;justify-content:end;margin-bottom:22px}.tab{width:170px;height:46px;border:1px solid #5a3d22;background:#0a1216}.tab.active{background:linear-gradient(180deg,#3b2710,#171008);color:var(--gold2);border-color:var(--gold)}
.guild-layout{display:grid;grid-template-columns:1fr 330px;gap:16px}.guild-banner{height:310px;background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.85)),url('assets/art-v2/scenes/core/scene-guild-hall-highmere.png') center/cover;display:flex;align-items:end;padding:24px}.roster table{width:100%;border-collapse:collapse}.roster th{text-align:left;color:var(--gold);font-weight:normal}.roster td,.roster th{padding:10px;border-bottom:1px solid #2f2519}.online{color:#71df7b}.offline{color:#888}.guild-action{display:grid;grid-template-columns:44px 1fr 20px;align-items:center;gap:10px;border:1px solid #3e2d18;background:#0b1519;margin:10px 0;padding:12px}
.journal-layout{display:grid;grid-template-columns:1fr 310px;gap:16px}.quest-card{display:grid;grid-template-columns:300px 1fr 225px;min-height:190px;border:1px solid #5a3d22;background:#d4c0a0;color:#1d1510;margin-bottom:12px}.quest-img{background:center/cover no-repeat;position:relative}.quest-body{padding:18px}.quest-body h3{font:26px var(--font-title);margin:0 0 6px;color:#1d1510}.quest-rewards{padding:18px;border-left:1px solid rgba(0,0,0,.25);display:flex;flex-direction:column;align-items:center;justify-content:center}.reward-icons{display:flex;gap:10px}.reward{width:56px;height:68px;background:#111;color:#f2d593;border:1px solid #333;display:grid;place-items:center;text-align:center}.filter-list button{width:100%;height:54px;margin:7px 0;border:1px solid #3e2d18;background:#0a1216;display:flex;justify-content:space-between;align-items:center;padding:0 14px}.filter-list button.active{border-color:var(--gold);background:linear-gradient(90deg,#352310,#10181c)}
.dev-layout{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.role-row{display:grid;grid-template-columns:50px 1fr auto;align-items:center;gap:12px;border:1px solid #3e2d18;background:#0b1519;padding:12px;margin:9px 0}.report{display:grid;grid-template-columns:60px 1fr;gap:12px;padding:11px;border-top:1px solid #2f2519}.tool-row{display:grid;grid-template-columns:60px 1fr 120px;gap:12px;align-items:center;border:1px solid #3e2d18;background:#0b1519;padding:12px;margin-bottom:10px}.system-strip{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,1fr);gap:1px}.metric{padding:14px;border-left:1px solid #2f2519}.editor-layout{display:grid;grid-template-columns:1fr 360px;gap:16px}.range-row{display:grid;grid-template-columns:90px 1fr 60px;gap:8px;align-items:center;margin:8px 0}.range-row input{width:100%}.copybox{width:100%;min-height:98px;background:#05090b;border:1px solid #3e2d18;color:#cfe7f0;padding:10px;font-family:Consolas,monospace}.creation{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.78);display:grid;place-items:center}.creation-panel{width:min(960px,92vw);border:1px solid var(--gold);background:#071015;padding:24px;box-shadow:0 0 60px rgba(0,0,0,.8)}.creation-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}.option{border:1px solid #4e3219;background:#0b1519;padding:14px}.option.selected{border-color:var(--gold);box-shadow:0 0 18px rgba(213,162,63,.18)}.text-input{height:42px;width:100%;background:#050a0c;border:1px solid #4e3219;color:var(--text);padding:0 12px}.toast{position:fixed;right:22px;bottom:78px;z-index:100;background:#0a1418;border:1px solid var(--gold);color:#fff0c8;padding:12px 16px;box-shadow:var(--shadow)}
@media(max-width:1250px){body{overflow:auto}.game{height:auto;min-height:100vh}.main-layout{grid-template-columns:260px 1fr}.resource{min-width:150px}.command-layout,.character-layout,.map-layout,.combat-layout,.inventory-layout,.market-layout,.guild-layout,.journal-layout,.dev-layout,.region-grid{grid-template-columns:1fr}.sidebar{display:none}.topbar{gap:12px;overflow:auto}.brand-title{font-size:30px}.hero-card{height:440px}.content{overflow:visible}.bottombar{position:sticky;bottom:0}}

/* V19 polish pass: closer to the reference UI, denser panels, live editor affordances */
body{font-size:16px}.game{border-color:#3e2712;box-shadow:inset 0 0 0 1px rgba(224,177,83,.12),0 0 40px rgba(0,0,0,.75)}
.brand-sub{font-size:12px;color:#876d47;letter-spacing:1.2px;text-transform:uppercase;margin-top:-5px}.profile-pill{color:var(--text);text-align:left}.profile-pill:hover{border-color:var(--gold);box-shadow:0 0 12px rgba(213,162,63,.15)}
.profile-menu-wrap{position:relative}.profile-pill.active{border-color:var(--gold);box-shadow:0 0 12px rgba(213,162,63,.15)}.profile-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:40;width:240px;padding:8px;background:linear-gradient(180deg,#101a20,#080f13);border:1px solid #74501f;box-shadow:var(--shadow)}.profile-menu-head{padding:8px 10px;color:var(--gold2);font:16px var(--font-title);border-bottom:1px solid #332414}.profile-menu button{width:100%;padding:11px 10px;border:0;border-bottom:1px solid #1c2a2f;background:transparent;color:var(--text);text-align:left;font:inherit;cursor:pointer}.profile-menu button:hover{background:#17252b;color:var(--gold2)}.profile-menu button:last-child{border-bottom:0}
.topbar{padding:0 22px;gap:22px}.brand{min-width:300px;gap:14px}.brand-icon{width:46px;height:46px;font-size:25px}.brand-title{font-size:32px}.resource-row{gap:8px;flex:1;justify-content:flex-end}.resource{min-width:122px;height:48px;padding:7px 9px;gap:8px}.resource .ico{font-size:20px}.resource .label{font-size:12px}.resource .value{font-size:16px}.plus{width:26px;height:26px;font-size:18px}.profile-pill{min-width:270px;height:52px}.profile-sub{font-size:12px}.main-layout{grid-template-columns:1fr}.content{padding:22px 30px 18px}.top-navigation{justify-content:center;min-height:53px}.top-nav-group{padding:0 10px;border-right:1px solid #2e241a}.top-nav-group:last-child{border-right:0}.top-nav-title{color:#a88b58}
.topbar{min-width:0}.brand{min-width:430px}.resource{clip-path:polygon(12px 0,calc(100% - 12px) 0,100% 12px,100% calc(100% - 12px),calc(100% - 12px) 100%,12px 100%,0 calc(100% - 12px),0 12px)}
.panel,.player-card,.region-detail,.quest-card,.action-tile,.role-row,.tool-row,.guild-action,.shop-row,.slot,.item,.drop,.btn,.tab,.filter,.creation-panel{box-shadow:inset 0 0 0 1px rgba(244,212,148,.045),0 8px 20px rgba(0,0,0,.24)}
.panel:before,.player-card:before,.region-detail:before{content:'';position:absolute;left:8px;right:8px;top:8px;height:1px;background:linear-gradient(90deg,transparent,rgba(213,162,63,.26),transparent);pointer-events:none}.panel{overflow:hidden}.panel.pad{overflow:visible}.btn,.tab{transition:transform .12s ease,border-color .12s ease,filter .12s ease}.btn:hover:not(:disabled),.tab:hover{transform:translateY(-1px);border-color:var(--gold);filter:brightness(1.08)}.btn:active{transform:translateY(0)}
.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.page-head .page-title{margin-bottom:3px}.purple{color:var(--purple)}.motd{border-left:1px solid #2e241a;padding-left:22px;flex:1}.footer-ico{min-width:42px;text-align:center}.crest{width:58px;height:58px;border:1px solid var(--gold);display:grid;place-items:center;background:#0a1418;margin-bottom:10px;color:var(--gold2)}
.character-art,.paper-character,.portrait,.mini-avatar{filter:contrast(1.05) saturate(.95)}.summary-card{clip-path:polygon(10px 0,calc(100% - 10px) 0,100% 10px,100% calc(100% - 10px),calc(100% - 10px) 100%,10px 100%,0 calc(100% - 10px),0 10px)}
.hotspot{font-family:var(--font-title);line-height:1.05;text-shadow:0 1px 2px #000;transition:border-color .12s ease,box-shadow .12s ease,background .12s ease}.hotspot small{display:block;font-size:11px;color:#f4d58e}.hotspot.active,.editor-hotspot.active{border-color:#ffe08b;background:rgba(228,168,54,.27);box-shadow:0 0 22px rgba(255,190,64,.45),inset 0 0 18px rgba(255,196,79,.13)}.hotspot.locked small{color:#b2d9ff}.map-stage.grid-on:after{content:'';position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(rgba(213,162,63,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(213,162,63,.12) 1px,transparent 1px);background-size:5% 5%,5% 5%,25% 25%,25% 25%;mix-blend-mode:screen;opacity:.8}.editor-hotspot{cursor:grab}.editor-hotspot:active{cursor:grabbing}.editor-stage{user-select:none}
.zone-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-top:14px}.zone-chip{border:1px solid #4e3219;background:linear-gradient(180deg,#0b151a,#071015);color:var(--text);min-height:74px;padding:10px;display:grid;grid-template-columns:32px 1fr;column-gap:8px;align-items:center;text-align:left}.zone-chip span{font-size:24px;color:var(--gold2);grid-row:1/3}.zone-chip small{color:var(--muted)}.zone-chip.active{border-color:var(--gold);background:linear-gradient(90deg,rgba(133,91,32,.45),rgba(255,207,84,.08),transparent)}.zone-chip.locked{opacity:.55}.muted-card{filter:saturate(.55);opacity:.75}.region-grid.alt{grid-template-columns:repeat(3,1fr) 310px}.region-grid.alt .activity-card{min-height:0}.activity-card{transition:none}.activity-card:hover{transform:none;border-color:#513618}.activity-card.muted-card:hover{transform:none}
.region-grid .city-market-open{grid-column:1/-1}.city-market-open .market-layout{margin-top:8px}
.enemy-stand{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);font-size:140px;filter:drop-shadow(0 10px 18px rgba(0,0,0,.85));opacity:.9}.outcome{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(440px,70%);border:1px solid var(--gold);background:rgba(5,10,12,.94);padding:22px;text-align:center;box-shadow:0 0 45px rgba(0,0,0,.8),0 0 24px rgba(213,162,63,.25);z-index:5}.outcome h2{font:36px var(--font-title);color:var(--gold2);margin:0 0 8px}.outcome.defeat{border-color:#a94734}.ability:disabled{opacity:.45;cursor:not-allowed}.combat-log{scrollbar-width:thin;scrollbar-color:#6a431d #071015}
.filters.inv{grid-template-columns:1fr 1fr;margin:0 0 12px}.slot{cursor:pointer}.slot:hover{border-color:var(--gold)}.rarity-Starter{box-shadow:inset 0 0 0 2px rgba(220,220,220,.18)}.rarity-Common{box-shadow:inset 0 0 0 2px rgba(220,220,220,.1)}.rarity-Uncommon{box-shadow:inset 0 0 0 2px rgba(87,202,104,.35)}.rarity-Rare{box-shadow:inset 0 0 0 2px rgba(69,160,255,.45)}.rarity-Epic{box-shadow:inset 0 0 0 2px rgba(171,83,231,.55)}.item:hover{border-color:var(--gold);transform:translateY(-1px)}
.quest-card{box-shadow:0 8px 18px rgba(0,0,0,.35);background:linear-gradient(90deg,#2c241b 0 300px,#d9c7a5 300px,#cfba96 100%)}.quest-body,.quest-rewards{position:relative}.quest-body:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 40% 20%,rgba(255,255,255,.18),transparent 40%);pointer-events:none}.reward{border-radius:3px}.filter-list button:hover{border-color:var(--gold)}
.creation-panel{background:linear-gradient(180deg,#0b171c,#050a0d);position:relative}.creation-panel:after{content:'Use this modal as the future account/character-slot shell.';display:block;margin-top:12px;color:#806846;font-size:13px}.option{transition:transform .12s ease,border-color .12s ease}.option:hover{transform:translateY(-1px);border-color:var(--gold)}.text-input:focus,.filter:focus{outline:1px solid var(--gold);box-shadow:0 0 10px rgba(213,162,63,.15)}
.toast{animation:toastIn .18s ease}@keyframes toastIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#061015}::-webkit-scrollbar-thumb{background:#5a3d22;border:2px solid #061015}::-webkit-scrollbar-thumb:hover{background:#8b5f27}
@media(max-width:1500px){.resource{min-width:160px}.brand{min-width:350px}.brand-title{font-size:34px}.command-layout{grid-template-columns:1fr .75fr .55fr}.hero-card{height:560px}.zone-strip{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1250px){.zone-strip{grid-template-columns:1fr 1fr}.region-grid.alt{grid-template-columns:1fr}.page-head{display:block}.brand-sub{display:none}.resource-row{gap:8px}.profile-pill{min-width:190px}}

/* V20 party, multi-enemy, and dungeon pass */
.party-manage{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.party-manage-card{display:grid;grid-template-columns:48px 1fr 86px;gap:10px;align-items:center;border:1px solid #3e2d18;background:linear-gradient(180deg,#0b1519,#071015);padding:10px}.party-manage-card.active{border-color:var(--gold);box-shadow:0 0 14px rgba(213,162,63,.16),inset 0 0 18px rgba(213,162,63,.06)}.party-avatar,.unit-face,.enemy-token{width:44px;height:44px;border:1px solid #5a3d22;background:#091216;display:grid;place-items:center;font-size:24px;border-radius:50%;box-shadow:inset 0 0 18px rgba(0,0,0,.45)}
.dungeon-strip{margin-top:14px}.dungeon-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}.dungeon-card{display:grid;grid-template-columns:56px 1fr 130px;gap:12px;align-items:center;border:1px solid #4e3219;background:linear-gradient(180deg,#0b1519,#071015);padding:12px}.dungeon-card.locked{opacity:.55}.dungeon-icon{width:50px;height:50px;border:1px solid var(--gold);background:#11120f;display:grid;place-items:center;font-size:26px}.dungeon-card p{margin:6px 0 0;color:var(--muted);font-size:13px}
.target-strip{display:flex;align-items:center;gap:8px;padding:8px 14px;border-bottom:1px solid #2f2519;background:rgba(0,0,0,.15);flex-wrap:wrap}.target-pill{height:32px;border:1px solid #4e3219;background:#071015;color:var(--text);padding:0 10px}.target-pill.active{border-color:var(--gold);background:linear-gradient(90deg,#3c2810,#10181c);color:#fff0c8}.multi-battle{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(420px,1.4fr);gap:12px;align-items:stretch;padding:18px}.party-side,.enemy-side{position:relative;z-index:2}.party-side h3,.enemy-side h3{font:22px var(--font-title);color:var(--gold2);margin:0 0 10px}.unit-card{display:grid;grid-template-columns:52px 1fr;gap:10px;align-items:start;border:1px solid #3e2d18;background:rgba(6,12,15,.86);padding:10px;margin-bottom:8px}.unit-card.downed{opacity:.42;filter:grayscale(.6)}.player-face{background:url('assets/art-v2/characters/starting/warrior-male-cutout.png') center/cover no-repeat;border-color:var(--gold)}.enemy-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.enemy-unit{text-align:left;border:1px solid #4e3219;background:rgba(5,10,12,.9);color:var(--text);padding:10px;min-height:178px}.enemy-unit.active{border-color:#ffe08b;box-shadow:0 0 18px rgba(255,190,64,.28),inset 0 0 18px rgba(213,162,63,.08)}.enemy-unit.defeated{opacity:.38;filter:grayscale(.8)}.enemy-unit b,.enemy-unit small{display:block;text-align:center}.enemy-token{margin:0 auto 6px;border-radius:12px;font-size:34px;width:58px;height:58px}.ability small.subtle{display:block;margin-top:6px;min-height:28px}.combat-layout{grid-template-columns:minmax(0,1fr) 340px}.encounter .ability-row{grid-template-columns:repeat(5,minmax(0,1fr));padding:12px 18px 16px}.battle-stage.multi-battle:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,9,12,.58),rgba(3,9,12,.18),rgba(3,9,12,.68));pointer-events:none}.statline{gap:6px}.status-row{gap:7px}
@media(max-width:1450px){.enemy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.combat-layout{grid-template-columns:1fr}.dungeon-cards,.party-manage{grid-template-columns:1fr}.multi-battle{grid-template-columns:1fr}.encounter .ability-row{grid-template-columns:repeat(2,1fr)}}

/* V21 systems pass */
.empty-state{min-height:260px;display:grid;place-items:center;text-align:center;border:1px dashed #5a3d22;background:rgba(4,9,12,.35);padding:22px}.empty-state h3{margin:0;color:var(--gold2);font:24px var(--font-title)}
.action-tile.active{border-color:var(--gold);background:linear-gradient(90deg,rgba(133,91,32,.55),rgba(255,207,84,.08),transparent)}
.action-tile:disabled{opacity:.45;cursor:not-allowed}.action-tile:disabled:hover{transform:none;border-color:#4e3219}.card-img{width:100%;height:155px;object-fit:cover;border:1px solid #5a3d22;background:#071015;margin-bottom:10px}.magic{color:var(--blue)}.goldtext{color:var(--gold2)}.success{color:var(--green)}.danger{color:var(--red)}
.creation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.option.selected{border-color:var(--gold);background:linear-gradient(180deg,#23180d,#0d1113);box-shadow:0 0 12px rgba(213,162,63,.2)}.text-input{width:100%;height:42px;background:#071015;border:1px solid #5a3d22;color:var(--text);padding:0 12px}.toast{position:fixed;right:28px;bottom:84px;border:1px solid var(--gold);background:#091116;color:var(--text);padding:12px 16px;z-index:20;box-shadow:var(--shadow)}
@media(max-width:1450px){.creation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* V23 account + character creation pages */
.auth-screen{min-height:100vh;position:relative;overflow:hidden;background:
  radial-gradient(circle at 72% 38%,rgba(54,96,130,.34),transparent 34%),
  radial-gradient(circle at 12% 52%,rgba(18,51,74,.5),transparent 34%),
  linear-gradient(180deg,#03070d 0%,#07121b 42%,#020509 100%);color:#eadfcb;font-family:var(--font-body);display:grid;place-items:center;padding:54px 28px 34px;isolation:isolate}
.auth-screen:before{content:'';position:absolute;inset:0;background:
  linear-gradient(90deg,rgba(0,0,0,.2),transparent 18%,transparent 72%,rgba(0,0,0,.32)),
  repeating-linear-gradient(90deg,rgba(255,255,255,.025) 0 1px,transparent 1px 90px),
  repeating-linear-gradient(0deg,rgba(255,255,255,.018) 0 1px,transparent 1px 80px);opacity:.55;z-index:-5}
.auth-screen:after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 0%,rgba(35,132,245,.18),transparent 24%),radial-gradient(circle at 50% 100%,rgba(213,162,63,.13),transparent 25%);pointer-events:none;z-index:8}
.auth-castle{position:absolute;right:-4vw;bottom:0;width:44vw;height:86vh;opacity:.75;z-index:-3;background:
  linear-gradient(transparent 0 42%,rgba(0,0,0,.65) 100%),
  url('assets/art-v2/stronghold/buildings/stronghold-town-hall.png') center bottom/cover no-repeat;filter:brightness(.52) contrast(1.18) saturate(.82);clip-path:polygon(20% 0,100% 0,100% 100%,0 100%,12% 58%)}
.auth-left-figure{position:absolute;left:2vw;bottom:0;width:23vw;height:82vh;min-width:260px;opacity:.9;z-index:-2;background:linear-gradient(180deg,transparent,rgba(0,0,0,.55));}
.auth-left-figure:before{content:'';position:absolute;left:29%;bottom:13%;width:34%;height:68%;background:linear-gradient(100deg,#02060a,#101923 48%,#020509);clip-path:polygon(45% 0,62% 4%,68% 22%,80% 55%,69% 100%,33% 100%,18% 57%,28% 22%,34% 5%);box-shadow:0 0 40px rgba(0,0,0,.9),inset 8px 0 16px rgba(255,255,255,.035)}
.auth-left-figure:after{content:'';position:absolute;left:30%;bottom:72%;width:20%;height:10%;background:#020509;border-radius:50% 50% 45% 45%;box-shadow:0 0 18px #000}
.auth-staff{position:absolute;left:30%;bottom:12%;width:4px;height:73%;background:linear-gradient(#0e395c,#947342,#0b1b23);box-shadow:0 0 12px rgba(53,147,255,.5)}
.auth-staff:before{content:'✦';position:absolute;top:-38px;left:50%;transform:translateX(-50%);font-size:42px;color:#65bbff;text-shadow:0 0 18px #2b8fff,0 0 34px #2b8fff}
.auth-brazier{position:absolute;left:5%;bottom:10%;width:76px;height:58px;display:grid;place-items:center;color:#56b8ff;font-size:34px;text-shadow:0 0 18px #2b8fff;border-bottom:2px solid #624525;border-radius:0 0 50% 50%}
.auth-logo{position:absolute;top:26px;left:50%;transform:translateX(-50%);text-align:center;z-index:5;text-shadow:0 5px 9px #000,0 0 22px rgba(95,173,255,.24);pointer-events:none}.auth-logo-main{font-family:var(--font-title);font-size:78px;letter-spacing:8px;text-transform:uppercase;line-height:.83;background:linear-gradient(#fff5d5,#b88845 40%,#66421f 80%,#fff0bd);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-stroke:1px rgba(38,22,8,.55)}.auth-logo-sub{font-family:var(--font-title);font-size:28px;letter-spacing:17px;text-transform:uppercase;color:#d9b676;margin-left:14px}.auth-logo-sub:before,.auth-logo-sub:after{content:'—';letter-spacing:0;margin:0 10px;color:#6e4e27}
.auth-panel{position:relative;z-index:2;border:1px solid #8f6b35;background:linear-gradient(180deg,rgba(8,14,18,.94),rgba(4,9,12,.97));box-shadow:0 34px 80px rgba(0,0,0,.72),0 0 0 2px rgba(0,0,0,.75),inset 0 0 70px rgba(0,0,0,.38),inset 0 0 0 1px rgba(255,224,139,.08);clip-path:polygon(18px 0,calc(100% - 18px) 0,100% 18px,100% calc(100% - 18px),calc(100% - 18px) 100%,18px 100%,0 calc(100% - 18px),0 18px)}
.auth-panel:before,.auth-panel:after{content:'✧';position:absolute;color:#2f99ff;text-shadow:0 0 16px #2f99ff;font-size:24px;left:50%;transform:translateX(-50%)}.auth-panel:before{top:-14px}.auth-panel:after{bottom:-15px}.auth-panel h1{font-family:var(--font-title);font-size:36px;letter-spacing:3px;text-transform:uppercase;text-align:center;margin:0 0 10px;color:#f1d28d;text-shadow:0 2px 4px #000}.auth-divider{height:20px;margin:0 auto 18px;width:55%;background:linear-gradient(90deg,transparent,#5f3d1d 35%,#d4aa62 50%,#5f3d1d 65%,transparent);clip-path:polygon(0 48%,46% 48%,50% 0,54% 48%,100% 48%,54% 54%,50% 100%,46% 54%)}
.account-panel{width:min(870px,calc(100vw - 56px));padding:42px 74px 34px;margin-top:88px}.auth-field{height:62px;border:1px solid #7d5c30;background:linear-gradient(180deg,rgba(10,17,21,.98),rgba(2,6,8,.98));display:grid;grid-template-columns:260px 1fr 48px;align-items:center;margin:14px 0;box-shadow:inset 0 0 12px rgba(0,0,0,.5)}.auth-field-label{height:100%;display:flex;align-items:center;gap:14px;border-right:1px solid #6d4e28;padding:0 22px;font-weight:700;color:#f0d9a0;text-transform:uppercase}.auth-field-label i{font-style:normal;color:#b8924d;font-size:21px;min-width:24px;text-align:center}.auth-field input{height:100%;background:transparent;border:0;color:#eadfcb;font-size:16px;padding:0 20px;outline:none}.auth-field input::placeholder,.auth-text-input::placeholder{color:#afa28f}.eye-button{border:0;background:transparent;color:#b8924d;font-size:18px;cursor:pointer}.terms-row{display:flex;align-items:center;gap:12px;margin:18px 0 24px;justify-content:center;color:#d8c7aa}.terms-row input{appearance:none;width:22px;height:22px;border:1px solid #9b7239;background:#05090c;display:inline-block}.terms-row input:checked{background:radial-gradient(circle,#2b9bff 0 35%,#0b1d29 36%);box-shadow:0 0 12px rgba(54,159,255,.5)}.terms-row b,.auth-bottom-link button{color:#38a9ff;font-weight:500}.auth-gold-button{width:100%;height:78px;border:1px solid #f5cd79;background:linear-gradient(180deg,#c79032,#704409 55%,#b6791e);color:#fff1c8;font-family:var(--font-title);font-size:34px;letter-spacing:2px;text-transform:uppercase;text-shadow:0 3px 4px #000;cursor:pointer;box-shadow:inset 0 2px 0 rgba(255,249,207,.45),inset 0 -12px 24px rgba(60,28,5,.7),0 8px 24px rgba(0,0,0,.55);clip-path:polygon(34px 0,calc(100% - 34px) 0,100% 50%,calc(100% - 34px) 100%,34px 100%,0 50%)}.auth-gold-button:hover{filter:brightness(1.08);box-shadow:inset 0 2px 0 rgba(255,249,207,.5),0 0 24px rgba(223,162,54,.32),0 8px 24px rgba(0,0,0,.55)}.auth-bottom-link{border-top:1px solid rgba(150,107,51,.28);margin-top:28px;padding-top:20px;text-align:center;color:#d5c3a4}.auth-bottom-link button{border:0;background:transparent;cursor:pointer;font-size:16px}
.character-create-panel{width:min(1160px,calc(100vw - 56px));padding:30px 36px 86px;margin-top:66px}.char-create-grid{display:grid;grid-template-columns:minmax(520px,1fr) 390px;gap:30px}.char-builder-left{position:relative}.char-section-label{display:block;font-family:var(--font-title);letter-spacing:1px;color:#f1d28d;text-transform:uppercase;margin:14px 0 8px}.char-name-row{display:grid;grid-template-columns:1fr 54px;gap:8px}.auth-text-input{height:48px;background:#050a0d;border:1px solid #7b592c;color:#f0e6d8;font-size:18px;padding:0 16px;outline:none}.dice-button,.auth-back-button{border:1px solid #79572c;background:linear-gradient(180deg,#16120e,#060b0e);color:#d9b676;cursor:pointer}.dice-button{font-size:22px}.class-tile-row{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.class-tile{height:128px;border:1px solid #5d4325;background:linear-gradient(180deg,#111418,#05090c);color:#e8dcc9;display:grid;place-items:center;padding:10px;gap:5px;cursor:pointer;box-shadow:inset 0 0 18px rgba(0,0,0,.45)}.class-tile span{font-size:39px;filter:sepia(.45) saturate(.65);color:#d2a861}.class-tile b{font-family:var(--font-title);text-transform:uppercase;letter-spacing:1px;font-size:14px}.class-tile.selected{border-color:#59b6ff;box-shadow:0 0 16px rgba(62,169,255,.48),inset 0 0 18px rgba(36,125,255,.1)}.appearance-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.appearance-tile{height:128px;border:1px solid #5d4325;background:#070d11;position:relative;overflow:hidden;cursor:pointer;padding:0}.appearance-tile img{width:100%;height:100%;object-fit:cover;filter:brightness(.85) contrast(1.1);transform:scale(1.15)}.appearance-tile.silver img{filter:grayscale(.8) brightness(1.08) contrast(1.05)}.appearance-tile.blue img{filter:hue-rotate(190deg) saturate(.8) brightness(.92)}.appearance-tile.shadow img{filter:brightness(.62) contrast(1.25)}.appearance-tile.hood img{filter:brightness(.52) sepia(.3)}.appearance-tile.ember img{filter:sepia(.75) hue-rotate(-22deg) saturate(1.3)}.appearance-tile.frost img{filter:grayscale(.8) hue-rotate(170deg) brightness(1.15)}.appearance-tile.verdant img{filter:hue-rotate(70deg) saturate(.85)}.appearance-tile span{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(0,0,0,.85));font-size:11px;padding:22px 6px 6px;color:#eadfcb;text-align:center}.appearance-tile.selected{border-color:#59b6ff;box-shadow:0 0 16px rgba(62,169,255,.48)}.auth-back-button{height:52px;width:190px;margin-top:20px;font-family:var(--font-title);font-size:18px;text-transform:uppercase}.char-preview-card{border:1px solid #7b592c;background:rgba(3,8,11,.82);box-shadow:inset 0 0 40px rgba(0,0,0,.4)}.char-preview-art{height:335px;overflow:hidden;position:relative;background:linear-gradient(180deg,#172533,#05090c)}.char-preview-art:before{content:'';position:absolute;inset:0;background:url('assets/art-v2/locations/regions/region-stonehill-village.png') center/cover no-repeat;filter:brightness(.54) contrast(1.2);opacity:.75}.char-preview-art img{position:absolute;right:8px;bottom:-8px;height:112%;width:auto;filter:drop-shadow(0 14px 18px rgba(0,0,0,.85)) contrast(1.08)}.char-preview-art.priest img{filter:hue-rotate(25deg) brightness(1.12) drop-shadow(0 14px 18px rgba(0,0,0,.85))}.char-preview-art.rogue img{filter:brightness(.7) contrast(1.25) drop-shadow(0 14px 18px rgba(0,0,0,.85))}.char-preview-art.ranger img{filter:hue-rotate(70deg) saturate(.78) drop-shadow(0 14px 18px rgba(0,0,0,.85))}.char-preview-art.warlock img{filter:hue-rotate(270deg) saturate(1.05) brightness(.78) drop-shadow(0 14px 18px rgba(0,0,0,.85))}.char-preview-art.mage img{filter:hue-rotate(195deg) saturate(.92) brightness(.98) drop-shadow(0 14px 18px rgba(0,0,0,.85))}.char-info-card{display:grid;grid-template-columns:72px 1fr;gap:16px;padding:22px;border-top:1px solid #7b592c}.class-icon-large{width:62px;height:62px;border:1px solid #8f6b35;display:grid;place-items:center;font-size:34px;background:#0b1216;color:#d9b676}.char-info-card h2{font-family:var(--font-title);font-size:30px;letter-spacing:1px;margin:0;color:#f1d28d;text-transform:uppercase}.char-info-card p{margin:7px 0 0;color:#d9cbb5;line-height:1.45}.class-stat-bars{padding:0 22px 22px}.class-stat-row{display:grid;grid-template-columns:90px 1fr 24px;gap:12px;align-items:center;margin:10px 0;color:#e8d0a1;text-transform:uppercase;font-family:var(--font-title);letter-spacing:.8px}.stat-track{height:10px;background:#091116;border:1px solid #453018}.stat-track div{height:100%;background:linear-gradient(90deg,#6f4618,#e2b45d)}.create-character-large{position:absolute;right:38px;bottom:24px;width:460px;height:70px}.auth-panel.character-create-panel:after{display:none}
@media(max-width:1200px){.auth-logo-main{font-size:58px}.char-create-grid{grid-template-columns:1fr}.character-create-panel{margin-top:90px}.create-character-large{position:relative;right:auto;bottom:auto;margin-top:20px;width:100%}.class-tile-row{grid-template-columns:repeat(3,1fr)}.auth-left-figure,.auth-castle{opacity:.35}.account-panel{padding:36px 34px}.auth-field{grid-template-columns:190px 1fr 42px}.character-create-panel{width:min(920px,calc(100vw - 34px))}}
@media(max-width:740px){.auth-logo-main{font-size:42px;letter-spacing:4px}.auth-logo-sub{font-size:18px;letter-spacing:9px}.account-panel,.character-create-panel{margin-top:84px;width:calc(100vw - 24px);padding:26px 18px 34px}.auth-field{height:auto;grid-template-columns:1fr}.auth-field-label{height:42px;border-right:0;border-bottom:1px solid #6d4e28}.auth-field input{height:48px}.eye-button{position:absolute;right:18px;margin-top:44px}.class-tile-row,.appearance-grid{grid-template-columns:repeat(2,1fr)}.char-preview-art{height:270px}}

/* V24 art, player-party, guild, and stronghold polish */
.class-tile img{width:48px;height:48px;object-fit:contain;filter:drop-shadow(0 0 10px rgba(56,169,255,.25))}
.appearance-tile img{object-fit:cover;object-position:top center;transform:none!important;filter:brightness(.86) contrast(1.1)!important}
.char-preview-art img{right:auto;left:50%;transform:translateX(-50%);height:112%;max-width:120%;object-fit:contain}
.character-art{position:relative;display:grid;place-items:center;overflow:hidden;background:linear-gradient(180deg,rgba(15,27,34,.98),rgba(3,8,11,.98)),url('assets/art-v2/locations/regions/region-stonehill-village.png') center/cover no-repeat!important}.character-main-img{max-height:92%;max-width:92%;object-fit:contain;filter:drop-shadow(0 28px 22px rgba(0,0,0,.75))}.character-art .btn{position:absolute;bottom:24px;left:50%;transform:translateX(-50%)}
.portrait,.mini-avatar{background-size:cover;background-position:top center}.paper-character{display:grid;place-items:center;overflow:hidden}.paper-character img{height:92%;max-width:90%;object-fit:contain;filter:drop-shadow(0 18px 20px rgba(0,0,0,.8))}
.item img,.shop-icon img,.selected-art img,.drop img,.slot img,.tiny-icon{width:100%;height:100%;object-fit:contain}.item span:not(.count){font-size:28px}.shop-icon-img{width:58px!important;height:58px!important}.selected-art{display:grid;place-items:center}.selected-art-img{max-width:78%;max-height:210px;object-fit:contain;filter:drop-shadow(0 18px 16px rgba(0,0,0,.55))}.slot-img{max-width:42px;max-height:42px}.drop img{max-width:42px;max-height:42px}.tiny-icon{width:24px!important;height:24px!important;vertical-align:middle;margin-right:6px}
.stronghold-layout{display:grid;grid-template-columns:1.25fr .85fr .9fr;gap:16px}.stronghold-hero{min-height:360px;background:linear-gradient(180deg,rgba(4,8,10,.15),rgba(3,7,10,.92)),url('assets/art-v2/stronghold/buildings/stronghold-town-hall.png') center/cover no-repeat;display:flex;align-items:end;padding:28px}.stronghold-hero h2{font:38px var(--font-title);margin:0;color:var(--gold2);text-shadow:0 3px 6px #000}.stronghold-hero .btn{margin-top:14px}.no-guild-banner{min-height:300px;background:linear-gradient(180deg,rgba(4,8,10,.25),rgba(3,7,10,.92)),url('assets/art-v2/scenes/core/scene-guild-hall-highmere.png') center/cover no-repeat;display:flex;align-items:end;padding:28px}.no-guild-banner h2{color:var(--gold2)}
.unit-face{background-size:cover;background-position:top center}.party-invite-note{border:1px solid rgba(201,151,77,.32);background:rgba(4,9,12,.6);padding:12px;border-radius:6px;color:var(--muted)}
@media(max-width:1200px){.stronghold-layout{grid-template-columns:1fr}.stronghold-hero{min-height:280px}}

/* V25 combat + stronghold build */
.sh-layout{display:grid;grid-template-columns:minmax(720px,1fr) 420px;gap:16px}.sh-main{display:grid;gap:14px}.sh-sidebar{display:grid;gap:14px}.sh-hero-v25{min-height:345px;display:grid;grid-template-columns:260px 1fr;overflow:hidden}.sh-summary{padding:22px;background:linear-gradient(180deg,rgba(7,13,16,.92),rgba(4,8,10,.96));border-right:1px solid #5a3b1c}.sh-summary h2{font:16px var(--font-title);color:var(--gold2);text-transform:uppercase;margin:0 0 8px}.level-shield{width:66px;height:76px;border:2px solid var(--gold);display:grid;place-items:center;font:34px var(--font-title);margin:6px 0;color:var(--gold2);clip-path:polygon(50% 0,90% 18%,86% 78%,50% 100%,14% 78%,10% 18%)}.prosperity{font-size:26px;color:#cdeaa6}.sh-hero-art{background:linear-gradient(90deg,rgba(6,12,15,.2),rgba(3,8,11,.35)),url('assets/art-v2/stronghold/buildings/stronghold-town-hall.png') center/cover no-repeat;display:flex;align-items:flex-end;justify-content:flex-end;padding:18px;color:#d8c5a2;text-shadow:0 2px 5px #000}.sh-resource-row{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.sh-resource,.sh-storage-item{border:1px solid #4c3219;background:#071116;padding:10px;min-height:80px}.sh-resource span{font-size:24px}.sh-resource b,.sh-storage-item b{display:block;color:var(--gold2)}.sh-resource em{font-style:normal;color:#86df8a}.sh-storage-item small{color:var(--muted)}.sh-buildings{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.sh-building{border:1px solid #513618;background:linear-gradient(180deg,#0c161b,#050a0d);display:grid;grid-template-columns:96px 1fr;grid-template-rows:1fr auto;gap:10px;padding:10px;min-height:132px}.sh-building img{width:96px;height:84px;object-fit:cover;border:1px solid #5c3e1d}.sh-building h3{font:18px var(--font-title);color:var(--gold2);margin:0}.sh-building p{margin:2px 0}.sh-building .btn{grid-column:1/2}.sh-building .sh-cost{grid-column:2/3;color:var(--muted);align-self:center}.sh-building.locked{opacity:.48}.sh-side-card{min-height:100px}.queue-item{display:grid;grid-template-columns:54px 1fr auto auto;gap:10px;align-items:center;border:1px solid #3f2b17;background:#091318;padding:10px;margin:8px 0}.queue-empty{border:1px dashed #4b3017;color:var(--muted);padding:14px;margin:8px 0;text-align:center}.worker-row{display:grid;grid-template-columns:1.3fr .55fr .8fr 34px 34px;gap:8px;align-items:center;border-bottom:1px solid #261b11;padding:9px 0}.worker-row em{font-style:normal;color:#7fe083}.mini-btn{width:30px;height:30px;border:1px solid #805721;background:#0a1216;color:var(--gold2)}.defense-card .force-row{display:flex;gap:8px;margin-top:8px}.force{width:58px;height:62px;border:1px solid #67451f;position:relative;background:#071015}.force img{width:100%;height:100%;object-fit:cover}.force b{position:absolute;right:3px;bottom:2px;background:#05090c;padding:1px 5px;color:var(--gold2)}.sh-actions{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.sh-actions button{height:76px;border:1px solid #6a471f;background:#081116;color:var(--gold2);display:grid;place-items:center}.sh-actions button.active,.sh-actions button:hover{box-shadow:0 0 15px rgba(216,163,65,.25);background:linear-gradient(180deg,#1b160f,#090f12)}.sh-log p{border-bottom:1px solid #251a10;padding-bottom:6px;color:#d8c9b2}.warn{color:#e7a44d}.success{color:#82df8d}
.v25-combat-layout{display:grid;grid-template-columns:minmax(820px,1fr) 360px;gap:16px}.v25-encounter{overflow:hidden}.encounter-head-v25{display:grid;grid-template-columns:260px 1fr;gap:12px;align-items:center;border-bottom:1px solid #513618;padding:12px 14px}.turn-queue{display:flex;align-items:center;gap:6px;min-height:58px}.queue-label{color:var(--gold2);text-transform:uppercase;margin-right:8px}.queue-token{width:48px;height:48px;border:1px solid #725022;background:#071015;position:relative}.queue-token img{width:100%;height:100%;object-fit:cover}.queue-token b{position:absolute;right:-5px;bottom:-5px;background:#071015;border:1px solid #725022;border-radius:50%;width:20px;height:20px;text-align:center;font-size:12px}.queue-token.active{border-color:#59b6ff;box-shadow:0 0 14px rgba(65,170,255,.7)}.queue-token.enemy{border-color:#883a2f}.queue-token.dead{opacity:.35}.round-pill{margin-left:auto;color:var(--gold2);border:1px solid #513618;padding:6px 10px}.battlefield-v25{position:relative;height:330px;overflow:hidden;border-bottom:1px solid #513618;background:#050b0d}.battlefield-v25>img{width:100%;height:100%;object-fit:cover;filter:brightness(.75)}.field-ally{position:absolute;width:82px;height:150px;overflow:hidden;filter:drop-shadow(0 18px 12px rgba(0,0,0,.8))}.field-ally img{height:100%;width:100%;object-fit:cover;object-position:top center}.field-enemy{position:absolute;width:92px;height:116px;background:transparent;border:0;padding:0;filter:drop-shadow(0 14px 10px rgba(0,0,0,.8))}.field-enemy img{width:100%;height:100%;object-fit:cover;border:1px solid #873b2c;background:#111}.field-enemy.selected img{border-color:#ff4b3e;box-shadow:0 0 18px rgba(255,60,50,.85)}.target-arrow{position:absolute;top:-26px;left:50%;transform:translateX(-50%);color:#ff453e;font-size:31px;text-shadow:0 0 12px #f33;z-index:3}.target-help{position:absolute;left:22px;bottom:20px;border:1px solid #6a471f;background:rgba(5,10,12,.82);padding:9px 14px;color:var(--gold2)}.lower-combat{display:grid;grid-template-columns:330px 1fr;gap:12px;padding:12px}.party-panel-v25,.enemy-panel-v25{border:1px solid #3f2b17;background:#071116;padding:10px}.party-panel-v25 h3,.enemy-panel-v25 h3{font:18px var(--font-title);color:var(--gold2);margin:0 0 8px;text-transform:uppercase}.enemy-grid-v25{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.enemy-token-img{height:78px}.enemy-token-img img{width:100%;height:100%;object-fit:cover;object-position:top center}.enemy-unit{display:grid;gap:5px;text-align:center;border:1px solid #66311f;background:#0b1216;padding:8px;min-height:200px}.enemy-unit.active{border-color:#ff4b3e;box-shadow:0 0 15px rgba(255,60,50,.45)}.enemy-unit.defeated{opacity:.35}.intent{color:#d9c49f}.intent-high{color:#ff7979}.intent-medium{color:#f5bd6d}.intent-low{color:#bfe0a1}.empty-party-slot{border:1px dashed #3d2a17;color:#7d715f;padding:10px;margin:8px 0;text-align:center}.unit-card.current-turn{border-color:#59b6ff;box-shadow:0 0 12px rgba(75,180,255,.35)}.action-console{border-top:1px solid #513618;background:#070e12;display:grid;grid-template-columns:225px 1fr 330px;gap:12px;padding:12px;position:relative}.actor-card-v25{display:grid;grid-template-columns:76px 1fr;gap:10px;align-items:center}.actor-card-v25 img{width:76px;height:92px;object-fit:cover;border:1px solid #725022}.skills-v25{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.skills-v25.disabled-actionbar{opacity:.55}.combat-tabs-v25{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.combat-tabs-v25 button{border:1px solid #5b3a1b;background:#081116;color:var(--gold2);min-height:48px}.combat-tabs-v25 .active,.combat-tabs-v25 button:hover{background:#11202a}.combat-tabs-v25 .end-turn{grid-column:2/4;background:linear-gradient(180deg,#114584,#051a31);border-color:#4da6ff;color:#e6f4ff}.waiting-banner{position:absolute;left:250px;right:350px;bottom:12px;background:rgba(10,18,23,.9);border:1px solid #715025;color:#f0d49a;text-align:center;padding:8px}.combat-log-v25 p{border-bottom:1px solid #23190f;padding:8px 0;margin:0;color:#d8c9b2}.log-filters{display:flex;gap:8px;justify-content:flex-end;color:var(--gold2)}.objectives-v25{margin-top:14px;background:#071116}.ability[title]{position:relative}
@media(max-width:1300px){.sh-layout,.v25-combat-layout{grid-template-columns:1fr}.sh-buildings,.sh-resource-row{grid-template-columns:repeat(2,1fr)}.action-console{grid-template-columns:1fr}.enemy-grid-v25{grid-template-columns:repeat(2,1fr)}}

/* V26 command/crafting correction pass */
.command-layout-v26 .hero-card{height:650px}
.command-layout-v26 .dots{display:none!important}
.crafting-layout{display:grid;grid-template-columns:minmax(520px,.9fr) minmax(560px,1.2fr) 300px;gap:16px;align-items:start}
.recipe-grid{display:grid;grid-template-columns:1fr;gap:12px}
.recipe-card{display:grid;grid-template-columns:66px 1fr auto;gap:12px;align-items:center;border:1px solid #513618;background:linear-gradient(180deg,#0d171d,#070f12);padding:12px}
.recipe-card.locked{opacity:.58}.recipe-card h3{font:20px var(--font-title);color:var(--gold2);margin:0 0 4px}.recipe-card p{margin:0 0 6px;color:#e6d8bd}.recipe-icon{width:60px;height:60px;border:1px solid #67451f;background:#0a1216;display:grid;place-items:center;font-size:30px}.craft-job{display:grid;grid-template-columns:62px 1fr auto;gap:12px;align-items:center;border:1px solid #5a3d22;background:#071116;padding:12px}.region-banner.dynamic-zone{background-size:cover;background-position:center}.zone-chip{overflow:hidden}.zone-chip:before{content:'';position:absolute;inset:0;background:rgba(0,0,0,.42);z-index:0}.zone-chip>*{position:relative;z-index:1}
@media(max-width:1300px){.crafting-layout{grid-template-columns:1fr}.recipe-card{grid-template-columns:56px 1fr}.recipe-card .btn{grid-column:1/-1}}

/* V27 targeted correction pass */
.auth-screen-clean{
  background:linear-gradient(90deg,rgba(2,7,11,.75),rgba(4,9,12,.35),rgba(2,7,11,.72)),url('assets/art-v2/scenes/core/scene-onboarding-stonehill-arrival.png') center/cover no-repeat!important;
  display:flex;align-items:center;justify-content:center;padding-top:118px;
}
.auth-screen-clean:before{display:none!important}.auth-screen-clean:after{z-index:1!important;opacity:.55}.auth-screen-clean .auth-logo{top:18px}.auth-left-figure,.auth-castle{display:none!important}
.character-create-panel-v27{width:min(1220px,calc(100vw - 56px));padding:30px 36px 58px;margin-top:0!important;max-height:calc(100vh - 148px);overflow:auto}.character-create-panel-v27 .char-create-grid{grid-template-columns:minmax(620px,1fr) 390px}.affinity-tile-row{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.affinity-tile{height:64px;border:1px solid #5d4325;background:linear-gradient(180deg,#111418,#05090c);color:#e8dcc9;display:grid;place-items:center;gap:2px;padding:6px;cursor:pointer}.affinity-tile span{font-size:22px}.affinity-tile b{font-family:var(--font-title);font-size:12px;text-transform:uppercase}.affinity-tile.selected{border-color:#59b6ff;box-shadow:0 0 14px rgba(62,169,255,.42)}
.character-create-panel-v27 .appearance-grid{grid-template-columns:repeat(6,1fr)}.character-create-panel-v27 .appearance-tile{height:118px}.character-create-panel-v27 .appearance-tile span{display:none!important}.character-create-panel-v27 .appearance-tile img{filter:none!important;transform:none!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center top!important}.character-create-panel-v27 .char-preview-art{height:335px;background:#05090c!important}.character-create-panel-v27 .char-preview-art:before{display:none!important}.character-create-panel-v27 .char-preview-art img{position:static!important;display:block;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover!important;object-position:center top!important;transform:none!important;filter:none!important}.create-character-large{width:391px!important;height:60px!important;right:38px!important;bottom:18px!important;font-size:28px!important}.auth-panel.character-create-panel:after{display:none!important}.dice-button{display:grid;place-items:center}
.hero-card{background-image:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.82)),url('assets/art-v2/stronghold/buildings/stronghold-town-hall.png')!important;background-size:cover!important;background-position:center!important}.hero-card .crest{display:none!important}.sh-hero-art.clean-stronghold-art{background:linear-gradient(90deg,rgba(6,12,15,.12),rgba(3,8,11,.22)),url('assets/art-v2/stronghold/buildings/stronghold-town-hall.png') center/cover no-repeat!important}.level-shield.clean-level{clip-path:none!important;border-radius:4px;width:58px;height:58px;border:1px solid var(--gold);font:32px var(--font-title);background:#091318}.sh-hero-art.clean-stronghold-art p{display:none!important}.sh-actions button{cursor:pointer}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:50;display:grid;place-items:center}.modal{width:min(860px,calc(100vw - 60px));max-height:80vh;overflow:auto}.region-select-layout{display:grid;grid-template-columns:1fr 390px;gap:16px}.region-tile-list{display:grid;gap:12px}.region-tile{display:grid;grid-template-columns:220px 1fr 90px;gap:16px;align-items:center;border:1px solid #513618;background:linear-gradient(180deg,#0b151a,#050b0e);padding:12px;text-align:left;color:var(--text)}.region-tile.active{border-color:var(--gold);box-shadow:0 0 14px rgba(213,162,63,.22)}.region-tile.locked{opacity:.58}.region-tile h3{font:24px var(--font-title);color:var(--gold2);margin:0 0 5px}.region-tile p{margin:0 0 6px;color:#e0d3bd}.region-tile-art{height:115px;border:1px solid #67451f;background:center/cover no-repeat}.region-summary-art{height:220px;border:1px solid #67451f;background:center/cover no-repeat;margin-bottom:12px}.zone-chip.image-backed{position:relative;background-size:cover!important;background-position:center!important;min-height:88px}.zone-chip.image-backed:before{background:linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.42))!important}.character-art .btn{transition:filter .12s ease,box-shadow .12s ease,border-color .12s ease!important;transform:none!important}.character-art .btn:hover{transform:none!important;filter:brightness(1.08)}
@media(max-width:1300px){.character-create-panel-v27 .char-create-grid{grid-template-columns:1fr}.create-character-large{position:relative!important;right:auto!important;bottom:auto!important;margin-top:18px;width:100%!important}.region-select-layout{grid-template-columns:1fr}.region-tile{grid-template-columns:160px 1fr 70px}.affinity-tile-row{grid-template-columns:repeat(3,1fr)}}


/* ========================= V28 Character Creation Layout Pass ========================= */
.auth-screen-clean{
  background:#02070b url('assets/art-v2/scenes/core/scene-onboarding-stonehill-arrival.png') center/cover no-repeat!important;
}
.auth-screen-clean:after{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:1;
  background:radial-gradient(circle at center,rgba(0,0,0,.16),rgba(0,0,0,.78) 82%),linear-gradient(180deg,rgba(2,8,13,.2),rgba(0,0,0,.62));
  opacity:1!important;
}
.character-create-panel-v28{
  width:min(1380px,calc(100vw - 42px))!important;
  max-height:calc(100vh - 122px)!important;
  margin-top:0!important;
  padding:28px 40px 118px!important;
  overflow:auto!important;
}
.character-create-panel-v28 h1{font-size:38px;margin-bottom:18px!important;}
.character-create-panel-v28 .char-create-grid{grid-template-columns:minmax(760px,1fr) 440px!important;gap:32px!important;}
.character-create-panel-v28 .class-tile-row{grid-template-columns:repeat(6,1fr)!important;gap:10px!important;}
.character-create-panel-v28 .class-tile{height:112px!important;}
.character-create-panel-v28 .affinity-tile-row{grid-template-columns:repeat(6,1fr)!important;gap:10px!important;}
.character-create-panel-v28 .affinity-tile{height:72px!important;}
.character-create-panel-v28 .appearance-grid-v28{grid-template-columns:repeat(6,1fr)!important;gap:10px!important;}
.character-create-panel-v28 .appearance-tile{height:142px!important;background:#03070a!important;}
.character-create-panel-v28 .appearance-tile img{
  width:100%!important;height:100%!important;object-fit:cover!important;object-position:center 20%!important;
  filter:none!important;transform:none!important;mix-blend-mode:normal!important;opacity:1!important;
}
.character-create-panel-v28 .appearance-tile.coming-soon{
  display:grid;place-items:center;border-style:dashed;color:#9b8b73;background:linear-gradient(180deg,#0d1215,#050709)!important;
}
.character-create-panel-v28 .appearance-tile.coming-soon span{display:block!important;position:static!important;background:transparent!important;padding:0!important;font-size:13px!important;text-transform:uppercase;letter-spacing:1px;color:#a99573!important;}
.character-create-panel-v28 .char-preview-card{min-height:690px!important;display:flex!important;flex-direction:column!important;}
.character-create-panel-v28 .char-preview-art{height:400px!important;background:#010305!important;display:flex!important;align-items:center!important;justify-content:center!important;}
.character-create-panel-v28 .char-preview-art:before{display:none!important;}
.character-create-panel-v28 .char-preview-art img{
  position:static!important;width:100%!important;height:100%!important;max-width:100%!important;object-fit:contain!important;object-position:center center!important;
  transform:none!important;filter:none!important;mix-blend-mode:normal!important;
}
.character-create-panel-v28 .char-info-card{grid-template-columns:76px 1fr!important;padding:18px 20px 14px!important;}
.character-create-panel-v28 .char-info-card h2{font-size:28px!important;}
.character-create-panel-v28 .char-info-card p{font-size:14px!important;line-height:1.35!important;}
.class-icon-large-img{overflow:hidden!important;padding:6px!important;}
.class-icon-large-img img{width:100%!important;height:100%!important;object-fit:contain!important;filter:drop-shadow(0 0 10px rgba(56,169,255,.35))!important;}
.class-icon-large-img span{font-size:34px!important;}
.character-create-panel-v28 .class-stat-bars{padding:0 20px 18px!important;}
.affinity-summary{margin-top:16px;border-top:1px solid rgba(139,99,49,.55);padding-top:14px;color:#e8d7b8;}
.affinity-summary-head{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:center;margin-bottom:9px;}
.affinity-summary-head>span{width:36px;height:36px;border:1px solid #8f6b35;display:grid;place-items:center;background:#081016;color:#f1d28d;font-size:22px;}
.affinity-summary-head b{font-family:var(--font-title);color:#f1d28d;font-size:18px;text-transform:uppercase;letter-spacing:1px;display:block;}
.affinity-summary-head small{display:block;color:#bfb09a;font-size:12px;line-height:1.3;}
.affinity-bonus-row{font-size:13px;color:#aee09d;margin:5px 0;}
.auth-back-button-v28{position:absolute!important;left:0!important;bottom:-78px!important;margin:0!important;}
.create-character-large-v28{position:absolute!important;right:40px!important;bottom:34px!important;width:360px!important;height:58px!important;font-size:24px!important;}
@media(max-width:1320px){
  .character-create-panel-v28 .char-create-grid{grid-template-columns:1fr!important;}
  .character-create-panel-v28 .char-preview-card{min-height:auto!important;}
  .create-character-large-v28{position:relative!important;right:auto!important;bottom:auto!important;margin-top:18px;width:100%!important;}
  .auth-back-button-v28{position:relative!important;left:auto!important;bottom:auto!important;margin-top:18px!important;}
}


/* ========================= V29 Character Creation + Scroll Fix Pass ========================= */
.auth-screen-clean{
  background:#02070b url('assets/art-v2/scenes/core/scene-onboarding-stonehill-arrival.png') center/cover no-repeat!important;
}
.auth-screen-clean:after{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:1;
  background:radial-gradient(circle at center,rgba(0,0,0,.06),rgba(0,0,0,.62) 78%),linear-gradient(90deg,rgba(0,0,0,.55),rgba(0,0,0,.1),rgba(0,0,0,.55));
  opacity:1!important;
}
.auth-character-step .auth-logo{display:none!important;}
.character-create-panel-v29{
  width:min(1520px,calc(100vw - 36px))!important;
  max-height:calc(100vh - 34px)!important;
  margin-top:0!important;
  padding:32px 42px 28px!important;
  overflow:auto!important;
}
.character-create-panel-v29 h1{font-size:38px!important;margin:0 0 20px!important;}
.character-create-panel-v29 .char-create-grid{grid-template-columns:minmax(880px,1fr) 460px!important;gap:34px!important;align-items:start!important;}
.character-create-panel-v29 .class-tile-row{grid-template-columns:repeat(6,1fr)!important;gap:10px!important;}
.character-create-panel-v29 .class-tile{height:108px!important;}
.character-create-panel-v29 .class-tile img{max-width:52px!important;max-height:52px!important;object-fit:contain!important;}
.character-create-panel-v29 .affinity-tile-row{grid-template-columns:repeat(6,1fr)!important;gap:10px!important;}
.character-create-panel-v29 .affinity-tile{height:70px!important;}
.character-create-panel-v29 .appearance-grid-v29{display:grid!important;grid-template-columns:repeat(6,1fr)!important;gap:10px!important;}
.character-create-panel-v29 .appearance-tile{height:154px!important;background:#03070a!important;}
.character-create-panel-v29 .appearance-tile img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center 18%!important;filter:none!important;transform:none!important;mix-blend-mode:normal!important;opacity:1!important;}
.character-create-panel-v29 .appearance-tile.coming-soon{display:grid!important;place-items:center!important;border-style:dashed!important;color:#9b8b73!important;background:linear-gradient(180deg,#0d1215,#050709)!important;}
.character-create-panel-v29 .appearance-tile.coming-soon span{display:block!important;position:static!important;background:transparent!important;padding:0!important;font-size:13px!important;text-transform:uppercase!important;letter-spacing:1px!important;color:#a99573!important;}
.character-create-panel-v29 .char-preview-card{min-height:720px!important;display:flex!important;flex-direction:column!important;}
.character-create-panel-v29 .char-preview-art{height:405px!important;background:#010305!important;display:flex!important;align-items:center!important;justify-content:center!important;}
.character-create-panel-v29 .char-preview-art:before{display:none!important;}
.character-create-panel-v29 .char-preview-art img{position:static!important;width:100%!important;height:100%!important;max-width:100%!important;object-fit:contain!important;object-position:center center!important;transform:none!important;filter:none!important;mix-blend-mode:normal!important;}
.character-create-panel-v29 .char-info-card{grid-template-columns:76px 1fr!important;padding:16px 20px 12px!important;}
.character-create-panel-v29 .char-info-card h2{font-size:28px!important;}
.character-create-panel-v29 .char-info-card p{font-size:14px!important;line-height:1.34!important;}
.character-create-panel-v29 .class-stat-bars{padding:0 20px 18px!important;}
.character-create-panel-v29 .class-stat-row{margin:8px 0!important;}
.character-create-panel-v29 .affinity-summary{margin-top:12px!important;padding-top:12px!important;}
.auth-footer-actions{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:18px!important;margin-top:22px!important;}
.auth-back-button-v29{position:static!important;width:200px!important;height:48px!important;margin:0!important;}
.create-character-large-v29{position:static!important;width:340px!important;height:56px!important;font-size:22px!important;margin:0!important;}
@media(max-width:1380px){
  .character-create-panel-v29 .char-create-grid{grid-template-columns:1fr!important;}
  .character-create-panel-v29 .char-preview-card{min-height:auto!important;}
  .auth-footer-actions{position:static!important;}
}
@media(max-width:900px){
  .character-create-panel-v29 .class-tile-row,.character-create-panel-v29 .affinity-tile-row,.character-create-panel-v29 .appearance-grid-v29{grid-template-columns:repeat(3,1fr)!important;}
}


/* ========================= V30 Combat Rework ========================= */
.v30-combat-head{align-items:start}
.retreat-btn-v30{min-width:140px}
.v30-combat-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}
.v30-encounter-shell{overflow:hidden;background:linear-gradient(180deg,#081014,#050b0f)}
.v30-encounter-top{display:grid;grid-template-columns:300px 1fr;gap:14px;align-items:center;padding:14px 16px;border-bottom:1px solid #503618;background:linear-gradient(180deg,rgba(14,24,30,.96),rgba(8,16,20,.92))}
.v30-dungeon-meta b{font:28px var(--font-title);color:var(--gold2);display:block;margin-bottom:2px}
.v30-dungeon-meta small{color:#dcc7a0}
.v30-battlefield-wrap{padding:12px 12px 0}
.v30-battlefield{height:360px;border:1px solid #3b2918;border-radius:4px;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,220,160,.06)}
.v30-battlefield>img{filter:brightness(.82) saturate(.95)}
.v30-battlefield:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,8,12,.18),rgba(3,8,12,.12) 40%,rgba(3,8,12,.38));pointer-events:none}
.v30-battle-party .v30-field-ally{width:90px;height:168px;z-index:2}
.v30-field-ally img{object-fit:cover;object-position:center top;border-radius:6px;opacity:.92;border:1px solid rgba(122,85,40,.5)}
.v30-field-enemy{width:130px;height:165px;z-index:3}
.v30-field-enemy img{width:100%;height:100%;object-fit:cover;object-position:center top;border-radius:10px;border:1px solid #7a3025;background:#06090c;box-shadow:0 18px 30px rgba(0,0,0,.55)}
.v30-field-enemy.selected img{border-color:#ff5445;box-shadow:0 0 0 2px rgba(255,74,62,.35),0 0 22px rgba(255,74,62,.5),0 18px 30px rgba(0,0,0,.55)}
.v30-target-help{left:18px;bottom:16px;z-index:5}
.v30-lower-combat{display:grid;grid-template-columns:320px 1fr;gap:12px;padding:12px}
.v30-party-panel,.v30-enemy-panel{background:linear-gradient(180deg,#081116,#060d11);box-shadow:inset 0 0 0 1px rgba(255,220,160,.03)}
.v30-enemy-grid{grid-template-columns:repeat(3,1fr);gap:12px}
.enemy-lock-slot{display:grid;place-items:center;text-align:center;color:#8b7a63;border-style:dashed;background:linear-gradient(180deg,#091015,#070d10)}
.enemy-slot-lock{font-size:48px;line-height:1;color:#6c7885;margin-bottom:10px;opacity:.7}
.v30-action-console{grid-template-columns:240px 1fr 310px;gap:12px;padding:12px 12px 14px;background:linear-gradient(180deg,#071015,#050b10);border-top:1px solid #503618}
.v30-actor-card{border:1px solid #47311a;background:#081116;padding:10px;border-radius:4px;align-items:start}
.v30-actor-card img{width:80px;height:96px;border-radius:4px}
.v30-skills{grid-template-columns:repeat(6,minmax(0,1fr));align-content:start}
.v30-skills .ability{min-height:116px}
.mobile-combat-status{display:none}
.combat-outcome{width:min(460px,calc(100% - 32px));border-radius:18px;padding:20px;background:linear-gradient(180deg,rgba(13,25,29,.98),rgba(4,11,14,.98));backdrop-filter:blur(10px)}
.combat-outcome-kicker{display:block;margin-bottom:5px;color:#d6b46d;font-weight:800;letter-spacing:1.5px;text-transform:uppercase}
.combat-outcome h2{margin-bottom:14px}
.combat-reward-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}
.combat-reward-grid div{display:grid;gap:3px;padding:10px 6px;border:1px solid rgba(205,157,77,.35);border-radius:10px;background:rgba(255,255,255,.035)}
.combat-reward-grid span,.combat-drop-line span{font-size:10px;letter-spacing:.8px;text-transform:uppercase;color:#a89b87}
.combat-reward-grid b{font-size:18px;color:#f2d58f}
.combat-drop-line{display:grid;gap:3px;margin-bottom:14px;padding:10px;border-radius:10px;background:rgba(0,0,0,.24)}
.combat-drop-line b{color:#eee0c4;font-size:12px}
.combat-outcome-action{width:100%;min-height:48px}
.v30-combat-tabs{grid-template-columns:repeat(3,1fr);align-content:start}
.v30-combat-tabs button{min-height:62px;border-radius:4px}
.combat-log-v30{background:linear-gradient(180deg,#091116,#070d10);display:flex;flex-direction:column;gap:0}
.combat-log-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.combat-log-list{display:grid;gap:0;flex:1}
.combat-log-v30 p{padding:10px 0}
.objectives-v30{margin-top:14px;border-color:#3b2918}
@media (max-width: 1360px){
  .v30-combat-layout{grid-template-columns:1fr}
  .v30-encounter-top{grid-template-columns:1fr}
}
@media (max-width: 1120px){
  .v30-lower-combat,.v30-action-console{grid-template-columns:1fr}
  .v30-enemy-grid,.v30-skills{grid-template-columns:repeat(2,1fr)}
}


/* ========================= V31 Character Paperdoll Rebuild ========================= */
.character-layout-v31{grid-template-columns:500px minmax(0,1fr)!important;gap:18px!important;align-items:start}
.character-paperdoll-v31{min-height:760px;padding:16px;position:relative;background:radial-gradient(circle at 50% 38%,rgba(43,76,94,.26),transparent 46%),linear-gradient(180deg,#091318,#050a0d)!important;overflow:hidden}
.character-paperdoll-v31:before{content:'';position:absolute;inset:16px;border:1px solid rgba(166,111,45,.28);pointer-events:none}
.cs-doll-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #3e2a17;padding:0 0 10px;margin-bottom:12px;color:var(--gold2)}
.cs-doll-header b{font-size:20px;color:#f0d18f}
.cs-doll-stage{position:relative;display:grid;grid-template-columns:96px minmax(0,1fr) 96px;gap:12px;min-height:620px;align-items:center}
.cs-slot-column{display:grid;gap:14px;align-content:center;z-index:2}
.cs-equip-slot{height:92px;border:1px solid #6a431d;background:linear-gradient(180deg,#0b151a,#05090c);color:var(--text);display:grid;grid-template-rows:18px 1fr;place-items:center;cursor:pointer;position:relative;box-shadow:inset 0 0 0 1px rgba(244,212,148,.045),0 8px 18px rgba(0,0,0,.25)}
.cs-equip-slot:hover{border-color:var(--gold);filter:brightness(1.08)}
.cs-equip-slot.filled{border-color:#8a6429;background:linear-gradient(180deg,#111d22,#070b0e)}
.cs-slot-label{font:13px var(--font-title);color:var(--gold2);text-transform:uppercase;letter-spacing:.5px;margin-top:5px}
.cs-slot-icon{font-size:32px;display:grid;place-items:center;width:100%;height:100%;color:#84745e}
.cs-slot-img{max-width:64px!important;max-height:60px!important;width:64px!important;height:60px!important;object-fit:contain!important;filter:drop-shadow(0 10px 8px rgba(0,0,0,.55))}
.cs-doll-portrait{height:615px;display:grid;place-items:center;position:relative;overflow:hidden;background:linear-gradient(180deg,rgba(5,10,12,.18),rgba(0,0,0,.36));border-left:1px solid rgba(166,111,45,.18);border-right:1px solid rgba(166,111,45,.18)}
.cs-doll-portrait:after{content:'';position:absolute;left:8%;right:8%;bottom:20px;height:42px;background:radial-gradient(ellipse at center,rgba(0,0,0,.55),transparent 70%);pointer-events:none}
.cs-doll-portrait img{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 30px 20px rgba(0,0,0,.8));position:relative;z-index:1}
.cs-doll-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;border-top:1px solid #3e2a17;padding-top:12px;margin-top:12px}
.cs-doll-actions .btn{position:static!important;transform:none!important;width:100%}
.cs-summary-v31 .btn{margin-top:8px}
.affinity-passive-note{color:#8ed198;margin-top:8px}
.character-grid-v31{min-width:0}
.summary-cards-v31{grid-template-columns:repeat(4,minmax(0,1fr))!important}
@media(max-width:1500px){.character-layout-v31{grid-template-columns:420px 1fr!important}.cs-doll-stage{grid-template-columns:82px 1fr 82px}.cs-equip-slot{height:82px}.character-paperdoll-v31{min-height:700px}.cs-doll-portrait{height:560px}}
@media(max-width:1250px){.character-layout-v31{grid-template-columns:1fr!important}.summary-cards-v31{grid-template-columns:repeat(2,1fr)!important}.character-paperdoll-v31{min-height:auto}.cs-doll-stage{min-height:520px}.cs-doll-portrait{height:520px}}

/* V32 paperdoll and inventory cleanup */
.summary-icon-image{display:grid;place-items:center}
.summary-icon-image img{width:52px;height:52px;object-fit:contain;filter:drop-shadow(0 10px 8px rgba(0,0,0,.45))}
.class-iconbox{display:grid;place-items:center;width:100%;height:100%}
.class-iconbox img{width:40px;height:40px;object-fit:contain;filter:drop-shadow(0 8px 8px rgba(0,0,0,.45))}
.compact-paperdoll-v32{min-height:690px}
.compact-stage-v32{grid-template-columns:82px minmax(180px,220px) 82px;justify-content:center;gap:10px;min-height:540px;align-items:center}
.compact-stage-v32 .cs-slot-column{gap:10px}
.compact-stage-v32 .cs-equip-slot{height:76px;grid-template-rows:16px 1fr}
.compact-stage-v32 .cs-slot-label{font-size:12px;margin-top:3px}
.compact-stage-v32 .cs-slot-icon{font-size:26px}
.compact-stage-v32 .cs-slot-img{width:52px!important;height:48px!important;max-width:52px!important;max-height:48px!important}
.compact-portrait-v32{height:440px;display:grid;place-items:center;background:none;border:none}
.cs-doll-portrait-frame{width:100%;max-width:210px;height:360px;border:1px solid #6a431d;background:radial-gradient(circle at 50% 22%,rgba(36,78,98,.28),transparent 48%),linear-gradient(180deg,#0b151a,#06090c);display:grid;place-items:end center;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(244,212,148,.05),0 18px 26px rgba(0,0,0,.22)}
.cs-doll-portrait-frame img{width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 24px 20px rgba(0,0,0,.82))}
.inventory-layout-v32{grid-template-columns:420px 1fr 310px}
.paperdoll-v32{min-height:650px;padding:16px;background:radial-gradient(circle at 50% 35%,rgba(43,76,94,.22),transparent 44%),linear-gradient(180deg,#091318,#050a0d)!important}
.inventory-stage-v32{min-height:500px}
.inventory-portrait-v32{height:400px}
.inventory-portrait-v32 .cs-doll-portrait-frame{max-width:195px;height:330px}
.inventory-doll-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;border-top:1px solid #3e2a17;padding-top:12px;margin-top:8px}
.inventory-doll-actions .btn{width:100%}
.item-grid-v32{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,112px));gap:10px;justify-content:flex-start}
.item-grid-v32 .item{width:112px;height:112px;aspect-ratio:auto;font-size:26px}
.item-grid-v32 .item .count{font-size:14px;right:6px;bottom:4px}
.item-grid-v32 .item img{width:84%;height:84%;object-fit:contain}
.backpack-panel-v32{min-width:0}
@media(max-width:1500px){
  .inventory-layout-v32{grid-template-columns:400px 1fr 290px}
  .compact-stage-v32{grid-template-columns:76px minmax(170px,210px) 76px}
}
@media(max-width:1250px){
  .inventory-layout-v32{grid-template-columns:1fr}
  .compact-stage-v32{grid-template-columns:70px minmax(160px,220px) 70px}
  .compact-portrait-v32{height:380px}
  .cs-doll-portrait-frame{height:320px}
}

/* V33 combat scenery-only stage */
.scenery-only-v33{position:relative;background:#050b0d}
.scenery-only-v33>img{filter:brightness(.78) saturate(.92) contrast(1.02)}
.v33-scene-caption{position:absolute;left:18px;top:18px;display:grid;gap:2px;z-index:2;padding:10px 14px;border:1px solid rgba(142,104,50,.75);background:linear-gradient(180deg,rgba(7,14,19,.88),rgba(5,10,14,.72));box-shadow:0 14px 22px rgba(0,0,0,.24)}
.v33-scene-caption b{font:22px var(--font-title);color:var(--gold2);letter-spacing:.3px}
.v33-scene-caption small{color:#d5c4a6;font-size:13px}
.scenery-only-v33 .v30-target-help{left:auto;right:18px;bottom:18px;text-align:left}
.combat-target-stage{position:absolute;z-index:3;right:11%;bottom:10px;width:min(255px,34%);height:270px;pointer-events:none;filter:drop-shadow(0 12px 13px rgba(0,0,0,.72));}
.combat-target-stage>img{width:100%;height:100%;object-fit:cover;object-position:center top;border:1px solid rgba(199,148,73,.8);border-radius:8px;background:#090d0d;box-shadow:inset 0 0 28px rgba(0,0,0,.7);}
.combat-target-caption{position:absolute;right:8px;left:8px;bottom:8px;display:flex;justify-content:space-between;gap:8px;align-items:center;padding:7px 9px;border:1px solid rgba(220,173,91,.45);border-radius:5px;background:rgba(5,10,13,.86);color:#f1dec0;font-size:12px;}
.combat-target-caption b{font-family:var(--font-title);font-size:16px;color:var(--gold2);}
.combat-target-stage.defeated{opacity:.28;filter:grayscale(1) drop-shadow(0 12px 13px rgba(0,0,0,.72));}
@media(max-width:700px){.combat-target-stage{right:4%;width:43%;height:205px}.combat-target-caption{display:grid;gap:1px}.combat-target-caption b{font-size:14px}}

/* Shared expeditions use the same visual language as solo combat. */
.shared-expedition{overflow:hidden}.shared-turn-banner{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;margin:12px 0;border:1px solid #5a3b1b;background:#0a1418;color:#d7c6a6}.shared-turn-banner b{color:var(--gold2)}
.shared-ability-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin-top:12px}.shared-ability-grid .ability{min-height:74px;text-align:left}.shared-ability-grid .ability span{font-size:20px;margin-right:5px}
.city-event-list{display:grid;gap:7px;margin:8px 0}.city-event{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:7px;border:1px solid #3f2d19;background:#081115}.city-event>b{color:var(--gold2)}.city-event small{color:#c8b99e}.city-event .btn{padding:5px 8px;font-size:12px}@media(max-width:560px){.city-event{grid-template-columns:auto 1fr auto}.city-event .btn{grid-column:2 / 4}}
.city-contract-tracker{align-items:center}.city-contract-tracker .btn{padding:5px 9px;font-size:12px}
.shared-battle-roster{display:grid;grid-template-columns:1fr 1fr;gap:14px}.shared-battle-roster h3{margin:4px 0 8px;font:19px var(--font-title);color:var(--gold2)}.shared-unit-grid{display:grid;gap:8px}.shared-combat-unit{display:grid;grid-template-columns:64px 1fr;gap:9px;text-align:left!important;padding:0!important;overflow:hidden;border:1px solid #3e2d1b!important;background:#091216!important;color:var(--text)!important}.shared-combat-unit:hover,.shared-combat-unit.selected{border-color:#bb8840!important;background:#111a1b!important;box-shadow:inset 0 0 0 1px rgba(230,184,96,.28)}.shared-combat-unit>img{width:64px;height:64px;object-fit:cover}.shared-combat-unit>span:last-child{display:grid;align-content:center;gap:3px;padding:5px 8px 6px 0}.shared-combat-unit b{color:#f0ddba}.shared-combat-unit small{color:#b8a98f}.shared-combat-unit i{height:4px;background:#ab3d36;display:block;min-width:2px}.shared-combat-unit.ally{grid-template-columns:64px 1fr}.shared-player-mark{display:grid;place-items:center;width:64px;height:64px;background:linear-gradient(135deg,#29414a,#101b20);font:28px var(--font-title);color:var(--gold2)}.shared-combat-unit.defeated{opacity:.45;filter:grayscale(1)}.shared-combat-log{margin:12px 0 0;padding:9px 12px;border-left:3px solid #9b6d2c;background:#071014;color:#cfc1a6}.shared-combat-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.shared-combat-actions .btn{flex:1;min-width:170px}@media(max-width:760px){.shared-turn-banner,.shared-battle-roster{display:grid;grid-template-columns:1fr}}


/* V35 polish */
.auth-clear-button{display:block;margin:14px auto 0;background:transparent;border:1px solid rgba(178,123,42,.45);color:#d7c09a;padding:8px 18px;font:700 13px var(--font-body);cursor:pointer}
.auth-clear-button:hover{border-color:#d39236;color:#ffe1a3;background:rgba(120,72,20,.18)}
button[disabled],.btn[disabled]{opacity:.48;cursor:not-allowed;filter:saturate(.55)}


/* ========================= V37/V37.2 UI Cleanup ========================= */
.nav-btn[data-page="Inventory"]{display:none!important}
.art-needs-head{display:grid}


/* ========================= V37.5 Premium Wardrobe ========================= */
.merchant .merchant-art.merchant-art-premium{background:url('assets/art-v2/scenes/core/scene-premium-merchant-gribble.png') center top/cover no-repeat!important}
.premium-shop-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.appearance-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.appearance-card{border:1px solid #3d2d1b;background:#0d1418;display:flex;flex-direction:column;overflow:hidden}
.appearance-card-art{aspect-ratio:3/4;background:#0a1014}
.appearance-card-art img{width:100%;height:100%;object-fit:cover;display:block}
.appearance-card.appearance-v2 .appearance-card-art{background:radial-gradient(circle at 50% 72%,rgba(211,167,79,.14),transparent 42%),linear-gradient(155deg,#172535,#080d12)}
.appearance-card.appearance-v2 .appearance-card-art img{object-fit:contain;object-position:center bottom}
.appearance-card-body{padding:12px;display:grid;gap:8px}
.appearance-card-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.appearance-card-title-row h3{margin:0;font:18px var(--font-title);color:var(--gold2)}
.gem-pill{background:#1c152d;border-color:#6440b3;color:#d9c3ff}
.wardrobe-layout{display:grid;grid-template-columns:360px 1fr;gap:16px}
.wardrobe-hero{display:grid;gap:16px}
.wardrobe-current-art{aspect-ratio:3/4;border:1px solid #4e3219;background:#0a1014;overflow:hidden}
.wardrobe-current-art img{width:100%;height:100%;object-fit:cover;display:block}
.wardrobe-action-row{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
@media (max-width: 1100px){.wardrobe-layout{grid-template-columns:1fr}.appearance-card-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));}}


/* ========================= V38.3 Cleanup Fixes ========================= */
.sh-hero-art.clean-stronghold-art.theme-greyhollow{background:linear-gradient(90deg,rgba(6,12,15,.12),rgba(3,8,11,.22)),url('assets/art-v2/stronghold/buildings/stronghold-town-hall.png') center/cover no-repeat!important}
.sh-hero-art.clean-stronghold-art.theme-emberwatch{background:linear-gradient(90deg,rgba(6,12,15,.12),rgba(3,8,11,.22)),url('assets/art-v2/stronghold/buildings/stronghold-defensive-wall.png') center/cover no-repeat!important}
.merchant .merchant-art.merchant-art-premium{background:url('assets/art-v2/scenes/core/scene-premium-merchant-gribble.png') center top/cover no-repeat!important}
.progress-row[title]{cursor:help}

.hero-card.theme-greyhollow{background-image:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.82)),url('assets/art-v2/stronghold/buildings/stronghold-town-hall.png')!important;background-size:cover!important;background-position:center!important}
.hero-card.theme-emberwatch{background-image:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.82)),url('assets/art-v2/stronghold/buildings/stronghold-defensive-wall.png')!important;background-size:cover!important;background-position:center!important}


/* ========================= V38.5 UI Stability + Combat Polish ========================= */
button,.btn,.action-tile,.nav-btn,.ability,.enemy-unit,.region-tile,.zone-chip{animation:none!important;transform:none!important;transition:border-color .08s linear, background-color .08s linear, filter .08s linear!important;}
button:hover,.btn:hover,.action-tile:hover,.nav-btn:hover,.ability:hover,.enemy-unit:hover{animation:none!important;transform:none!important;}
.inventory-doll-actions.one-action{grid-template-columns:1fr!important;}
.sh-summary-clean{display:grid;gap:10px;align-content:start;}
.stronghold-level-row{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;margin-bottom:2px;}
.stronghold-level-row b{display:block;color:var(--gold2);font-size:16px;margin-top:2px;}
.stronghold-level-row small{display:block;color:#b9aa8e;}
.journal-layout-clean{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start;}
.journal-list-clean{display:grid;gap:14px;}
.quest-card-clean{display:grid;grid-template-columns:260px 1fr;border:1px solid #513618;background:linear-gradient(180deg,#0b151a,#050b0e);box-shadow:0 8px 18px rgba(0,0,0,.28);overflow:hidden;}
.quest-card-clean.locked{opacity:.58;}
.quest-img-clean{min-height:168px;background:center/cover no-repeat;position:relative;}
.quest-img-clean .pill{position:absolute;left:12px;top:12px;background:rgba(5,10,12,.88);}
.quest-body-clean{padding:14px;display:grid;gap:8px;}
.quest-body-clean h3{font:24px var(--font-title);color:var(--gold2);margin:0;}
.quest-progress-row{display:flex;justify-content:space-between;gap:12px;color:#e1d2b9;}
.quest-reward-line{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px;}
.quest-reward-line span{border:1px solid #4c3219;background:#071116;padding:5px 8px;color:#e8d5ae;}
.journal-side-clean{position:sticky;top:12px;}
.enemy-unit-clean{padding:0!important;overflow:hidden;min-height:188px!important;text-align:left!important;background:#091116!important;}
.enemy-token-img-clean{height:140px!important;position:relative;overflow:hidden;margin:0!important;}
.enemy-token-img-clean img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;}
.enemy-image-overlay{position:absolute;left:0;right:0;bottom:0;min-height:34px;padding:5px 7px;background:linear-gradient(180deg,transparent,rgba(0,0,0,.84) 22%,rgba(0,0,0,.93));display:grid;grid-template-columns:1fr auto;gap:3px 7px;align-items:end;}
.enemy-image-overlay b{font-size:13px;text-align:left!important;color:#fff0c8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.enemy-image-overlay span{font-size:12px;color:#d7c6a6;}
.enemy-mini-health{grid-column:1 / 3;font-size:11px;color:#f0d2c7;}
.enemy-mini-health .bar{height:5px;margin-top:2px;}
.enemy-health-bar{border-color:#4e201b;}
.enemy-intent-row{font-size:12px;padding:6px 8px;text-align:center;border-top:1px solid #3a2616;background:#0b1216;}
.scenery-only-v33 .v33-scene-caption{max-width:420px;}
@media(max-width:1100px){.journal-layout-clean{grid-template-columns:1fr}.quest-card-clean{grid-template-columns:1fr}.journal-side-clean{position:static}.enemy-grid-v25{grid-template-columns:repeat(2,1fr)}}


/* ========================= V38.7 Functional Chat + Quickbar ========================= */
.bottombar button{font:inherit;color:inherit;background:transparent;border:0;cursor:pointer}
.chat-pill{border:1px solid #4d3218!important;background:#0d171b!important;color:var(--gold2)!important;padding:8px 12px;min-width:112px;text-align:left}
.chat-pill.active{background:#1b241e!important;box-shadow:inset 0 0 0 1px var(--gold)}
.footer-ico{position:relative;border:1px solid transparent!important;padding:8px 10px;min-width:42px;text-align:center;color:var(--gold2)!important}
.footer-ico:hover,.chat-pill:hover{border-color:#6f461d!important;background:#151b1f!important}
.footer-ico.has-unread b{position:absolute;right:0;top:0;background:#a33;color:#fff;border-radius:999px;font-size:10px;line-height:1;padding:3px 5px}
.chat-panel,.quick-panel{position:fixed;right:24px;bottom:66px;width:min(520px,calc(100vw - 48px));max-height:62vh;z-index:20;background:linear-gradient(180deg,#0d171b,#070c0f);border:1px solid #5b3918;box-shadow:var(--shadow);display:grid;grid-template-rows:auto 1fr auto}
.chat-panel{grid-template-rows:auto auto minmax(180px,1fr) auto}.chat-tabs{display:flex;gap:6px;padding:8px 10px;border-bottom:1px solid #332414;overflow-x:auto}.chat-tabs .tab{white-space:nowrap;font-size:12px;padding:6px 9px}
.chat-head,.quick-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #332414;color:var(--gold2)}
.mini-close{border:1px solid #593819!important;color:var(--gold2)!important;background:#11191d!important;width:30px;height:30px;font-size:18px;line-height:1}
.chat-log{overflow:auto;padding:12px;display:grid;gap:8px;min-height:180px}.chat-line{display:grid;grid-template-columns:56px 110px 1fr;gap:8px;align-items:start;padding:8px;background:#0a1114;border:1px solid #221914}.chat-line b{color:var(--gold2)}.chat-time{color:var(--muted);font-size:12px}.chat-system span:last-child{color:#b7d7ff}.chat-merchant span:last-child{color:#d7b8ff}.chat-compose{display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px;border-top:1px solid #332414}.chat-compose input{background:#081115;border:1px solid #3f2b17;color:var(--text);padding:10px;font:inherit}.quick-panel{grid-template-rows:auto 1fr;padding-bottom:12px}.quick-panel>.mail-list,.quick-panel>.notice-list,.quick-panel>.settings-list{overflow:auto;padding:12px;display:grid;gap:10px}.mail-card{background:#0a1114;border:1px solid #2e241a;padding:10px}.mail-card.unread{border-color:#7c531f;background:#101713}.notice-list h3{margin:8px 0 2px;color:var(--gold2);font:18px var(--font-title)}.settings-list .btn{width:100%;margin-bottom:8px}
@media(max-width:700px){.chat-panel,.quick-panel{right:10px;left:10px;width:auto}.chat-line{grid-template-columns:48px 1fr}.chat-line span:last-child{grid-column:1/-1}.motd{display:none}}


/* ========================= V38.9 Crafting Professions ========================= */
.craft-pro-layout{display:grid;grid-template-columns:260px 1fr 320px;gap:16px}
.craft-prof-list{display:flex;flex-direction:column;gap:8px}
.profession-button{display:grid;grid-template-columns:44px 1fr;gap:10px;align-items:center;background:#0b1114;border:1px solid #3a2814;color:var(--text);padding:8px;text-align:left;cursor:pointer}
.profession-button.active{border-color:var(--gold2);background:#1a1308}
.profession-button img{width:44px;height:44px;object-fit:cover;border:1px solid #4b341b;background:#06090b}
.profession-button small{display:block;color:var(--muted)}
.craft-main{overflow:hidden}
.craft-station-hero{min-height:210px;background-size:cover;background-position:center;display:flex;align-items:flex-end;border-bottom:1px solid #4b341b}
.craft-station-hero>div{background:linear-gradient(90deg,rgba(4,7,8,.94),rgba(4,7,8,.76));width:auto;max-width:46%;padding:10px 16px;margin:12px;border:1px solid rgba(117,80,37,.55)}
.craft-station-hero h2{font:18px var(--font-title);color:var(--gold2);margin:0 0 4px}
.craft-station-hero p{margin:0;font-size:13px;line-height:1.3;color:#efe6d4}
.craft-tabs{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.recipe-list{display:grid;gap:12px}
.craft-recipe-card{display:grid;grid-template-columns:76px 1fr 110px;gap:12px;align-items:center;border:1px solid #3a2814;background:#0b1114;padding:10px}
.craft-recipe-card.locked{opacity:.62}
.craft-recipe-art{width:76px;height:76px;border:1px solid #4b341b;background:#06090b;display:grid;place-items:center}
.craft-recipe-art img{width:100%;height:100%;object-fit:cover}
.craft-recipe-body h3{margin:0;font:22px var(--font-title)}
.craft-cost-list{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.craft-cost-chip{display:inline-flex;align-items:center;gap:4px;border:1px solid #4b341b;padding:4px 7px;background:#121a1d}
.craft-cost-chip.ok{color:#9be889}.craft-cost-chip.bad{color:#ff9b8c}
.inventory-enchant-badge{position:absolute;right:5px;bottom:5px;z-index:3;padding:2px 5px;border:1px solid #b887e8;border-radius:999px;background:#28133b;color:#e5c4ff;font-size:10px;font-weight:800;box-shadow:0 1px 5px #000}
.material-stock-row{display:grid;grid-template-columns:34px 1fr auto;gap:8px;align-items:center;border-bottom:1px solid #251a10;padding:7px 0}
.material-stock-img{width:34px;height:34px;object-fit:cover;border:1px solid #3a2814}
@media (max-width:1200px){.craft-pro-layout{grid-template-columns:1fr}.craft-recipe-card{grid-template-columns:64px 1fr}.craft-recipe-card .btn{grid-column:1/-1}}

.drop-icon-img{width:28px;height:28px;object-fit:cover;border:1px solid #4b341b;vertical-align:middle;margin-right:4px}

@media (max-width:1200px){.craft-station-hero>div{max-width:70%}}
@media (max-width:800px){.craft-station-hero>div{max-width:calc(100% - 24px)}}


/* ========================= V38.13 Gathering Profession Page ========================= */
.gather-skill-grid{display:grid;grid-template-columns:repeat(5,minmax(180px,1fr));gap:14px}
.gather-skill-card{border:1px solid #4b3017;background:linear-gradient(180deg,#0c171b,#050b0e);color:var(--text);padding:12px;text-align:left;display:grid;grid-template-columns:74px 1fr;gap:12px;align-items:center;min-height:128px;cursor:pointer}
.gather-skill-card:hover,.gather-location-card:hover{border-color:var(--gold);box-shadow:0 0 16px rgba(216,163,65,.18)}
.gather-skill-card img{width:74px;height:74px;object-fit:cover;border:1px solid #67451f;background:#05090c}
.gather-skill-card b{display:block;font:20px var(--font-title);color:var(--gold2)}
.gather-skill-card small,.gather-skill-card em{display:block;color:var(--muted);font-style:normal;margin-top:3px}
.gather-location-grid{display:grid;grid-template-columns:repeat(2,minmax(360px,1fr));gap:14px}
.gather-location-card{display:grid;grid-template-columns:150px 1fr 108px;gap:14px;align-items:center;border:1px solid #4b3017;background:linear-gradient(180deg,#0b151a,#050b0e);padding:12px}
.gather-location-card.locked{opacity:.5}
.gather-location-card img{width:150px;height:108px;object-fit:cover;border:1px solid #67451f;background:#05090c}
.gather-location-card h3{font:24px var(--font-title);color:var(--gold2);margin:0 0 4px}
.gather-location-card p{margin:0 0 7px}
.gathering-harvest-hero{display:grid;grid-template-columns:42% 1fr;min-height:300px;overflow:hidden}
.gathering-harvest-hero img{width:100%;height:100%;object-fit:cover;border-right:1px solid #4b3017}
.gathering-harvest-hero>div{padding:24px;display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(180deg,#0b1519,#050b0e)}
.gathering-harvest-hero h2{font:34px var(--font-title);color:var(--gold2);margin:0 0 8px}
.gather-harvest-layout{display:grid;grid-template-columns:1.2fr .65fr .75fr;gap:14px;margin-top:14px}
@media(max-width:1300px){.gather-skill-grid{grid-template-columns:repeat(2,1fr)}.gather-location-grid,.gather-harvest-layout,.gathering-harvest-hero{grid-template-columns:1fr}.gathering-harvest-hero img{height:260px;border-right:0;border-bottom:1px solid #4b3017}}
@media(max-width:760px){.gather-skill-grid{grid-template-columns:1fr}.gather-location-card{grid-template-columns:1fr}.gather-location-card img{width:100%;height:180px}}

/* V38.14 gathering chance display polish */
.gather-location-card .craft-cost-chip small{color:#9be889;font-weight:700;margin-left:4px}
.material-stock-row b{color:#9be889}


/* V38.14.3 Gathering Skill Navigation */
.gather-card-cta{
  display:inline-block;
  margin-top:8px;
  color:var(--gold2);
  font-size:13px;
  letter-spacing:.2px;
}
.gather-skill-card:hover .gather-card-cta{
  text-decoration:underline;
}


/* V38.14.4 Crafting Page Gathering Profession Links */
.gather-profession-link em{
  display:block;
  margin-top:4px;
  color:var(--gold2);
  font-style:normal;
  font-size:12px;
  opacity:.9;
}
.gather-profession-link:hover em{
  text-decoration:underline;
}


/* V38.14.5 fishing/dungeon art wiring */
.dungeon-thumb{
  width:96px;
  height:62px;
  object-fit:cover;
  border:1px solid var(--gold);
  background:#05090c;
}
.dungeon-card:has(.dungeon-thumb){
  grid-template-columns:104px 1fr 130px;
}
@media(max-width:760px){
  .dungeon-card:has(.dungeon-thumb){grid-template-columns:1fr}
  .dungeon-thumb{width:100%;height:150px}
}

/* ========================= Mobile MMO interface ========================= */
.mobile-navigation{display:none}
@media(max-width:760px){
  html{background:#061015}
  body{font-size:15px;overflow:hidden;overscroll-behavior:none}
  .game{height:100dvh;min-height:100dvh;grid-template-rows:auto 1fr;display:grid;border:0;padding-top:env(safe-area-inset-top);background:linear-gradient(180deg,#09161b,#03080b)}
  .top-navigation,.bottombar{display:none!important}
  .topbar{min-height:64px;padding:8px 12px;display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:8px;border-bottom:1px solid #4b3017}
  .brand{min-width:0!important;gap:9px;overflow:hidden}
  .brand-icon{width:36px;height:36px;font-size:21px;flex:0 0 auto}
  .brand-title{font-size:20px;letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .brand-sub{display:none}
  .world-status{display:none!important}
  .resource-row{margin:0;gap:5px;justify-content:flex-end}
  .resource{display:none!important}
  .resource:nth-of-type(3),.resource:nth-of-type(4){display:flex!important;min-width:0!important;width:42px;height:42px;padding:0;justify-content:center;border-radius:6px}
  .resource:nth-of-type(3) .ico,.resource:nth-of-type(4) .ico{font-size:20px}
  .resource:nth-of-type(3) div,.resource:nth-of-type(4) div,.resource:nth-of-type(3) .plus,.resource:nth-of-type(4) .plus{display:none}
  .profile-menu-wrap{position:static!important}
  .profile-pill{min-width:42px!important;width:42px;height:42px;padding:0;border-radius:6px;justify-content:center}
  .profile-pill .mini-avatar{width:32px;height:32px}
  .profile-pill>div:not(.mini-avatar){display:none!important}
  .profile-menu{position:fixed!important;z-index:60;right:12px!important;left:12px!important;top:76px!important;width:auto!important;max-height:calc(100dvh - 160px);overflow:auto;border-color:var(--gold)!important;box-shadow:0 18px 48px rgba(0,0,0,.68)}
  .profile-menu button{min-height:50px;font-size:16px}
  .main-layout{display:block!important;min-height:0;height:100%}
  .content{height:100%;padding:14px 12px calc(86px + env(safe-area-inset-bottom));overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}
  .mobile-navigation{display:grid;grid-template-columns:repeat(6,1fr);position:fixed;z-index:45;left:0;right:0;bottom:0;height:70px;padding:6px 4px calc(6px + env(safe-area-inset-bottom));background:linear-gradient(180deg,#0b171c,#050b0f);border-top:1px solid #5a3d22;box-shadow:0 -8px 24px rgba(0,0,0,.38)}
  .mobile-nav-btn{min-width:0;border:0;border-radius:7px;background:transparent;color:#cbbda4;display:grid;place-items:center;align-content:center;gap:1px;padding:2px;font:inherit}
  .mobile-nav-btn span{font-size:20px;line-height:1}
  .mobile-nav-btn small{font-size:10px;line-height:1.15;white-space:nowrap}
  .mobile-nav-btn.active{background:linear-gradient(180deg,rgba(159,102,31,.42),rgba(43,28,13,.58));color:#fff0be;box-shadow:inset 0 0 0 1px rgba(230,177,75,.48)}
  .page-head{display:block!important;margin-bottom:12px}
  .page-head>.pill{margin-top:8px;max-width:100%}
  .page-title{font-size:25px;line-height:1.15;margin-bottom:8px}
  .panel.pad{padding:12px}.panel-title{font-size:17px;margin-bottom:9px}
  .btn{min-height:44px;padding:10px 12px;font-size:15px}
  .grid,.two-col,.three-col,.four-col,.command-layout,.character-layout,.map-layout,.region-select-layout,.wardrobe-layout,.journal-layout-clean{grid-template-columns:1fr!important}
  .hero-card,.command-layout-v26 .hero-card{height:260px!important;padding:16px}
  .hero-card h2{font-size:27px}.hero-row{align-items:flex-end}.hero-row .btn{min-width:118px}
  .summary-cards,.summary-cards-v31{grid-template-columns:repeat(2,1fr)!important;gap:9px}.summary-card{min-height:128px}
  .character-art{height:400px}.progress-row{grid-template-columns:40px 1fr auto;gap:8px;padding:8px}.progress-row>div:nth-child(3){grid-column:2/4}.progress-row>div:nth-child(4){display:none}
  .map-stage{aspect-ratio:1/1.05}.map-controls{left:8px;top:8px}.legend{left:5%;right:5%;bottom:6px;height:auto;min-height:34px;gap:10px;font-size:11px;padding:5px}
  .zone-strip{grid-template-columns:1fr!important}.zone-chip{min-height:76px!important}
  .region-banner{min-height:300px!important;padding:16px!important;background-position:center!important}.region-banner h2{font-size:28px!important}
  .region-grid,.dungeon-cards{grid-template-columns:1fr!important}.dungeon-card,.quest-card-clean,.region-tile,.gather-location-card{grid-template-columns:1fr!important}
  .region-tile-art,.gather-location-card img{width:100%!important;height:140px!important}.quest-img-clean{min-height:130px}
  .craft-pro-layout,.crafting-layout,.gather-harvest-layout,.gathering-harvest-hero{grid-template-columns:1fr!important}.craft-station-hero{min-height:180px}.craft-station-hero>div{max-width:calc(100% - 20px)!important;margin:10px}.craft-recipe-card{grid-template-columns:58px 1fr!important}.craft-recipe-art{width:58px;height:58px}.craft-recipe-card .btn{grid-column:1/-1}
  .gather-skill-grid,.gather-location-grid{grid-template-columns:1fr!important}.gather-skill-card{min-height:105px}.gathering-harvest-hero img{height:210px!important}
  .v25-combat-layout,.v30-combat-layout{grid-template-columns:1fr!important;gap:10px}.v30-encounter-top,.encounter-head-v25{grid-template-columns:1fr!important;padding:10px}.v30-dungeon-meta b{font-size:21px}.v30-battlefield,.battlefield-v25{height:245px!important}.v30-battle-party .v30-field-ally{width:56px;height:110px}.v30-field-enemy{width:86px;height:110px}.v30-lower-combat,.lower-combat{grid-template-columns:1fr!important;padding:8px}.enemy-grid-v25{grid-template-columns:repeat(2,1fr)!important;gap:7px}.enemy-unit-clean{min-height:148px!important}.enemy-token-img-clean{height:96px!important}
  .action-console{grid-template-columns:1fr!important;padding:9px;gap:9px}.actor-card-v25{display:none}.skills-v25{grid-template-columns:repeat(3,1fr)!important;gap:7px}.skills-v25 .ability{min-height:58px!important;font-size:12px;padding:6px}.combat-tabs-v25{grid-template-columns:repeat(2,1fr)}.combat-tabs-v25 .end-turn{grid-column:auto}.waiting-banner{position:static!important;margin:0 9px 9px}.shared-battle-roster{grid-template-columns:1fr!important}.shared-combat-actions .btn{min-width:0}
  .chat-panel,.quick-panel{z-index:70!important;left:8px!important;right:8px!important;bottom:80px!important;width:auto!important;max-height:calc(100dvh - 160px)}
  .chat-compose input{min-width:0}.chat-compose .btn{min-width:78px}.chat-line{font-size:13px}
  .modal{width:calc(100vw - 24px)!important;max-height:calc(100dvh - 110px)!important}.modal-backdrop{padding-bottom:72px}
}

/* Header balance pass: status is compact, navigation is horizontal, content uses the full frame. */
@media(min-width:1251px){.brand{min-width:300px}.resource{min-width:122px}.main-layout{grid-template-columns:1fr}}
@media(max-width:1250px){.main-layout{grid-template-columns:1fr}.top-navigation{justify-content:flex-start;padding:7px 14px}.top-nav-group{padding:0 5px}.resource{min-width:112px}.profile-pill{min-width:220px}.content{padding:18px}}

/* Direct-action navigation: visible, tactile buttons without category labels. */
.top-navigation{display:flex;justify-content:center;padding:9px 24px;background:linear-gradient(180deg,#0e1a20,#071015)}.top-nav-actions{display:flex;justify-content:center;gap:9px;flex-wrap:wrap}.top-nav-btn{height:42px;min-width:116px;padding:0 14px;border:1px solid #3e2d18;border-radius:3px;background:linear-gradient(180deg,#132128,#091116);box-shadow:inset 0 0 0 1px rgba(244,212,148,.04),0 4px 10px rgba(0,0,0,.2);font-size:15px;font-weight:600;letter-spacing:.15px}.top-nav-icon{width:20px;text-align:center;font-size:17px;color:var(--gold2)}.top-nav-btn:hover{transform:translateY(-1px);border-color:#b77a22;background:linear-gradient(180deg,#20323a,#0b1519);color:#fff2c9}.top-nav-btn.active{border-color:var(--gold);background:linear-gradient(180deg,#5c3a14,#211609);color:#fff0c2;box-shadow:inset 0 0 18px rgba(255,205,92,.14),0 0 12px rgba(213,162,63,.2)}.top-nav-btn.active .top-nav-icon{color:#fff0a4}
.topbar{display:grid;grid-template-columns:minmax(280px,1fr) auto minmax(280px,1fr);gap:18px}.resource-row{margin-left:0;justify-content:center}.profile-menu-wrap{justify-self:end}.top-navigation{justify-content:stretch}.top-nav-actions{width:100%;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.top-nav-btn{min-width:0;width:100%;justify-content:center}
@media(max-width:1250px){.topbar{display:flex}.resource-row{margin-left:auto;justify-content:flex-end}.top-nav-actions{display:flex;width:auto;flex-wrap:wrap}.top-nav-btn{width:auto;min-width:116px}}

/* Top status bar: larger, right-aligned resource controls. */
@media(min-width:1251px){.topbar{display:flex}.resource-row{margin-left:auto;justify-content:flex-end}.resource{min-width:145px;height:56px;padding:8px 12px;gap:10px}.resource .ico{font-size:25px}.resource .label{font-size:13px}.resource .value{font-size:18px}.plus{width:30px;height:30px;font-size:20px}.profile-pill{min-width:282px;height:56px}.mini-avatar{width:46px;height:46px}}
@media(min-width:1251px) and (max-width:1450px){
  .topbar{padding-inline:16px!important;gap:10px!important}
  .brand{min-width:250px!important}
  .resource-row{min-width:0!important;gap:6px!important}
  .resource{min-width:108px!important;padding-inline:7px!important;gap:6px!important}
  .resource .label{display:none!important}
  .profile-pill{min-width:205px!important;width:205px!important}
}
.world-status{display:flex;align-items:center;gap:6px;margin-left:auto}.world-status-item{max-width:190px;height:48px;display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #2f3e43;background:linear-gradient(180deg,#102027,#091217);color:var(--text);text-align:left}.world-status-item>span:first-child{font-size:19px;color:var(--gold2)}.world-status-item span:last-child{display:grid;gap:1px;min-width:0}.world-status-item small{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.45px}.world-status-item b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:#f1e3c8}.world-status-item:hover{border-color:var(--gold);background:#162830}.world-location{max-width:160px}
@media(max-width:1800px){.world-status{display:none}}
@media(min-width:1251px) and (max-width:1800px){.world-status{display:flex}.world-status-item:nth-child(2),.world-status-item:nth-child(3){display:none}}

/* Cross-page scaling pass: keep pages dense enough to scan and let grids reflow before they crowd. */
.content{width:min(100%,1720px);justify-self:center}
@media(min-width:1251px) and (max-width:1500px){
  .region-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .command-layout{grid-template-columns:repeat(2,minmax(0,1fr))}
  .command-layout .hero-card{grid-column:span 2;height:440px}
  .three-col,.four-col,.summary-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .secondary{grid-template-columns:1fr 1fr}
  .dev-layout{grid-template-columns:repeat(2,minmax(0,1fr))}
  .system-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
  .gather-skill-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .gather-location-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(min-width:901px) and (max-width:1250px){
  .content{width:min(100%,1120px)}
  .four-col,.summary-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .progress-row{grid-template-columns:48px minmax(120px,1fr) minmax(160px,2fr) 40px;gap:10px}
  .system-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* Desktop Character and Inventory refinement: more useful information above the fold, with readable item cards. */
@media(min-width:1251px){
  .character-mobile-layout{grid-template-columns:390px minmax(0,1fr)!important;gap:16px!important}
  .character-gear-pane .compact-paperdoll-v32{min-height:610px!important}
  .character-gear-pane .compact-stage-v32{grid-template-columns:72px minmax(170px,200px) 72px!important;gap:8px!important;min-height:470px!important}
  .character-gear-pane .compact-stage-v32 .cs-slot-column{gap:7px!important}
  .character-gear-pane .compact-stage-v32 .cs-equip-slot{height:68px!important}
  .character-gear-pane .compact-portrait-v32{height:370px!important}
  .character-gear-pane .cs-doll-portrait-frame{height:310px!important;max-width:185px!important}
  .character-gear-pane .cs-doll-actions{margin-top:8px!important;padding-top:9px!important}

  .inventory-layout-v32{grid-template-columns:360px minmax(420px,1fr) 340px!important;gap:14px!important}
  .inventory-layout-v32 .paperdoll-v32{min-height:590px!important}
  .inventory-layout-v32 .inventory-stage-v32{min-height:450px!important}
  .inventory-layout-v32 .inventory-stage-v32 .cs-slot-column{gap:7px!important}
  .inventory-layout-v32 .inventory-stage-v32 .cs-equip-slot{height:68px!important}
  .inventory-layout-v32 .inventory-portrait-v32{height:350px!important}
  .inventory-layout-v32 .inventory-portrait-v32 .cs-doll-portrait-frame{height:290px!important;max-width:175px!important}
  .item-grid-v32{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))!important;gap:9px!important}
  .item-grid-v32 .inventory-item-tile{width:100%!important;height:142px!important}
  .inventory-item-visual{height:82px!important;flex-basis:82px!important}
  .inventory-item-name{display:-webkit-box!important;min-height:28px;overflow:hidden!important;white-space:normal!important;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:12px!important}
  .inventory-detail-pane{align-self:start;position:sticky;top:0}
  .inventory-detail-pane .mini-close{display:none!important}
}
@media(max-width:900px){
  .content{padding:14px}
  .three-col,.four-col,.summary-cards,.secondary,.system-strip{grid-template-columns:1fr}
  .page-head{gap:10px}
  .region-banner{height:220px;padding:24px}
  .region-banner h2{font-size:30px}
  .progress-row{grid-template-columns:42px 1fr;gap:8px}
  .progress-row .bar{grid-column:1/-1}
  .drop-grid{grid-template-columns:repeat(3,1fr)}
  .tabs{justify-content:flex-start;overflow-x:auto}
  .tab{min-width:130px;width:auto}
}

/* Region hub: use the full play space for local area selection and on-site activities. */
.region-hub{display:grid;gap:16px;padding-bottom:8px}
.region-hub-head{margin-bottom:0}
.region-area-picker,.region-activities-panel,.region-dungeon-panel,.region-travel-required{margin-top:0}
.region-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:13px}
.region-section-heading .panel-title{margin-bottom:4px}
.region-section-heading p{margin:0}
.region-area-picker .zone-strip{margin-top:0}
.region-current-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(310px,.55fr);gap:16px}
.region-current-hero{height:340px;min-height:0;padding:30px}
.region-current-hero>div{max-width:min(520px,70%)}
.region-current-hero p{max-width:460px;margin:9px 0 0;color:#e7dbc7;line-height:1.45}
.region-current-details{display:flex;flex-direction:column;min-height:340px}
.region-current-details .kv{padding:10px 0;border-bottom:1px solid #2d2217;font-size:15px}
.region-current-details .kv span:last-child{color:#e9d7b4;text-align:right}
.region-current-action{margin-top:auto;padding-top:16px}
.region-activity-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
.region-activity-grid .activity-card{display:flex;flex-direction:column;min-width:0}
.region-activity-grid .activity-card .btn{margin-top:auto}
.region-activity-grid .city-market-open{grid-column:1/-1}
.region-dungeon-panel .dungeon-cards{margin-top:0}
@media(min-width:1251px) and (max-width:1500px){.region-activity-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1000px){.region-current-layout{grid-template-columns:1fr}.region-current-details{min-height:0}.region-activity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.region-section-heading{display:block}.region-section-heading>.small,.region-section-heading>.pill{display:inline-flex;margin-top:8px}.region-current-hero{height:250px;padding:22px}.region-current-hero>div{max-width:100%}.region-activity-grid{grid-template-columns:1fr}}

/* Single-area capitals are service hubs, not a second map screen. */
.region-area-picker:has(.zone-chip:only-child){display:none}
.region-area-picker:has(.zone-chip:only-child) + .region-current-layout .region-current-hero{height:230px}
.region-area-picker:has(.zone-chip:only-child) + .region-current-layout .region-current-details{min-height:230px}
.region-activity-grid:has(.city-event-list) .activity-card{min-height:166px;padding:14px}
.region-activity-grid:has(.city-event-list) .activity-card .card-img{display:none}
.region-activity-grid:has(.city-event-list) .activity-card .panel-title{font-size:18px;margin-bottom:8px}
.region-activity-grid:has(.city-event-list) .activity-card p{margin:6px 0;font-size:14px;line-height:1.35}
.region-activity-grid:has(.city-event-list) .activity-card .small{font-size:12px}

/* Capital services deserve the full frame: compact cards, not a tall central column. */
@media(min-width:1101px){
  .content:has(.region-hub){width:100%;max-width:none;overflow-x:hidden}
  .region-hub:has([data-action="open-housing-merchant"]){width:100%;max-width:none;margin-left:0}
  .region-hub:has([data-action="open-housing-merchant"]) .region-current-hero{height:210px}
  .region-hub:has([data-action="open-housing-merchant"]) .region-current-details{min-height:210px}
  .region-hub:has([data-action="open-housing-merchant"]) .region-activity-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .region-hub:has([data-action="open-housing-merchant"]) .activity-card{min-height:170px;padding:14px}
  .region-hub:has([data-action="open-housing-merchant"]) .activity-card .card-img{display:none!important}
  .region-hub:has([data-action="open-housing-merchant"]) .activity-card .panel-title{font-size:18px;margin-bottom:8px}
  .region-hub:has([data-action="open-housing-merchant"]) .activity-card p{margin:6px 0;font-size:14px;line-height:1.3}
  .region-hub:has([data-action="open-housing-merchant"]) .activity-card .small{font-size:12px}
}

/* City pages are service directories. Location and frontier context already live in the header. */
.region-breadcrumb{display:none}
.region-hub:has([data-action="open-housing-merchant"]) .region-hub-head .subtle{display:none}
.region-hub:has([data-action="open-housing-merchant"]) .region-hub-head>.pill{display:none}
.region-hub:has([data-action="open-housing-merchant"]) .region-current-layout{display:none}
.region-hub:has([data-action="open-housing-merchant"]) .region-activities-panel{margin-top:0}

.dungeon-hub-card{display:flex;flex-direction:column}
.dungeon-hub-list{display:grid;gap:8px;margin-top:8px}
.dungeon-hub-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:9px;border:1px solid #382615;background:#081115}
.dungeon-hub-row b,.dungeon-hub-row small{display:block}
.dungeon-hub-row small{color:var(--muted);margin-top:2px}
.region-activity-grid .activity-card .btn{position:relative;z-index:2;pointer-events:auto}
.merchant-shop-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr);gap:16px}
.housing-deed-grid,.merchant-listings{display:grid;gap:10px}
.merchant-deed{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:16px;padding:14px;border:1px solid #463018;background:#081216}
.merchant-deed b{font-size:17px}.merchant-deed small{color:var(--muted)}
@media(max-width:1000px){.merchant-shop-layout{grid-template-columns:1fr}.merchant-deed{grid-template-columns:1fr auto}.merchant-deed .btn{grid-column:1/-1;width:100%}}

/* Keep outdoor activity hubs visible together without turning their cards into walls of content. */
.region-hub{gap:12px}
.region-current-hero{height:280px}
.region-current-details{min-height:280px}
.region-activity-grid .activity-card{padding:12px}
.region-activity-grid .activity-card .card-img{height:108px;object-fit:cover}
.region-activity-grid .activity-card p{margin:7px 0;font-size:14px;line-height:1.35}
.region-activity-grid .activity-card .panel-title{margin-bottom:8px}
@media(max-width:680px){.region-current-hero{height:230px}.region-current-details{min-height:0}}

/* World Map: compact region tiles and a stable detail panel on wide screens. */
@media(min-width:1301px){
  .content:has(.region-select-layout){width:100%;max-width:none}
  .region-select-layout{grid-template-columns:minmax(0,1fr) minmax(360px,.42fr);gap:18px;align-items:start}
  .region-tile-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .region-tile{grid-template-columns:128px minmax(0,1fr);gap:12px;padding:10px;position:relative;min-height:132px}
  .region-tile-art{height:110px}
  .region-tile h3{font-size:21px;padding-right:54px}
  .region-tile p{font-size:14px;line-height:1.35}
  .region-tile>span:last-child{position:absolute;right:10px;top:10px;font-size:12px;color:var(--gold2)}
  .region-summary-v27{position:sticky;top:14px}
  .region-summary-art{height:185px}
}

@media(min-width:901px){
  .content:has(.region-select-layout){width:100%;max-width:none}
  .region-select-layout{grid-template-columns:minmax(0,1fr) minmax(300px,.42fr);gap:16px;align-items:start}
  .region-tile-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .region-tile{grid-template-columns:112px minmax(0,1fr);gap:10px;padding:10px;position:relative;min-height:124px}
  .region-tile-art{height:102px}
  .region-tile h3{font-size:19px;padding-right:48px}
  .region-tile p{font-size:13px;line-height:1.3}
  .region-tile>span:last-child{position:absolute;right:10px;top:10px;font-size:11px;color:var(--gold2)}
  .region-summary-v27{position:sticky;top:14px}
}

/* Keep a compact visual identity for the capital without restoring the redundant status column. */
.region-hub:has([data-action="open-housing-merchant"]) .region-current-layout{display:block}
.region-hub:has([data-action="open-housing-merchant"]) .region-current-details{display:none}
.region-hub:has([data-action="open-housing-merchant"]) .region-current-hero{height:165px;padding:20px}
.region-hub:has([data-action="open-housing-merchant"]) .region-current-hero h2{font-size:28px}
.region-hub:has([data-action="open-housing-merchant"]) .region-current-hero p{margin:5px 0 0;font-size:14px}
.region-hub:has([data-action="open-housing-merchant"]) .region-activity-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.region-hub:has([data-action="open-housing-merchant"]) .activity-card{min-height:205px;padding:16px}
.region-hub:has([data-action="open-housing-merchant"]) .activity-card .panel-title{font-size:20px;margin-bottom:10px}
.region-hub:has([data-action="open-housing-merchant"]) .activity-card p{font-size:15px;line-height:1.4}
@media(max-width:1000px){.region-hub:has([data-action="open-housing-merchant"]) .region-activity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.region-hub:has([data-action="open-housing-merchant"]) .region-activity-grid{grid-template-columns:1fr}}

/* Final mobile overrides: kept last so later desktop polish cannot widen phone screens. */
@media(max-width:760px){
  .topbar{grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important}
  .topbar .resource-row{grid-template-columns:none!important;width:auto!important;display:flex!important}
  .profile-menu-grid{display:grid;grid-template-columns:1fr 1fr}
  .profile-menu-head small{display:block;margin-top:3px;color:var(--muted);font:12px var(--font-body)}
  .profile-menu .profile-menu-grid button{min-height:58px;padding:9px;border-bottom:1px solid #1c2a2f!important;font-size:14px;line-height:1.25}
  .profile-menu .profile-menu-grid button:nth-last-child(-n+2){border-bottom:0!important}
  .region-current-layout{grid-template-columns:1fr!important}
  .region-activity-grid,.region-hub:has([data-action="open-housing-merchant"]) .region-activity-grid{grid-template-columns:1fr!important}
  .merchant-deed{grid-template-columns:1fr!important}.merchant-deed .btn{grid-column:auto!important;width:100%}
}

/* ========================= Mobile product-quality pass ========================= */
.mobile-hud{display:none}
@media(max-width:760px){
  :root{
    --mobile-radius:16px;
    --mobile-radius-sm:11px;
    --mobile-surface:rgba(12,24,29,.96);
    --mobile-surface-raised:rgba(18,32,38,.98);
    --mobile-line:rgba(197,145,61,.36);
  }
  *{-webkit-tap-highlight-color:transparent}
  button,.btn,.action-tile,.zone-chip,.region-tile{touch-action:manipulation}
  body{background:#03090c;color:#f5eddf}
  .game{grid-template-rows:auto auto minmax(0,1fr)!important;background:radial-gradient(circle at 50% -10%,#16313a 0,#071319 34%,#03090c 72%)}
  .game,.topbar,.mobile-hud,.main-layout,.content{width:100%!important;min-width:0!important;max-width:100vw!important}
  .game:before{opacity:.28;background-size:28px 28px,100% 100%}

  /* Compact app chrome */
  .topbar{min-height:58px!important;padding:8px 14px!important;background:#071115!important;box-shadow:none!important}
  .brand-icon{width:34px!important;height:34px!important;border-radius:10px;clip-path:none!important;background:linear-gradient(145deg,#263b42,#091116)!important;box-shadow:inset 0 0 0 1px rgba(255,225,161,.08),0 4px 14px rgba(0,0,0,.32);font-size:19px!important}
  .brand-title{font-size:19px!important;font-weight:650;letter-spacing:.2px!important;text-shadow:none!important}
  .topbar .resource{display:none!important}
  .profile-pill{width:40px!important;height:40px!important;border:1px solid rgba(219,171,83,.55)!important;border-radius:13px!important;background:#0c181d!important;box-shadow:0 4px 14px rgba(0,0,0,.3)}
  .profile-pill .mini-avatar{width:34px!important;height:34px!important;border:0!important}
  .profile-chevron{display:none!important}

  .mobile-hud{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:6px;padding:6px 10px 8px;background:linear-gradient(180deg,rgba(5,13,17,.9),rgba(5,13,17,.7));border-bottom:1px solid rgba(197,145,61,.24);z-index:3}
  .mobile-hud button{height:36px;min-width:0;border:1px solid rgba(197,145,61,.25);border-radius:10px;background:rgba(14,27,32,.86);color:#ebdeca;display:flex;align-items:center;justify-content:center;gap:5px;padding:0 7px;box-shadow:inset 0 1px rgba(255,255,255,.025)}
  .mobile-hud button span{font-size:14px}.mobile-hud button small{font-size:11px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mobile-hud .mobile-hud-location{justify-content:flex-start;color:var(--gold2)}

  /* Page canvas and reusable components */
  .content{padding:16px 12px calc(88px + env(safe-area-inset-bottom))!important;scrollbar-width:none}
  .content::-webkit-scrollbar,.tabs::-webkit-scrollbar,.zone-strip::-webkit-scrollbar,.skills-v25::-webkit-scrollbar{display:none}
  .page-head{margin-bottom:15px!important}.page-head .subtle{margin:4px 0 0;font-size:13px;line-height:1.4}
  .page-title{font-size:27px!important;font-weight:720;letter-spacing:-.35px!important;text-transform:none;line-height:1.08!important}
  .panel{border-color:var(--mobile-line)!important;border-radius:var(--mobile-radius)!important;box-shadow:0 10px 26px rgba(0,0,0,.24),inset 0 1px rgba(255,255,255,.025);overflow:hidden}
  .panel:not(.region-banner):not(.hero-card){background:linear-gradient(180deg,var(--mobile-surface-raised),var(--mobile-surface))!important}
  .panel.pad{padding:14px!important}.panel-title{font-size:16px!important;letter-spacing:.55px!important;margin-bottom:10px!important}
  .pill{border-color:rgba(205,153,68,.38)!important;border-radius:999px!important;background:rgba(127,84,28,.18)!important;padding:5px 9px!important;font-size:11px!important}
  .btn{min-height:46px!important;border-radius:12px!important;font-weight:700;border-color:rgba(190,133,46,.65)!important;box-shadow:inset 0 1px rgba(255,255,255,.06),0 5px 14px rgba(0,0,0,.2)}
  .btn.gold{background:linear-gradient(180deg,#bb7d2c,#714216)!important;color:#fff4d2!important}
  .btn.dark{background:linear-gradient(180deg,#17272d,#0a1418)!important}
  input,select,.filter,.auth-text-input{border-radius:11px!important;min-height:46px!important}
  .action-tile{border-color:rgba(184,132,49,.32)!important;border-radius:14px!important;background:linear-gradient(100deg,rgba(126,78,24,.2),rgba(10,21,25,.95))!important;min-height:72px;padding:10px!important}
  .action-tile .iconbox{width:46px;height:46px;border-radius:12px}
  .status-row{margin:10px 0}.bar{height:7px}

  /* Native-feeling tab bar */
  .mobile-navigation{height:74px!important;grid-template-columns:repeat(5,1fr)!important;gap:3px!important;padding:7px 8px calc(7px + env(safe-area-inset-bottom))!important;background:rgba(6,14,18,.94)!important;backdrop-filter:blur(22px);border-top-color:rgba(199,148,62,.28)!important;box-shadow:0 -10px 30px rgba(0,0,0,.42)!important}
  .mobile-nav-btn{border-radius:12px!important;gap:4px!important;color:#a99f90!important}
  .mobile-nav-btn span{font-size:21px!important}.mobile-nav-btn small{font-size:10px!important;font-weight:700;letter-spacing:.15px}
  .mobile-nav-btn.active{background:linear-gradient(180deg,rgba(182,119,36,.28),rgba(93,55,17,.18))!important;color:#ffe5a9!important;box-shadow:inset 0 0 0 1px rgba(225,171,72,.28)!important}
  .mobile-nav-btn.active:after{content:'';position:absolute;bottom:3px;width:18px;height:2px;border-radius:2px;background:#efbd62;box-shadow:0 0 8px rgba(239,189,98,.65)}
  .mobile-nav-btn{position:relative}

  /* Character drawer */
  .profile-menu{top:108px!important;right:8px!important;left:8px!important;max-height:calc(100dvh - 188px)!important;border-radius:20px!important;padding:8px!important;background:linear-gradient(180deg,#111f25,#071013)!important;box-shadow:0 24px 70px rgba(0,0,0,.72)!important}
  .profile-menu-head{padding:11px 12px 13px!important;border-bottom-color:rgba(190,139,56,.28)!important;font-size:18px!important}
  .profile-menu-head small{margin-top:5px!important;font-size:12px!important}
  .profile-menu-grid{gap:5px;padding-top:6px}
  .profile-menu .profile-menu-grid button{border:1px solid transparent!important;border-radius:11px!important;background:rgba(255,255,255,.025)!important;min-height:54px!important;padding:10px 11px!important}
  .profile-menu .profile-menu-grid button:active{border-color:rgba(217,164,73,.42)!important;background:rgba(151,95,28,.18)!important}

  /* World and region browsing */
  .region-select-layout{display:flex!important;flex-direction:column!important;gap:13px!important}
  .region-summary-v27{order:-1;position:static!important}
  .region-summary-art{height:170px!important;border-radius:12px!important;border-color:rgba(206,154,66,.35)!important}
  .region-summary-v27 p{font-size:13px;line-height:1.42}
  .region-tile-list{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
  .region-tile{display:grid!important;grid-template-columns:112px minmax(0,1fr)!important;min-height:112px!important;gap:11px!important;padding:9px!important;border-radius:15px!important;position:relative;text-align:left!important;background:linear-gradient(180deg,rgba(17,31,36,.98),rgba(8,18,22,.98))!important}
  .region-tile-art{height:94px!important;border-radius:10px!important}
  .region-tile h3{font-size:18px!important;margin:1px 0 4px!important;padding-right:43px!important}.region-tile p{font-size:12px!important;line-height:1.32!important;margin:0 0 5px!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.region-tile small{font-size:10px}.region-tile>span:last-child{position:absolute;right:9px;top:9px;font-size:10px;padding:3px 6px;border-radius:99px;background:rgba(68,139,88,.18);color:#98e4aa}
  .region-tile.active{border-color:#cf9740!important;box-shadow:0 0 0 1px rgba(207,151,64,.2),0 10px 24px rgba(0,0,0,.28)!important}
  .region-hub{width:100%!important;min-width:0!important;grid-template-columns:minmax(0,1fr)!important;gap:11px!important}.region-hub>*{min-width:0!important;max-width:100%!important}.region-area-picker{padding:12px!important}
  .region-section-heading{margin-bottom:10px!important}.region-section-heading p{font-size:12px}
  .zone-strip{display:flex!important;width:100%!important;min-width:0!important;max-width:100%!important;gap:9px!important;overflow-x:auto!important;scroll-snap-type:x mandatory;padding:1px 1px 5px}
  .zone-chip{flex:0 0 calc(82vw - 24px)!important;width:calc(82vw - 24px)!important;max-width:320px!important;min-height:88px!important;border-radius:14px!important;scroll-snap-align:start;padding:12px!important}
  .zone-chip b{font-size:17px}.zone-chip small{font-size:11px}
  .region-current-hero{height:220px!important;border-radius:17px!important;padding:18px!important}.region-current-hero h2{font-size:27px!important}.region-current-hero p{font-size:13px!important;line-height:1.4}
  .region-current-details{border-radius:15px!important}.region-current-details .kv{padding:8px 0!important;font-size:13px!important}
  .region-activity-grid{width:100%!important;min-width:0!important;grid-template-columns:minmax(0,1fr)!important}.region-activity-grid>*{width:100%!important;min-width:0!important;max-width:100%!important}
  .activity-card{border-radius:16px!important}.activity-card .card-img{width:100%!important;max-width:100%!important;height:138px!important;border-radius:10px!important}.activity-card p{font-size:13px!important;line-height:1.42!important}
  .dungeon-hub-row{grid-template-columns:minmax(0,1fr) auto!important;border-radius:11px!important;padding:10px!important}

  /* Market tabs and rows must stay inside the phone canvas. */
  .market-page-head{display:block!important}.market-mode-tabs{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important;width:100%!important;margin-top:12px!important}
  .market-mode-tabs .tab{width:100%!important;min-width:0!important;height:44px!important;border-radius:11px!important}
  .market-layout{grid-template-columns:minmax(0,1fr)!important;width:100%!important;min-width:0!important;gap:11px!important}.market-layout>*{min-width:0!important;max-width:100%!important}
  .merchant-art{height:230px!important}.filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:8px!important}.filters>*{width:100%!important;min-width:0!important}.filters>*:nth-child(3){grid-column:1/-1}
  .shop-row{grid-template-columns:52px minmax(0,1fr) auto!important;gap:8px!important;padding:10px!important;align-items:center!important}.shop-row>*{min-width:0!important}.shop-row .shop-icon{grid-row:1/3;width:52px!important;height:52px!important}.shop-row>div:nth-child(2){grid-column:2/4}.shop-row>div:nth-child(3){grid-column:2}.shop-row>select,.shop-row>span{grid-column:3}.shop-row>.btn{grid-column:1/-1;width:100%!important}
  .premium-shop-head{display:grid!important;grid-template-columns:1fr!important}.premium-shop-head .btn{width:100%!important}

  /* Social screens */
  .unit-card,.guild-action,.role-row{border-radius:13px!important;background:rgba(6,16,20,.62)!important;padding:10px!important}
  .unit-face{border-radius:11px!important;overflow:hidden}
  .char-name-row{grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important}.char-name-row .btn{min-width:86px}
  .two-col{gap:11px!important}.kv{gap:12px}.kv span:last-child{text-align:right}
  table{font-size:12px}th,td{padding:8px 5px!important}

  /* Bottom sheets */
  .chat-panel,.quick-panel{left:0!important;right:0!important;bottom:calc(74px + env(safe-area-inset-bottom))!important;max-height:76dvh!important;border:0!important;border-top:1px solid rgba(211,158,68,.45)!important;border-radius:22px 22px 0 0!important;padding-bottom:10px!important;background:linear-gradient(180deg,rgba(17,30,36,.99),rgba(5,13,17,.99))!important;box-shadow:0 -24px 70px rgba(0,0,0,.68)!important}
  .chat-head,.quick-head{padding:14px 16px!important}.chat-tabs{padding:8px 12px!important}.chat-tabs .tab{min-width:auto!important;border-radius:10px!important}
  .chat-log{padding:10px!important}.chat-line{border-radius:11px!important;padding:9px!important}.chat-compose{padding:10px 12px!important}.chat-compose input{border-radius:11px!important}
  .mini-close{width:36px!important;height:36px!important;border-radius:11px!important}

  /* Character creation and sign-in */
  .auth-screen{min-height:100dvh!important;height:auto!important;overflow-y:auto!important;background-position:center!important;place-items:start center!important;padding:0 10px 34px!important}
  .auth-screen-clean .auth-logo{top:18px!important}.auth-logo-main{font-size:38px!important;letter-spacing:5px!important}.auth-logo-sub{font-size:14px!important;letter-spacing:7px!important}
  .account-panel,.character-create-panel-v29{width:calc(100vw - 20px)!important;margin-top:124px!important;padding:24px 16px 28px!important;max-height:none!important;clip-path:none!important;border-radius:22px!important;background:linear-gradient(180deg,rgba(11,21,26,.95),rgba(4,11,15,.98))!important;backdrop-filter:blur(16px)}
  .auth-panel h1,.character-create-panel-v29 h1{font-size:27px!important;letter-spacing:1.6px!important}.auth-divider{margin-bottom:14px!important}
  .auth-field{border-radius:12px!important;overflow:hidden;margin-bottom:10px!important}.auth-field-label{padding-left:12px!important}.auth-field input{font-size:16px!important}
  .auth-gold-button{height:52px!important;border-radius:13px!important;font-size:18px!important}.auth-clear-button{border-radius:10px!important}
  .character-create-panel-v29 .char-create-grid{grid-template-columns:1fr!important;gap:16px!important}.character-create-panel-v29 .class-tile-row{grid-template-columns:repeat(3,1fr)!important;gap:7px!important}.character-create-panel-v29 .affinity-tile-row,.character-create-panel-v29 .appearance-grid-v29{grid-template-columns:repeat(3,1fr)!important;gap:7px!important}
  .character-create-panel-v29 .class-tile{height:96px!important;border-radius:12px!important}.character-create-panel-v29 .affinity-tile{height:66px!important;border-radius:11px!important}.character-create-panel-v29 .appearance-tile{height:128px!important;border-radius:11px!important}
  .character-create-panel-v29 .char-preview-card{min-height:auto!important;border-radius:16px!important;overflow:hidden}.character-create-panel-v29 .char-preview-art{height:330px!important}.character-create-panel-v29 .char-info-card{padding:13px!important}.character-create-panel-v29 .class-stat-bars{padding:0 13px 13px!important}
  .auth-footer-actions{display:grid!important;grid-template-columns:1fr!important;gap:9px!important}.auth-back-button-v29,.create-character-large-v29{width:100%!important;height:50px!important}

  /* Turn-based combat becomes its own focused mobile scene */
  .game-combat{grid-template-rows:minmax(0,1fr)!important;padding-top:env(safe-area-inset-top)}
  .game-combat .topbar,.game-combat .mobile-hud,.game-combat .top-navigation,.game-combat .mobile-navigation,.game-combat .bottombar{display:none!important}
  .game-combat .content{padding:0 0 env(safe-area-inset-bottom)!important;background:#03090c}
  .game-combat .v30-combat-head{min-height:58px;margin:0!important;padding:10px 12px!important;display:flex!important;align-items:center!important;background:#081419;border-bottom:1px solid rgba(194,140,55,.35);position:sticky;top:0;z-index:35}
  .game-combat .v30-combat-head .page-title{font-size:18px!important;margin:0!important}.game-combat .v30-combat-head .subtle{display:none}.retreat-btn-v30{min-width:92px!important;min-height:40px!important;height:40px!important}
  .v30-combat-layout{gap:0!important}.v30-encounter-shell{display:flex!important;flex-direction:column!important;border:0!important;border-radius:0!important}
  .v30-encounter-top{order:1;padding:9px 12px!important}.v30-dungeon-meta b{font-size:18px!important}.turn-queue{overflow-x:auto;min-height:46px}.queue-token{width:40px;height:40px;flex:0 0 auto}
  .v30-battlefield-wrap{order:2;padding:0!important}.v30-battlefield{height:270px!important;border:0!important;border-radius:0!important}.combat-target-stage{transform:scale(.88);transform-origin:center bottom}.v30-target-help{display:none!important}.v33-scene-caption{left:10px!important;right:10px!important;bottom:8px!important}
  .v30-action-console{order:3;position:sticky!important;bottom:0!important;z-index:32!important;padding:10px!important;border:0!important;border-top:1px solid rgba(205,150,59,.42)!important;border-radius:0!important;background:linear-gradient(180deg,rgba(12,24,29,.98),rgba(5,13,17,.99))!important;box-shadow:0 -12px 30px rgba(0,0,0,.48)}
  .mobile-combat-status{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:7px}
  .mobile-turn-state,.mobile-target-status{min-width:0;border:1px solid rgba(125,164,173,.24);border-radius:11px;background:rgba(255,255,255,.035)}
  .mobile-turn-state{display:flex;align-items:center;gap:8px;padding:8px 9px}.mobile-turn-state>div{display:grid;min-width:0}.mobile-turn-state b{font-family:var(--font-title);font-size:15px;color:#f4ddaa}.mobile-turn-state small{font-size:9px;color:#9bb0b4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .turn-state-dot{width:9px;height:9px;flex:0 0 auto;border-radius:50%;background:#54d790;box-shadow:0 0 0 4px rgba(84,215,144,.1),0 0 12px rgba(84,215,144,.7)}
  .mobile-combat-status.waiting .turn-state-dot{background:#f0a64a;box-shadow:0 0 0 4px rgba(240,166,74,.1),0 0 12px rgba(240,166,74,.65)}
  .mobile-combat-status.complete .turn-state-dot{background:#e7c268;box-shadow:0 0 0 4px rgba(231,194,104,.12),0 0 12px rgba(231,194,104,.75)}
  .mobile-target-status{display:grid;grid-template-columns:minmax(0,1fr) 62px;align-items:center;gap:7px;padding:7px 9px;border-color:rgba(207,85,67,.34)}.mobile-target-copy{display:grid;min-width:0}.mobile-target-copy span,.mobile-target-status.cleared span{font-size:8px;letter-spacing:.8px;text-transform:uppercase;color:#bc938b}.mobile-target-copy b,.mobile-target-status.cleared b{font-size:12px;color:#f3dfc3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-target-copy small{font-size:9px;color:#d3a99d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-target-hp{display:grid;gap:3px;text-align:right}.mobile-target-hp>span{font-size:9px;color:#d8c6b0}.mobile-target-hp .bar{height:5px}.mobile-target-status.cleared{display:grid;grid-template-columns:1fr}
  .v30-skills{display:flex!important;overflow-x:auto!important;gap:8px!important;scroll-snap-type:x mandatory;padding-bottom:3px}.v30-skills .ability{flex:0 0 126px!important;min-height:68px!important;border-radius:12px!important;scroll-snap-align:start;text-align:left!important}.v30-skills .ability span{font-size:20px}.v30-skills .ability small{display:block;font-size:9px;line-height:1.2}
  .v30-skills .ability:first-child:nth-last-child(1){flex-basis:100%!important}.v30-skills .ability:first-child:nth-last-child(2),.v30-skills .ability:first-child:nth-last-child(2)~.ability{flex-basis:calc(50% - 4px)!important}
  .v30-combat-tabs{grid-template-columns:repeat(3,1fr)!important;gap:6px!important}.v30-combat-tabs button{min-height:50px!important;border-radius:11px!important;font-size:11px!important}.v30-combat-tabs .end-turn{grid-column:auto!important;background:linear-gradient(180deg,#1765a8,#0c355e)!important}
  .v30-lower-combat{order:4;padding:10px!important;gap:10px!important}.v30-party-panel,.v30-enemy-panel{border-radius:14px!important}.empty-party-slot{display:none}.v30-enemy-grid{grid-template-columns:repeat(2,1fr)!important}
  .combat-log-v30{margin:10px!important;border-radius:15px!important}.combat-log-list{max-height:190px;overflow:auto}.objectives-v30{margin-top:10px!important}
  .game-combat .combat-outcome{position:fixed;top:50%;left:50%;width:calc(100% - 24px);max-height:calc(100dvh - 32px);overflow:auto;padding:15px;border-radius:16px;z-index:80;box-shadow:0 0 0 9999px rgba(0,5,8,.78),0 18px 55px rgba(0,0,0,.8),0 0 24px rgba(213,162,63,.24)}.combat-outcome h2{font-size:28px;margin-bottom:10px}.combat-outcome-kicker{font-size:9px}.combat-reward-grid{gap:6px}.combat-reward-grid div{padding:8px 4px}.combat-reward-grid b{font-size:16px}.combat-drop-line{margin-bottom:10px;padding:8px}.combat-outcome-action{min-height:44px}
}

@media(max-width:370px){
  .mobile-hud{grid-template-columns:minmax(0,1.25fr) repeat(3,minmax(0,1fr));gap:4px;padding-inline:7px}.mobile-hud button{padding-inline:4px}.mobile-hud button small{font-size:10px}
  .brand-title{font-size:17px!important}.region-tile{grid-template-columns:96px minmax(0,1fr)!important}.region-tile-art{height:88px!important}
}

@media(max-width:760px) and (max-height:720px){
  .auth-screen-clean .auth-logo{top:10px!important}.auth-logo-main{font-size:32px!important}.auth-logo-sub{font-size:12px!important}
  .account-panel{margin-top:92px!important;padding-top:20px!important}
  .account-panel .auth-field{height:56px!important;grid-template-columns:132px minmax(0,1fr) 34px!important}
  .account-panel .auth-field-label{height:100%!important;border-right:1px solid #6d4e28!important;border-bottom:0!important;padding:0 9px!important;gap:7px!important;font-size:11px!important}
  .account-panel .auth-field-label i{font-size:16px!important;min-width:18px!important}.account-panel .auth-field input{height:100%!important;padding:0 9px!important;font-size:14px!important;min-width:0!important}
  .account-panel .eye-button{position:static!important;right:auto!important;margin:0!important;width:34px!important;height:100%!important}
  .account-panel .terms-row{margin:12px 0 14px!important;font-size:12px!important;line-height:1.35}.account-panel .terms-row input{flex:0 0 20px}
  .account-panel .auth-bottom-link{margin-top:16px!important;padding-top:13px!important}
}

/* Session-only notices and deliberate touch feedback. */
.tap-locked{pointer-events:none!important;filter:brightness(.92)}
.toast{
  width:max-content;
  max-width:min(430px,calc(100vw - 28px));
  border-radius:14px;
  pointer-events:none;
  white-space:normal;
  line-height:1.35;
  transition:opacity .2s ease,transform .2s ease;
}
.toast.travel-toast{border-color:#d9a348;background:linear-gradient(180deg,#1d291f,#0a1517)}
.toast.toast-out{opacity:0;transform:translateY(10px)}
@media(max-width:760px){
  .toast{
    left:12px!important;
    right:12px!important;
    bottom:calc(86px + env(safe-area-inset-bottom))!important;
    width:auto!important;
    max-width:none!important;
    min-height:46px;
    display:grid;
    place-items:center;
    padding:11px 14px!important;
    border-radius:14px!important;
    text-align:center;
    z-index:95!important;
    box-shadow:0 12px 34px rgba(0,0,0,.5)!important;
  }
}

/* UI-first crafting structure; artwork remains a replaceable accent. */
.craft-prof-group{display:grid;gap:8px}
.craft-prof-group+.craft-prof-group{margin-top:10px;padding-top:12px;border-top:1px solid rgba(166,111,45,.22)}
.craft-section-bar{display:flex;align-items:center;justify-content:space-between;gap:12px}
.craft-section-bar .panel-title{margin:0}
.craft-section-bar>span{display:grid;place-items:center;min-width:28px;height:24px;padding:0 7px;border:1px solid #513819;border-radius:999px;background:#0a1317;color:var(--gold2);font-size:11px}
.craft-section-bar small{display:block;margin-top:3px;color:var(--muted)}
.profession-options{display:grid;gap:8px}
.material-stock-list{display:grid}
.craft-mode-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding-bottom:11px;border-bottom:1px solid rgba(166,111,45,.24)}
.craft-mode-bar b{display:block;color:var(--gold2);font:20px var(--font-title)}
.craft-mode-bar small{display:block;margin-top:3px;color:var(--muted)}

@media(max-width:760px){
  :root{--mobile-art-hero:150px;--mobile-art-banner:116px;--mobile-art-thumb:72px;--mobile-art-icon:52px}

  /* Compact, predictable slots make later mobile-native assets drop-in replacements. */
  .region-summary-art,.region-current-hero,.activity-card .card-img,.merchant-art,.craft-station-hero,.gather-location-card>img,.gathering-harvest-hero>img,.guild-banner,.hero-card{background-color:#0a1519!important;background-size:cover!important;background-position:center!important;overflow:hidden!important}
  .region-summary-art{height:var(--mobile-art-banner)!important}
  .region-summary-v27{padding:12px!important}.region-summary-v27 p{margin:9px 0!important;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  .region-tile{grid-template-columns:82px minmax(0,1fr)!important;min-height:94px!important;padding:8px!important}
  .region-tile-art{width:82px!important;height:76px!important;border-radius:10px!important}
  .region-current-hero{height:var(--mobile-art-hero)!important;min-height:var(--mobile-art-hero)!important;padding:14px!important}
  .region-current-hero h2{font-size:23px!important}.region-current-hero p{margin-bottom:0!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .activity-card .card-img{height:96px!important;margin-bottom:8px!important}
  .merchant-art{height:124px!important}
  .guild-banner{height:170px!important;min-height:170px!important;padding:16px!important}
  .hero-card{height:190px!important;min-height:190px!important}

  /* Crafting becomes a tool screen instead of three long desktop columns. */
  .craft-pro-layout{gap:11px!important}
  .craft-prof-list{display:grid!important;gap:12px!important;padding:12px!important}
  .craft-prof-group+.craft-prof-group{margin-top:0!important}
  .profession-options{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;overflow:visible!important;padding:1px 0 4px}
  .profession-button{width:100%!important;min-width:0!important;min-height:62px!important;grid-template-columns:38px minmax(0,1fr)!important;gap:8px!important;padding:7px!important;border-radius:11px!important}
  .profession-button img{width:38px!important;height:38px!important;border-radius:8px!important}.profession-button b{font-size:12px}.profession-button small{font-size:10px!important;line-height:1.2}.profession-button em{display:none!important}
  .craft-station-hero{min-height:108px!important;height:108px!important}
  .craft-station-hero>div{max-width:calc(100% - 18px)!important;margin:9px!important;padding:8px 11px!important;border-radius:9px!important}.craft-station-hero h2{font-size:17px!important}.craft-station-hero p{font-size:11px!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .craft-main>.pad{padding:12px!important}
  .craft-mode-bar{margin-bottom:10px!important;padding-bottom:9px!important}.craft-mode-bar b{font-size:18px!important}.craft-mode-bar small{font-size:10px!important}
  .craft-recipe-card{grid-template-columns:52px minmax(0,1fr)!important;gap:9px!important;border-radius:12px!important;padding:9px!important}.craft-recipe-art{width:52px!important;height:52px!important;border-radius:9px!important}.craft-recipe-body h3{font-size:18px!important}.craft-recipe-body p{font-size:12px;line-height:1.35}.craft-cost-list{margin:6px 0!important}.craft-cost-chip{font-size:10px!important;padding:3px 5px!important;border-radius:7px!important}.craft-recipe-card>.btn{grid-column:1/-1!important;width:100%!important}
  .craft-materials{padding:12px!important}.material-stock-row{min-height:46px!important;padding:5px 0!important}.material-stock-img{width:32px!important;height:32px!important;border-radius:7px!important}.craft-material-toggle{margin-top:10px!important}

  /* Gathering and markets use thumbnails; information and actions lead the card. */
  .gather-skill-card{grid-template-columns:var(--mobile-art-icon) minmax(0,1fr)!important;min-height:88px!important;gap:10px!important;padding:10px!important;border-radius:13px!important}
  .gather-skill-card img{width:var(--mobile-art-icon)!important;height:var(--mobile-art-icon)!important;border-radius:10px!important}.gather-skill-card b{font-size:17px!important}.gather-skill-card em{display:none!important}
  .gather-location-card{grid-template-columns:78px minmax(0,1fr)!important;gap:10px!important;padding:10px!important;border-radius:13px!important;align-items:start!important}
  .gather-location-card>img{grid-column:1!important;width:78px!important;height:78px!important;border-radius:10px!important}.gather-location-card>div{grid-column:2!important;min-width:0}.gather-location-card h3{font-size:19px!important}.gather-location-card p{font-size:12px!important;line-height:1.35!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.gather-location-card>.btn{grid-column:1/-1!important;width:100%!important}
  .gather-location-card .tiny-icon{width:24px!important;height:24px!important;min-width:24px!important;object-fit:cover!important;border-radius:6px!important}.gather-location-card .craft-cost-list{gap:5px!important;margin:7px 0 0!important}.gather-location-card .craft-cost-chip{width:auto!important;min-height:32px!important}
  .gathering-harvest-hero{min-height:0!important}.gathering-harvest-hero>img{height:126px!important}.gathering-harvest-hero>div{padding:14px!important}.gathering-harvest-hero h2{font-size:24px!important}

  /* Character art stays secondary to equipment and stats. */
  .compact-paperdoll-v32,.paperdoll-v32{height:auto!important;min-height:auto!important}
  .compact-stage-v32,.inventory-stage-v32{grid-template-columns:68px minmax(126px,160px) 68px!important;gap:7px!important;min-height:410px!important}
  .compact-stage-v32 .cs-slot-column,.inventory-stage-v32 .cs-slot-column{gap:7px!important}
  .compact-stage-v32 .cs-equip-slot,.inventory-stage-v32 .cs-equip-slot{height:64px!important}
  .compact-portrait-v32,.inventory-portrait-v32{height:330px!important}
  .cs-doll-portrait-frame,.inventory-portrait-v32 .cs-doll-portrait-frame{max-width:160px!important;height:278px!important;border-radius:12px!important}
}

@media(max-width:360px){
  .profession-options{grid-template-columns:1fr!important}
}

/* Inventory uses a single-pane workflow on phones and the full layout on desktop. */
.inventory-page-head,.inventory-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.inventory-page-head{margin-bottom:14px}.inventory-page-head .page-title,.inventory-section-head .page-title,.inventory-section-head .panel-title{margin:0}
.inventory-section-head small{display:block;margin-top:3px;color:var(--muted)}
.inventory-mobile-tabs{display:none}
.inventory-wallet{display:flex;gap:18px;align-items:center;margin-top:18px}
.inventory-wallet .btn{margin-left:auto}
.inventory-capacity{display:grid;gap:6px;margin:12px 0;padding:10px 11px;border:1px solid rgba(168,113,43,.25);border-radius:11px;background:rgba(0,0,0,.16)}
.inventory-capacity-copy{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--muted)}.inventory-capacity-copy b{color:#e7d4b2}.inventory-capacity .bar{height:6px}
.inventory-filters{display:grid!important;grid-template-columns:1fr 1fr;gap:8px!important}.inventory-filters label{display:grid;gap:4px;min-width:0}.inventory-filters label>span{padding-left:2px;font-size:9px;letter-spacing:.8px;text-transform:uppercase;color:#857a69}.inventory-filters .filter{width:100%;min-width:0}
.item-grid-v32{grid-template-columns:repeat(auto-fill,minmax(122px,122px))}
.item-grid-v32 .inventory-item-tile{width:122px;height:150px;aspect-ratio:auto;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:3px;padding:7px;text-align:left;border-radius:11px;overflow:hidden}
.inventory-item-visual{position:relative;display:grid;place-items:center;width:100%;height:94px;flex:0 0 94px;border-radius:7px;background:rgba(0,0,0,.22);overflow:hidden}.item-grid-v32 .inventory-item-visual img{width:88%!important;height:88%!important;object-fit:contain}
.inventory-item-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#eadbbf;font-family:var(--font-title);font-size:13px!important;line-height:1.15}.inventory-item-tile>small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8f8575;font-size:9px}
.inventory-equipped-badge,.inventory-upgrade-badge{position:absolute;left:4px;top:4px;z-index:2;padding:3px 5px;border:1px solid rgba(227,180,87,.48);border-radius:999px;background:rgba(7,17,21,.9);color:#efd38f;font-size:8px!important;line-height:1.1;font-weight:800}.inventory-upgrade-badge{left:auto;right:4px;border-color:rgba(83,210,137,.5);color:#75e6a5}
.inventory-detail-hero{display:grid;grid-template-columns:118px minmax(0,1fr);gap:12px;align-items:center;margin-top:10px}.inventory-detail-hero .selected-art{height:118px;margin:0;border:1px solid rgba(166,111,45,.24);border-radius:12px;overflow:hidden}.inventory-detail-hero .selected-art-img{max-width:104px;max-height:104px}.inventory-detail-title{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.inventory-detail-title>div{flex:0 0 100%;font-family:var(--font-title);font-size:24px;line-height:1.05}.inventory-detail-title>small{flex:0 0 100%;color:#a59a88}.inventory-detail-title .pill{font-size:9px}
.inventory-comparison{margin:12px 0;padding:11px;border:1px solid rgba(86,181,125,.32);border-radius:12px;background:rgba(35,105,67,.1)}.inventory-comparison.equipped{border-color:rgba(207,157,69,.32);background:rgba(114,72,19,.1)}.inventory-comparison-head{display:flex;justify-content:space-between;gap:8px;align-items:start}.inventory-comparison-head span{font-size:10px;color:#a8aa9d}.inventory-comparison-head b{font-size:11px;color:#d5d9cb;text-align:right}.inventory-comparison-stats{display:grid;gap:5px;margin-top:9px;padding-top:8px;border-top:1px solid rgba(255,255,255,.08)}.inventory-comparison-stats>div{display:grid;grid-template-columns:minmax(0,1fr) 48px 18px 48px;align-items:center;font-size:11px}.inventory-comparison-stats>div b,.inventory-comparison-stats>div strong{text-align:right}.inventory-comparison-stats>div i{text-align:center;color:#776e60}.comparison-labels{color:#746e64;font-size:8px!important;text-transform:uppercase;letter-spacing:.5px}.inventory-equipped-summary{display:flex;justify-content:space-between;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.08);font-size:11px}.inventory-equipped-summary span{color:#988e7d}
.inventory-item-description{margin:10px 0;padding:10px 11px;border-left:2px solid rgba(205,156,70,.45);background:rgba(0,0,0,.12);color:#c4b79f;font-size:12px;font-style:italic;line-height:1.45}.inventory-restriction{padding:9px;border:1px solid rgba(211,93,70,.35);border-radius:9px;background:rgba(116,35,28,.14)}
.inventory-stat-card{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:10px;border:1px solid rgba(152,106,46,.24);border-radius:11px;overflow:hidden;background:rgba(152,106,46,.18)}.inventory-stat-card>div{display:flex;justify-content:space-between;gap:8px;padding:9px;background:#091318;font-size:11px}.inventory-stat-card span{color:#968d7f}.inventory-stat-card b{color:#e7d5b7;text-align:right}
.inventory-advanced-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:12px}.inventory-advanced-actions>small{grid-column:1/-1;color:#817768;font-size:9px;letter-spacing:.8px;text-transform:uppercase}.inventory-advanced-actions .btn{width:100%;min-width:0}
.inventory-action-dock{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid rgba(168,113,43,.26)}.inventory-action-dock.one-action{grid-template-columns:1fr}.inventory-action-dock .btn{width:100%;min-width:0;min-height:48px}.inventory-sell-button:not(:disabled){border-color:rgba(184,97,73,.42);color:#efc0ae}
.inventory-confirm-sheet{width:min(430px,calc(100vw - 28px));text-align:center}.inventory-confirm-icon{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 8px;border:1px solid rgba(222,169,74,.45);border-radius:16px;background:rgba(191,126,37,.12);font-size:25px}.inventory-confirm-sheet>small{color:#b69a68;text-transform:uppercase;letter-spacing:1.1px}.inventory-confirm-sheet h2{margin:5px 0 6px;font:28px var(--font-title);color:var(--gold2)}.inventory-confirm-sheet p{color:#b9ad98}.inventory-confirm-quantity{display:grid;grid-template-columns:1fr auto;gap:7px;padding:10px 12px;border:1px solid rgba(164,111,43,.25);border-radius:10px;text-align:left}.inventory-confirm-quantity b{text-align:right;color:#ecd18f}
.material-deposit-control{display:grid;grid-template-columns:1fr 110px;gap:5px 12px;align-items:center;margin-top:14px;padding:12px;border:1px solid rgba(164,111,43,.28);border-radius:11px;background:rgba(0,0,0,.14);color:#d9c9ad;text-align:left}.material-deposit-control input{width:100%;height:46px;padding:0 12px;border:1px solid #735026;border-radius:9px;background:#071116;color:#f2d699;font-size:20px;font-weight:800;text-align:center}.material-deposit-control small{grid-column:1/-1;color:#928777}.material-deposit-presets{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:9px 0 14px}.material-deposit-presets .btn{min-width:0}.material-deposit-sheet .dungeon-entry-actions{grid-template-columns:1fr 1.25fr}
.inventory-sale-summary{display:flex;justify-content:space-between;align-items:center;margin:0 0 14px;padding:10px 12px;border:1px solid rgba(211,158,67,.28);border-radius:10px;background:rgba(177,111,29,.08);color:#a99d89;text-align:left}.inventory-sale-summary b{color:#f0cf84;font:20px var(--font-title)}.inventory-sale-sheet .dungeon-entry-actions{grid-template-columns:1fr 1.25fr}
@media(max-width:760px){
  .inventory-page-head{margin-bottom:8px}.inventory-page-head .page-title{font-size:25px!important}.inventory-page-head>.pill{font-size:10px!important}
  .inventory-mobile-tabs{position:sticky;top:0;z-index:28;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:0 0 10px;padding:6px;border:1px solid rgba(190,139,56,.3);border-radius:14px;background:rgba(6,15,19,.96);backdrop-filter:blur(18px);box-shadow:0 8px 22px rgba(0,0,0,.28)}
  .inventory-mobile-tabs button{min-width:0;min-height:52px;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;align-items:center;column-gap:6px;padding:6px 8px;border:1px solid transparent;border-radius:10px;background:transparent;color:#a99f90;text-align:left}
  .inventory-mobile-tabs button>span{grid-row:1/3;font-size:20px}.inventory-mobile-tabs button>b{font-size:12px;line-height:1.1}.inventory-mobile-tabs button>small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;color:#80786f}
  .inventory-mobile-tabs button.active{border-color:rgba(222,166,69,.42);background:linear-gradient(180deg,rgba(167,106,31,.28),rgba(82,49,15,.2));color:#ffe5a9}.inventory-mobile-tabs button.active>small{color:#d4bd8e}.inventory-mobile-tabs button:disabled{opacity:.42}
  .inventory-layout-v32{display:block!important;width:100%!important;min-width:0!important}
  .inventory-layout-v32 .inventory-mobile-pane{display:none!important;width:100%!important;min-width:0!important}
  .inventory-layout-v32[data-mobile-view="bag"] .inventory-bag-pane,.inventory-layout-v32[data-mobile-view="gear"] .inventory-gear-pane,.inventory-layout-v32[data-mobile-view="details"] .inventory-detail-pane{display:block!important}
  .inventory-gear-pane,.inventory-bag-pane,.inventory-detail-pane{border-radius:15px!important}
  .inventory-bag-pane,.inventory-detail-pane{padding:12px!important}
  .inventory-section-head{margin-bottom:10px}.inventory-section-head .mini-close{flex:0 0 36px}
  .item-grid-v32{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important;justify-content:stretch!important}
  .item-grid-v32 .inventory-item-tile{width:100%!important;height:132px!important;aspect-ratio:auto!important;padding:6px!important;border-radius:10px!important}.inventory-item-visual{height:82px!important;flex-basis:82px!important}.item-grid-v32 .inventory-item-visual img{width:86%!important;height:86%!important}.inventory-item-name{font-size:11px!important}.inventory-item-tile>small{font-size:8px!important}.inventory-item-tile .count{right:5px!important;bottom:4px!important}
  .inventory-wallet{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px!important;margin-top:12px!important;padding-top:10px;border-top:1px solid rgba(166,111,45,.22);font-size:12px;text-align:center}.inventory-wallet .btn{grid-column:1/-1;width:100%!important;margin:0!important}
  .inventory-capacity{margin:8px 0 10px}.inventory-filters{gap:7px!important}.inventory-filters .filter{height:48px!important;font-size:13px!important}
  .inventory-detail-pane{padding-bottom:108px!important}.inventory-detail-hero{grid-template-columns:100px minmax(0,1fr);gap:10px;margin-top:9px}.inventory-detail-hero .selected-art{height:100px!important;margin:0!important}.inventory-detail-hero .selected-art-img{max-width:90px!important;max-height:90px!important}.inventory-detail-title>div{font-size:20px!important}.inventory-detail-title>small{font-size:10px}.inventory-detail-title .pill{padding:4px 6px!important}
  .inventory-comparison{margin:10px 0;padding:10px}.inventory-comparison-stats>div{grid-template-columns:minmax(0,1fr) 42px 16px 42px}.inventory-item-description{margin:9px 0}.inventory-stat-card>div{padding:8px 7px}.inventory-advanced-actions{margin-bottom:8px}
  .inventory-action-dock{position:fixed;left:50%;bottom:calc(72px + env(safe-area-inset-bottom));z-index:44;width:min(520px,calc(100vw - 18px));transform:translateX(-50%);margin:0;padding:8px;border:1px solid rgba(205,151,61,.42);border-radius:14px;background:rgba(6,15,19,.97);box-shadow:0 -10px 28px rgba(0,0,0,.5);backdrop-filter:blur(16px)}.inventory-action-dock .btn{min-height:50px!important;padding-inline:7px!important;font-size:12px!important}
  .game:has(.inventory-confirm-backdrop) .mobile-navigation{display:none!important}.inventory-confirm-backdrop{z-index:130;padding-bottom:0!important}.inventory-confirm-sheet{width:100%;max-width:none;text-align:left}.inventory-confirm-icon{margin-left:0}.inventory-confirm-sheet h2{font-size:25px}.inventory-confirm-sheet .dungeon-entry-actions{grid-template-columns:1fr 1.2fr}
  .inventory-empty-details{min-height:260px!important;border-radius:12px!important}
}

/* Journal filters surface quest state before the list. */
.journal-filter-tabs{display:flex;gap:8px;margin:0 0 14px}
.journal-filter-tabs button{min-width:118px;min-height:46px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:7px;padding:8px 11px;border:1px solid #3e2b17;border-radius:11px;background:#091318;color:var(--muted);text-align:left}
.journal-filter-tabs button>span{font-size:18px}.journal-filter-tabs button>b{font-size:12px}.journal-filter-tabs button>small{display:grid;place-items:center;min-width:22px;height:22px;border-radius:999px;background:rgba(255,255,255,.05);font-size:10px}
.journal-filter-tabs button.active{border-color:rgba(220,162,65,.62);background:linear-gradient(180deg,rgba(158,100,29,.28),rgba(70,42,14,.18));color:#ffe2a3}
.journal-empty{min-height:320px!important;border-radius:14px!important}
.region-mobile-tabs{display:none}
.region-mobile-pane{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;min-width:0;width:100%;max-width:100%}
@media(max-width:760px){
  .journal-filter-tabs{position:sticky;top:0;z-index:28;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin-bottom:10px;padding:6px;border:1px solid rgba(190,139,56,.3);border-radius:14px;background:rgba(6,15,19,.96);backdrop-filter:blur(18px);box-shadow:0 8px 22px rgba(0,0,0,.28)}
  .journal-filter-tabs button{min-width:0!important;min-height:54px!important;display:grid!important;grid-template-columns:1fr!important;grid-template-rows:auto auto!important;place-items:center!important;gap:2px!important;padding:5px 2px!important;border-color:transparent!important;text-align:center!important}
  .journal-filter-tabs button>span{font-size:17px!important}.journal-filter-tabs button>b{font-size:10px!important}.journal-filter-tabs button>small{position:absolute;margin:0 0 28px 26px;min-width:18px!important;height:18px!important;background:#18252a!important;font-size:9px!important}
  .journal-filter-tabs button.active{border-color:rgba(220,162,65,.45)!important}
  .journal-side-clean{display:none!important}
  .journal-list-clean{gap:9px!important}
  .quest-card-clean{border-radius:14px!important}
  .quest-img-clean{height:78px!important;min-height:78px!important;background-position:center 38%!important}
  .quest-img-clean .pill{left:9px!important;top:9px!important}
  .quest-body-clean{padding:11px!important;gap:7px!important}.quest-body-clean h3{font-size:20px!important}.quest-body-clean p{margin:2px 0!important;font-size:12px!important;line-height:1.4!important}.quest-progress-row{font-size:12px!important}.quest-reward-line span{padding:4px 6px!important;font-size:10px!important;border-radius:7px!important}

  /* Adventure uses focused Area and Activities views on a phone. */
  .region-hub-head .subtle{display:none}
  .region-hub-head>.pill{margin-top:3px}
  .region-mobile-tabs{position:sticky;top:0;z-index:28;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:6px;border:1px solid rgba(190,139,56,.3);border-radius:14px;background:rgba(6,15,19,.96);backdrop-filter:blur(18px);box-shadow:0 8px 22px rgba(0,0,0,.28)}
  .region-mobile-tabs button{min-width:0;min-height:54px;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:8px;padding:7px 10px;border:1px solid transparent;border-radius:10px;background:transparent;color:#a99f90;text-align:left}
  .region-mobile-tabs button>span{grid-row:1/3;font-size:20px}.region-mobile-tabs button>b{font-size:12px}.region-mobile-tabs button>small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;color:#80786f}
  .region-mobile-tabs button.active{border-color:rgba(222,166,69,.42);background:linear-gradient(180deg,rgba(167,106,31,.28),rgba(82,49,15,.2));color:#ffe5a9}.region-mobile-tabs button.active>small{color:#d4bd8e}
  .region-hub .region-mobile-pane{display:none!important}
  .region-hub[data-mobile-view="area"] .region-mobile-overview{display:grid!important;gap:10px!important}
  .region-hub[data-mobile-view="play"] .region-mobile-play{display:block!important}
  .region-activities-panel{padding:12px!important}
  .region-activities-panel .region-section-heading{display:flex!important;align-items:flex-start!important;gap:8px!important}.region-activities-panel .region-section-heading>.pill{flex:0 0 auto;margin-top:0!important}
  .region-mobile-play .activity-card{min-height:0!important;padding:12px!important}
  .region-mobile-play .activity-card .card-img{display:none!important}
  .region-mobile-play .activity-card .panel-title{margin-bottom:6px!important;font-size:19px!important}
  .region-mobile-play .activity-card p{margin:5px 0!important;font-size:12px!important;line-height:1.38!important}
  .region-mobile-play .activity-card .small{font-size:10px!important}
  .region-mobile-play .activity-card .btn{min-height:44px!important;margin-top:9px!important}
  .region-travel-required{padding:14px!important;border-radius:14px!important}
}

/* Multiplayer navigation keeps roster, invitations, and dungeon checks distinct. */
.party-mobile-tabs{display:none}
.party-mobile-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.party-mobile-pane{min-width:0}.party-dungeons-pane{grid-column:1/-1}
.party-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.party-section-head .panel-title{margin:0}.party-section-head small{display:block;margin-top:4px;color:var(--muted)}
.party-ready-dot{width:11px;height:11px;margin-top:7px;border-radius:999px;background:#6c6256;box-shadow:0 0 0 4px rgba(108,98,86,.12)}.party-ready-dot.ready{background:#51c978;box-shadow:0 0 0 4px rgba(81,201,120,.14),0 0 12px rgba(81,201,120,.34)}
.party-ready-actions{display:flex;gap:10px;margin-top:12px}
.party-roster-card{position:relative;display:grid;grid-template-columns:62px minmax(0,1fr) auto;gap:11px;align-items:center}.party-member-copy>div{display:flex;align-items:center;gap:7px}.party-member-copy small{color:var(--muted)}
.party-you-label{padding:2px 5px;border-radius:999px;background:rgba(255,255,255,.06);font-size:9px;color:#bcb3a5}.party-member-state{padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.04);color:#999087;font-size:10px;white-space:nowrap}.party-member-state.ready{background:rgba(68,163,94,.14);color:#8ee3a5}.party-leader-mark{position:absolute;right:9px;top:7px;color:var(--gold2);font-size:12px}
.party-pending-title{margin-top:20px;font-size:20px}.party-empty-invites{min-height:210px;border-radius:13px}
.party-dungeon-list{display:grid;gap:8px;margin-top:12px}.party-dungeon-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto auto;gap:11px;align-items:center;min-height:64px;padding:9px 11px;border:1px solid #332516;border-radius:12px;background:#081216}.party-dungeon-row b,.party-dungeon-row small{display:block}.party-dungeon-row small{margin-top:3px;color:var(--muted)}.party-dungeon-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#101b20;font-size:20px}.party-dungeon-status{font-size:11px;text-align:right;color:#a89e90}.party-dungeon-action{min-width:54px;min-height:34px;padding:5px 9px;border:1px solid rgba(211,157,65,.45);border-radius:9px;background:rgba(140,87,27,.18);color:#f3cf85;font-weight:700}.party-dungeon-row.ready{border-color:rgba(70,159,94,.32)}.party-dungeon-row.ready .party-dungeon-status{color:#8ee3a5}.party-dungeon-row.warning{border-color:rgba(211,157,65,.35)}.party-dungeon-row.warning .party-dungeon-status{color:#efc56e}.party-dungeon-row.locked{opacity:.58}
.mobile-nav-badge,.chat-unread-badge{display:grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#c9473d;color:white;font:700 9px Arial;box-shadow:0 2px 8px rgba(0,0,0,.45)}
.mobile-nav-badge{position:absolute;top:4px;right:10px}.chat-tabs .tab{position:relative}.chat-unread-badge{position:absolute;top:2px;right:2px;transform:translate(48%,-42%)}

@media(max-width:760px){
  .party-mobile-tabs{position:sticky;top:0;z-index:28;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-bottom:10px;padding:6px;border:1px solid rgba(190,139,56,.3);border-radius:14px;background:rgba(6,15,19,.96);backdrop-filter:blur(18px);box-shadow:0 8px 22px rgba(0,0,0,.28)}
  .party-mobile-tabs button{min-width:0;min-height:54px;display:grid;grid-template-columns:1fr;grid-template-rows:auto auto auto;place-items:center;gap:1px;padding:5px 3px;border:1px solid transparent;border-radius:10px;background:transparent;color:#a99f90;text-align:center}.party-mobile-tabs button>span{font-size:18px}.party-mobile-tabs button>b{font-size:10px}.party-mobile-tabs button>small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;color:#80786f}.party-mobile-tabs button.active{border-color:rgba(222,166,69,.42);background:linear-gradient(180deg,rgba(167,106,31,.28),rgba(82,49,15,.2));color:#ffe5a9}.party-mobile-tabs button.active>small{color:#d4bd8e}
  .party-mobile-layout{display:block!important;width:100%!important;min-width:0!important}.party-mobile-layout .party-mobile-pane{display:none!important;width:100%!important;min-width:0!important}.party-mobile-layout[data-mobile-view="roster"] .party-roster-pane,.party-mobile-layout[data-mobile-view="invites"] .party-invites-pane,.party-mobile-layout[data-mobile-view="dungeons"] .party-dungeons-pane{display:block!important}
  .party-mobile-pane>.panel{padding:12px!important;border-radius:15px!important}.party-ready-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.party-ready-actions .btn{width:100%;min-width:0}
  .party-roster-card{grid-template-columns:52px minmax(0,1fr) auto!important;min-height:72px!important;padding:9px!important}.party-roster-card .unit-face{width:52px!important;height:52px!important}.party-member-copy b{font-size:14px}.party-member-copy small{font-size:10px}.party-member-state{align-self:end;margin-bottom:3px;padding:4px 6px;font-size:9px}.party-leader-mark{right:8px;top:5px}
  .party-invite-form{grid-template-columns:minmax(0,1fr) 88px!important;gap:7px!important}.party-invite-form input{min-width:0!important;font-size:16px!important}.party-invite-form .btn{min-width:0!important;padding-inline:8px!important}.party-empty-invites{min-height:230px!important}
  .party-dungeons-pane .party-section-head>.pill{flex:0 0 auto}.party-dungeon-list{gap:7px}.party-dungeon-row{grid-template-columns:38px minmax(0,1fr) auto!important;gap:8px!important;min-height:68px!important;padding:9px!important}.party-dungeon-icon{grid-row:1/3;width:36px;height:36px}.party-dungeon-row small{font-size:10px;line-height:1.3}.party-dungeon-status{grid-column:2;text-align:left;font-size:10px}.party-dungeon-action{grid-column:3;grid-row:1/3;min-width:50px;align-self:center}
  .chat-panel{overscroll-behavior:contain}.chat-log{overscroll-behavior:contain;align-content:start}.chat-line{align-self:start}.chat-compose{padding-bottom:max(10px,env(safe-area-inset-bottom))!important}.chat-compose input{font-size:16px!important}
  .chat-panel:has(#chatInput:focus){bottom:0!important;height:100dvh!important;max-height:100dvh!important;border-radius:0!important;padding-bottom:0!important}.chat-panel:has(#chatInput:focus) .chat-log{min-height:0!important}.game:has(.chat-panel #chatInput:focus) .mobile-navigation{display:none!important}
}

/* Dungeon entry is a deliberate readiness check before resources are spent. */
.dungeon-entry-backdrop{position:fixed;inset:0;z-index:110;display:grid;place-items:center;padding:18px;background:rgba(0,0,0,.76);backdrop-filter:blur(8px)}
.dungeon-entry-sheet{width:min(620px,calc(100vw - 36px));max-height:calc(100dvh - 36px);overflow:auto;padding:18px;border-color:rgba(214,158,62,.52);border-radius:20px;background:linear-gradient(180deg,#102027,#071115);box-shadow:0 28px 90px rgba(0,0,0,.78)}
.dungeon-entry-head{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:12px;align-items:center;padding-bottom:13px;border-bottom:1px solid rgba(182,124,48,.27)}.dungeon-entry-head small{color:var(--muted)}.dungeon-entry-head h2{margin:1px 0 2px;color:var(--gold2);font:26px var(--font-title)}.dungeon-entry-head p{margin:0;color:#a9a093;font-size:12px}.dungeon-entry-mark{display:grid;place-items:center;width:54px;height:54px;border:1px solid #62451f;border-radius:14px;background:#081216;font-size:27px}
.dungeon-entry-desc{margin:13px 0;color:#d8cbb5;line-height:1.45}.dungeon-entry-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.dungeon-entry-check{display:grid;grid-template-columns:32px minmax(0,1fr) 20px;gap:7px;align-items:center;min-height:58px;padding:8px;border:1px solid #2f281f;border-radius:11px;background:#081216}.dungeon-entry-check>span:first-child{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#111e23}.dungeon-entry-check small,.dungeon-entry-check b{display:block}.dungeon-entry-check small{color:#8f877d;font-size:9px}.dungeon-entry-check b{margin-top:2px;font-size:11px}.dungeon-entry-check i{display:grid;place-items:center;width:19px;height:19px;border-radius:99px;background:rgba(70,159,94,.15);color:#8ee3a5;font-style:normal;font-size:10px}.dungeon-entry-check.warning{border-color:rgba(211,157,65,.4)}.dungeon-entry-check.warning i{background:rgba(211,157,65,.16);color:#efc56e}.dungeon-entry-check.blocked{border-color:rgba(194,72,64,.38)}.dungeon-entry-check.blocked i{background:rgba(194,72,64,.15);color:#ec8d86}
.dungeon-entry-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;padding:11px;border:1px solid #302317;border-radius:12px;background:rgba(5,13,17,.55)}.dungeon-entry-meta small{display:block;margin-bottom:5px;color:#8f877d}.dungeon-entry-meta b{font-size:11px}.dungeon-role-chips{display:flex;flex-wrap:wrap;gap:5px}.dungeon-role-chips span{padding:4px 7px;border:1px solid #45321d;border-radius:999px;background:#0c171b;color:#d8c39b;font-size:9px}
.dungeon-entry-warning{display:grid;gap:3px;margin-top:10px;padding:10px 11px;border:1px solid rgba(211,157,65,.4);border-radius:11px;background:rgba(111,70,21,.14)}.dungeon-entry-warning b{color:#efc56e;font-size:12px}.dungeon-entry-warning span{color:#baa98c;font-size:11px;line-height:1.4}.dungeon-entry-actions{display:grid;grid-template-columns:120px minmax(0,1fr);gap:9px;margin-top:13px}.dungeon-entry-actions .btn{width:100%;min-height:46px}

@media(max-width:760px){
  .dungeon-entry-backdrop{place-items:end center;padding:0}
  .dungeon-entry-sheet{width:100%;max-width:none;max-height:calc(100dvh - 18px);padding:14px 12px max(14px,env(safe-area-inset-bottom));border-width:1px 0 0;border-radius:22px 22px 0 0}
  .dungeon-entry-head{grid-template-columns:46px minmax(0,1fr) 36px;gap:9px;padding-bottom:10px}.dungeon-entry-mark{width:46px;height:46px;border-radius:12px;font-size:23px}.dungeon-entry-head h2{font-size:21px}.dungeon-entry-head p{font-size:10px}.dungeon-entry-desc{margin:10px 0;font-size:12px;line-height:1.4}
  .dungeon-entry-checks{gap:6px}.dungeon-entry-check{grid-template-columns:28px minmax(0,1fr) 18px;gap:5px;min-height:55px;padding:7px 6px}.dungeon-entry-check>span:first-child{width:27px;height:27px;font-size:13px}.dungeon-entry-check small{font-size:8px}.dungeon-entry-check b{font-size:10px;line-height:1.25}.dungeon-entry-check i{width:17px;height:17px}
  .dungeon-entry-meta{gap:8px;margin-top:8px;padding:9px}.dungeon-entry-meta small{font-size:9px}.dungeon-entry-warning{margin-top:8px;padding:8px 9px}.dungeon-entry-actions{grid-template-columns:92px minmax(0,1fr);gap:7px;margin-top:10px}.dungeon-entry-actions .btn{min-width:0;padding-inline:8px;font-size:12px}
}

/* Character decisions use focused mobile panes without changing the desktop sheet. */
.character-page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.character-page-head .page-title{margin:0}
.character-mobile-tabs,.talent-mobile-tabs{display:none}
.character-mobile-layout{display:grid;grid-template-columns:500px minmax(0,1fr);gap:18px;align-items:start}.character-mobile-pane{min-width:0}.character-gear-pane{grid-row:1/span 2}.character-overview-pane,.character-stats-pane{display:grid;gap:16px}
.talent-reset-panel{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:16px}.talent-reset-panel .panel-title{margin-bottom:4px}.talent-reset-panel p{margin:0;color:var(--muted)}
@media(max-width:1500px) and (min-width:1251px){.character-mobile-layout{grid-template-columns:420px minmax(0,1fr)}}
@media(max-width:1250px) and (min-width:761px){.character-mobile-layout{grid-template-columns:1fr}.character-gear-pane{grid-row:auto}.character-overview-pane,.character-stats-pane{display:grid}}

@media(max-width:760px){
  .character-page-head{margin-bottom:8px}.character-page-head .page-title{font-size:25px!important}.character-page-head>.pill{font-size:10px!important}
  .character-mobile-tabs{position:sticky;top:0;z-index:28;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-bottom:10px;padding:6px;border:1px solid rgba(190,139,56,.3);border-radius:14px;background:rgba(6,15,19,.96);backdrop-filter:blur(18px);box-shadow:0 8px 22px rgba(0,0,0,.28)}
  .character-mobile-tabs button{min-width:0;min-height:54px;display:grid;grid-template-columns:1fr;grid-template-rows:auto auto auto;place-items:center;gap:1px;padding:5px 3px;border:1px solid transparent;border-radius:10px;background:transparent;color:#a99f90;text-align:center}.character-mobile-tabs button>span{font-size:18px}.character-mobile-tabs button>b{font-size:10px}.character-mobile-tabs button>small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;color:#80786f}.character-mobile-tabs button.active{border-color:rgba(222,166,69,.42);background:linear-gradient(180deg,rgba(167,106,31,.28),rgba(82,49,15,.2));color:#ffe5a9}.character-mobile-tabs button.active>small{color:#d4bd8e}
  .character-mobile-layout{display:block!important;width:100%!important;min-width:0!important}.character-mobile-layout .character-mobile-pane{display:none!important;width:100%!important;min-width:0!important}.character-mobile-layout[data-mobile-view="overview"] .character-overview-pane,.character-mobile-layout[data-mobile-view="gear"] .character-gear-pane,.character-mobile-layout[data-mobile-view="stats"] .character-stats-pane{display:grid!important;gap:10px!important}
  .character-overview-pane .summary-cards-v31{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}.character-overview-pane .summary-card{min-height:150px!important;padding:10px!important;border-radius:13px!important}.character-overview-pane .summary-card .panel-title{font-size:16px!important}.character-overview-pane .summary-icon{font-size:29px!important;margin:3px!important}.character-overview-pane .summary-icon-image img{width:40px!important;height:40px!important}.character-overview-pane .summary-card p{margin:4px 0!important;font-size:10px!important;line-height:1.3}.character-overview-pane .affinity-passive-note{display:none}.character-overview-pane .level-diamond{width:48px;height:48px;margin:5px auto 13px}.character-overview-pane .level-diamond span{font-size:22px}
  .character-overview-pane>.panel,.character-stats-pane>.panel{padding:12px!important;border-radius:15px!important}.character-overview-pane .progress-row{grid-template-columns:40px minmax(0,1fr) 36px!important;gap:7px!important;padding:8px!important;border-radius:10px!important}.character-overview-pane .progress-row .bar{grid-column:1/-1}.character-overview-pane .progress-row b,.character-overview-pane .progress-row small{font-size:10px!important}
  .character-gear-pane .character-paperdoll-v31{border-radius:15px!important;padding:12px!important}.character-gear-pane .compact-stage-v32{grid-template-columns:62px minmax(118px,150px) 62px!important;gap:6px!important;min-height:360px!important}.character-gear-pane .compact-stage-v32 .cs-equip-slot{height:56px!important}.character-gear-pane .compact-stage-v32 .cs-slot-column{gap:6px!important}.character-gear-pane .compact-portrait-v32{height:292px!important}.character-gear-pane .cs-slot-label{font-size:9px!important}.character-gear-pane .cs-slot-img{width:42px!important;height:40px!important}.character-gear-pane .cs-doll-actions{margin-top:8px!important;padding-top:9px!important}
  .character-core-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}.character-core-stats .attribute-card{min-height:172px;padding:10px!important;border-radius:12px!important}.character-core-stats .attribute-card>div:first-child{font-size:25px!important}.character-core-stats .attribute-card .panel-title{font-size:16px!important}.character-core-stats .attribute-card .big{font-size:25px!important}.character-core-stats .attribute-card .small{min-height:30px;font-size:10px!important}.character-core-stats .attribute-card .kv{font-size:10px!important}
  .character-secondary-stats{display:grid!important;grid-template-columns:1fr!important;gap:7px!important}.character-secondary-stats>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 12px;padding:10px;border:1px solid #2e251c;border-radius:11px;background:#081216;line-height:1.55}.character-secondary-stats>div b{text-align:right;color:#e8d4aa}

  .talent-page-head .subtle{display:none}.talent-mobile-tabs{position:sticky;top:0;z-index:28;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-bottom:10px;padding:6px;border:1px solid rgba(190,139,56,.3);border-radius:14px;background:rgba(6,15,19,.96);backdrop-filter:blur(18px);box-shadow:0 8px 22px rgba(0,0,0,.28)}
  .talent-mobile-tabs button{min-width:0;min-height:54px;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:7px;padding:7px 9px;border:1px solid transparent;border-radius:10px;background:transparent;color:#a99f90;text-align:left}.talent-mobile-tabs button>span{grid-row:1/3;font-size:19px}.talent-mobile-tabs button>b{font-size:11px}.talent-mobile-tabs button>small{font-size:9px;color:#80786f}.talent-mobile-tabs button.active{border-color:rgba(222,166,69,.42);background:linear-gradient(180deg,rgba(167,106,31,.28),rgba(82,49,15,.2));color:#ffe5a9}.talent-mobile-tabs button.active>small{color:#d4bd8e}
  .talent-paths{display:block!important;width:100%!important;min-width:0!important}.talent-paths .talent-mobile-pane{display:none!important}.talent-paths .talent-mobile-pane.active{display:block!important}.talent-mobile-pane>.panel{padding:12px!important;border-radius:15px!important}.talent-mobile-pane .action-tile{min-height:66px!important;padding:8px!important;border-radius:12px!important}.talent-mobile-pane .action-tile .iconbox{width:44px!important;height:44px!important}.talent-mobile-pane .action-tile b{font-size:13px}.talent-mobile-pane .action-tile small{font-size:10px}.talent-mobile-pane .action-tile:disabled{opacity:.62}
  .talent-reset-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-top:10px;padding:12px!important;border-radius:15px!important}.talent-reset-panel .panel-title{font-size:17px!important}.talent-reset-panel p{font-size:10px;line-height:1.35}.talent-reset-panel .btn{min-width:96px;padding-inline:8px}
}

/* Shared regional presence: a compact, touch-first multiplayer movement surface. */
.shared-world-panel{margin-top:16px;overflow:hidden;border-color:rgba(92,190,159,.28);background:linear-gradient(180deg,rgba(10,27,31,.98),rgba(5,15,19,.98));box-shadow:0 18px 42px rgba(0,0,0,.28)}
.region-activities-panel{display:none!important}
.shared-world-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:16px 18px;border-bottom:1px solid rgba(132,183,165,.16)}.shared-world-head>div{min-width:0}.shared-world-head small{display:block;color:#65c9a2;font-size:9px;font-weight:800;letter-spacing:1.6px}.shared-world-head h2{margin:3px 0 4px;color:#edddbc;font:26px/1.05 var(--font-title)}.shared-world-head p{max-width:620px;margin:0;color:#9fa99f;font-size:12px;line-height:1.4}
.world-service-dock{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(126px,1fr);gap:7px;overflow-x:auto;padding:9px 12px;border-bottom:1px solid rgba(132,183,165,.16);background:linear-gradient(180deg,rgba(10,26,29,.96),rgba(5,17,21,.92));overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scrollbar-width:thin}.world-service-button{scroll-snap-align:start;display:grid;grid-template-columns:36px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;min-width:0;min-height:52px;padding:7px 9px;border:1px solid rgba(142,174,160,.18);border-radius:11px;background:linear-gradient(180deg,rgba(25,48,50,.82),rgba(10,27,31,.9));color:#d8d0c0;text-align:left;box-shadow:0 4px 10px rgba(0,0,0,.15);touch-action:manipulation}.world-service-button>span{grid-row:1/3;display:grid;place-items:center;width:30px;height:30px;border:1px solid rgba(213,162,71,.25);border-radius:9px;background:rgba(163,104,31,.1);font-size:17px}.world-service-button>b,.world-service-button>small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.world-service-button>b{align-self:end;color:#e4d8c0;font-size:10px}.world-service-button>small{align-self:start;color:#7f958d;font-size:8px}.world-service-button:hover,.world-service-button:focus-visible{border-color:rgba(224,173,80,.48);background:linear-gradient(180deg,rgba(74,54,25,.76),rgba(20,35,35,.92));outline:none}.world-service-button:active{transform:translateY(1px)}
.world-local-actions{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:stretch;border-bottom:1px solid rgba(132,183,165,.16);background:linear-gradient(180deg,rgba(10,26,29,.96),rgba(5,17,21,.92))}.world-local-actions-label{display:flex;min-width:142px;flex-direction:column;justify-content:center;padding:9px 14px;border-right:1px solid rgba(132,183,165,.14)}.world-local-actions-label b{color:#d8b66f;font-size:9px;letter-spacing:1px;text-transform:uppercase}.world-local-actions-label small{margin-top:3px;color:#788b83;font-size:8px}.world-local-actions .world-service-dock{border:0;background:transparent}
.world-inline-service{padding:10px 12px 12px;border-bottom:1px solid rgba(132,183,165,.16);background:rgba(5,18,21,.94)}.world-inline-service>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;color:#e6c98e;font-size:11px}.world-inline-service>header button{display:grid;place-items:center;width:30px;height:30px;border:1px solid rgba(220,176,91,.25);border-radius:8px;background:#102126;color:#e7d6b4;font-size:18px}.world-inline-service>.activity-card{margin:0;border-color:rgba(132,183,165,.16);box-shadow:none}.world-inline-service>.activity-card .card-img{height:150px}
.world-connection{flex:0 0 auto;display:flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid rgba(153,164,155,.18);border-radius:999px;background:rgba(255,255,255,.035);color:#9ca59d;font:700 10px/1.15 inherit;white-space:nowrap;text-align:left}.world-connection>span,.world-connection small{display:block}.world-connection small{margin-top:2px;color:#7f8981;font-size:8px;font-weight:500}.world-connection i{flex:0 0 auto;width:8px;height:8px;border-radius:99px;background:#777;box-shadow:0 0 0 3px rgba(119,119,119,.12)}.world-connection.online{border-color:rgba(76,198,130,.28);color:#87e3ac}.world-connection.online i{background:#53d486;box-shadow:0 0 0 3px rgba(83,212,134,.13),0 0 12px rgba(83,212,134,.55)}.world-connection.error{cursor:pointer;border-color:rgba(214,166,75,.3);color:#e3bd75}.world-connection.error i{background:#d7a347}.world-connection.loading i{background:#63a9c7;animation:world-sync-pulse 1.15s ease-in-out infinite}.world-reconnect-banner{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px 14px;border-bottom:1px solid rgba(214,166,75,.22);background:rgba(141,89,24,.13)}.world-reconnect-banner>span{display:grid;place-items:center;width:26px;height:26px;border:1px solid rgba(225,173,79,.35);border-radius:50%;color:#e3bd75;font-weight:900}.world-reconnect-banner b,.world-reconnect-banner small{display:block}.world-reconnect-banner b{color:#e3c28a;font-size:10px}.world-reconnect-banner small{margin-top:2px;color:#978b78;font-size:8px}.world-reconnect-banner button{min-width:62px;height:34px;border:1px solid rgba(225,173,79,.32);border-radius:9px;background:rgba(160,100,27,.18);color:#eccb8d;font-size:9px;font-weight:800}@keyframes world-sync-pulse{50%{opacity:.4;box-shadow:0 0 0 5px rgba(99,169,199,.1)}}
.shared-world-layout{display:grid;grid-template-columns:minmax(0,1fr) 292px;min-width:0}.shared-world-stage{position:relative;min-width:0;height:420px;overflow:hidden;border-right:1px solid rgba(132,183,165,.16);background-color:#0a171a;background-image:linear-gradient(rgba(3,11,14,.14),rgba(3,11,14,.3)),var(--world-art-wide);background-position:center;background-size:cover;cursor:crosshair;isolation:isolate;touch-action:manipulation;user-select:none}.shared-world-stage:before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(119,179,153,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(119,179,153,.055) 1px,transparent 1px);background-size:10% 10%}.shared-world-stage:after{content:"";position:absolute;inset:0;z-index:-1;box-shadow:inset 0 0 70px rgba(1,8,10,.75);pointer-events:none}.world-stage-hint{position:absolute;left:12px;bottom:11px;padding:5px 8px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(3,11,14,.72);color:#b8c1b9;font-size:9px;letter-spacing:.5px;pointer-events:none}.world-stage-loading{position:absolute;inset:0;display:grid;place-items:center;color:#c0c4b9;font-size:11px;letter-spacing:.4px}
.world-landmark{position:absolute;z-index:4;left:var(--landmark-x);top:var(--landmark-y);display:grid;justify-items:center;align-content:center;min-width:96px;min-height:48px;padding:5px 7px;border:0;background:transparent;color:#f0d6a1;text-align:center;transform:translate(-50%,-50%);touch-action:manipulation}.world-landmark>b{display:block;max-width:120px;overflow:hidden;color:#fff3d0;font-size:10px;line-height:1.1;white-space:nowrap;text-overflow:ellipsis;text-shadow:0 2px 3px #000,0 0 6px #000,0 0 12px #000;transition:color .16s ease,transform .16s ease}.world-landmark>em{display:block;margin-top:3px;color:#ffd171;font-size:7px;font-style:normal;font-weight:900;line-height:1;text-transform:uppercase;letter-spacing:1.1px;text-shadow:0 2px 3px #000,0 0 6px #000,0 0 10px #000;transition:color .16s ease}.world-landmark.activity>em{color:#9ce7c7}.world-landmark:hover>b,.world-landmark:focus-visible>b{color:#fff8e7;transform:translateY(-1px)}.world-landmark:hover>em,.world-landmark:focus-visible>em{color:#fff0b8}.world-landmark:focus-visible{outline:1px dashed rgba(126,214,180,.9);outline-offset:1px;border-radius:7px}.world-landmark:active{transform:translate(-50%,-48%) scale(.98)}
.world-landmark:after{content:"";width:7px;height:7px;margin-top:4px;border:1px solid currentColor;border-radius:50%;background:rgba(9,24,25,.72);box-shadow:0 0 0 3px rgba(217,170,77,.12),0 0 9px currentColor;transition:transform .16s ease,box-shadow .16s ease}.world-landmark.activity:after{color:#82dcb8;box-shadow:0 0 0 3px rgba(91,202,155,.12),0 0 9px currentColor}.world-landmark:hover:after,.world-landmark:focus-visible:after{transform:scale(1.35);box-shadow:0 0 0 5px rgba(236,191,104,.17),0 0 15px currentColor}.shared-world-stage:focus-visible{outline:2px solid #78d7b1;outline-offset:-3px}
.world-player-marker{position:absolute;z-index:2;display:grid;justify-items:center;transform:translate(-50%,-50%);pointer-events:none;transition:left .2s ease-out,top .2s ease-out}.world-player-avatar{display:grid;place-items:center;width:42px;height:42px;overflow:hidden;border:2px solid #73b9d3;border-radius:50%;background:#0d2229;box-shadow:0 4px 12px rgba(0,0,0,.52),0 0 0 4px rgba(62,154,191,.18)}.world-player-avatar img{width:100%;height:100%;object-fit:cover}.world-player-marker>span{max-width:100px;margin-top:5px;padding:3px 6px;overflow:hidden;border-radius:6px;background:rgba(3,10,13,.82);color:#dcecf1;font-size:9px;font-weight:800;line-height:1;white-space:nowrap;text-overflow:ellipsis;text-shadow:0 1px 2px #000}.world-player-marker.self{z-index:3}.world-player-marker.self .world-player-avatar{width:48px;height:48px;border-color:#e4b555;box-shadow:0 5px 15px rgba(0,0,0,.55),0 0 0 4px rgba(227,176,77,.21),0 0 20px rgba(227,176,77,.28)}.world-player-marker.self>span{color:#ffe3a3}
.world-player-marker[class*="facing-"]:before{content:"▲";position:absolute;z-index:2;left:50%;top:-10px;color:#e6c06f;font-size:9px;line-height:1;text-shadow:0 1px 3px #000;transform:translateX(-50%)}.world-player-marker.facing-south:before{top:42px;transform:translateX(-50%) rotate(180deg)}.world-player-marker.facing-east:before{left:calc(50% + 28px);top:17px;transform:rotate(90deg)}.world-player-marker.facing-west:before{left:calc(50% - 35px);top:17px;transform:rotate(-90deg)}.world-player-marker.moving .world-player-avatar{animation:world-player-step .2s ease-in-out infinite alternate}@keyframes world-player-step{to{transform:translateY(-3px)}}
.world-movement-debug{position:absolute;inset:0;z-index:1;width:100%;height:100%;overflow:visible;pointer-events:none}.world-movement-debug polygon{fill:rgba(50,239,183,.08);stroke:#45efba;stroke-width:.45;stroke-dasharray:1.5 1;vector-effect:non-scaling-stroke}.world-movement-debug circle,.world-movement-debug path{fill:rgba(255,190,72,.26);stroke:#ffd36d;stroke-width:.5;vector-effect:non-scaling-stroke}.world-movement-debug text{fill:#fff2bd;font:2.1px monospace;paint-order:stroke;stroke:#061012;stroke-width:.5px}.world-debug-key{position:absolute;z-index:6;top:8px;left:8px;padding:4px 7px;border:1px solid #45efba;background:rgba(2,14,14,.88);color:#a9f8dd;font:8px monospace;pointer-events:none}.world-player-marker.debug-crowd .world-player-avatar{color:#d8eff6;font:700 13px var(--font-ui);background:#12313a}.world-player-marker.debug-crowd>span{background:rgba(3,10,13,.68)}.shared-world-stage.crowded .world-player-marker:not(.self)>span{font-size:7px;opacity:.72}
.shared-world-sidebar{display:flex;min-width:0;flex-direction:column;padding:14px;background:rgba(3,12,15,.56)}.world-roster-head{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:0 2px 9px}.world-roster-head b{color:#ded2ba;font-size:12px}.world-roster-head small{color:#68c49f;font-size:9px}.world-presence-list{display:grid;gap:6px;max-height:220px;overflow:auto;overscroll-behavior:contain}.world-presence-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:8px;align-items:center;min-width:0;padding:7px;border:1px solid rgba(138,160,149,.13);border-radius:10px;background:rgba(255,255,255,.025)}.world-presence-row.self{border-color:rgba(218,169,75,.25);background:rgba(180,120,31,.08)}.world-presence-face{display:grid;place-items:center;width:38px;height:38px;overflow:hidden;border-radius:10px;background:#112229}.world-presence-face img{width:100%;height:100%;object-fit:cover}.world-presence-row>span:nth-child(2){min-width:0}.world-presence-row b,.world-presence-row small{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.world-presence-row b{color:#dfd5c1;font-size:11px}.world-presence-row small{margin-top:2px;color:#817f77;font-size:9px}.world-presence-row i{color:#6fc79f;font-size:8px;font-style:normal;text-transform:uppercase;letter-spacing:.5px}.world-presence-empty{display:grid;gap:4px;padding:18px 10px;border:1px dashed rgba(153,164,155,.18);border-radius:10px;text-align:center}.world-presence-empty b{color:#b8b5aa;font-size:11px}.world-presence-empty small{color:#777b76;font-size:9px;line-height:1.4}
.world-movement-pad{display:grid;grid-template-columns:repeat(3,54px);grid-template-rows:repeat(3,54px);gap:6px;justify-content:center;margin:auto auto 0;padding-top:15px}.world-movement-pad button{display:grid;place-items:center;width:54px;height:54px;padding:0;border:1px solid rgba(145,179,165,.26);border-radius:15px;background:linear-gradient(180deg,#14262b,#0b181c);color:#c7d9d1;font-size:17px;box-shadow:0 4px 10px rgba(0,0,0,.22);touch-action:manipulation}.world-movement-pad button:not(:disabled):active{transform:translateY(1px);border-color:#65c69f;background:#18342f}.world-movement-pad .world-pad-center{border-color:rgba(211,158,67,.26);background:rgba(149,97,28,.1);color:#d8a953;font-size:12px;opacity:1}

@media(max-width:760px){
  .shared-world-panel{margin-top:10px;border-radius:15px!important}.shared-world-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:12px}.shared-world-head h2{font-size:20px}.shared-world-head p{grid-column:1/-1;display:none}.world-connection{max-width:132px;padding:6px 8px;font-size:9px}.world-connection small{font-size:7px}.world-reconnect-banner{padding:8px 10px}
  .world-local-actions{grid-template-columns:1fr}.world-local-actions-label{min-width:0;padding:7px 9px 0;border-right:0}.world-local-actions-label{flex-direction:row;justify-content:space-between;gap:8px}.world-service-dock{grid-auto-columns:minmax(118px,1fr);gap:6px;padding:7px 8px 8px}.world-service-button{grid-template-columns:31px minmax(0,1fr);min-height:48px;padding:6px 7px;border-radius:10px}.world-service-button>span{width:27px;height:27px;font-size:15px}.world-service-button>b{font-size:9px}.world-service-button>small{font-size:7px}
  .shared-world-layout{display:block}.shared-world-stage{height:304px;border-right:0;border-bottom:1px solid rgba(132,183,165,.16);background-image:linear-gradient(rgba(3,11,14,.14),rgba(3,11,14,.3)),var(--world-art-compact)}.world-player-avatar{width:38px;height:38px}.world-player-marker.self .world-player-avatar{width:44px;height:44px}.world-player-marker>span{max-width:86px;font-size:8px}.shared-world-stage.crowded .world-player-marker:not(.self)>span{display:none}.shared-world-stage.crowded .world-player-marker:not(.self) .world-player-avatar{width:34px;height:34px}.world-stage-hint{left:9px;bottom:8px}
  .world-landmark{left:var(--landmark-mobile-x);top:var(--landmark-mobile-y);min-width:82px;min-height:44px;padding:4px 5px}.world-landmark>b{max-width:96px;font-size:9px}.world-landmark>em{margin-top:2px;font-size:6px}
  .shared-world-sidebar{display:grid;grid-template-columns:minmax(0,1fr) 174px;grid-template-rows:auto minmax(0,1fr);gap:0 10px;padding:10px}.world-roster-head{grid-column:1;grid-row:1;padding:0 1px 7px}.world-presence-list{grid-column:1;grid-row:2;max-height:190px}.world-presence-row{grid-template-columns:34px minmax(0,1fr);padding:6px}.world-presence-face{width:34px;height:34px}.world-presence-row i{display:none}.world-movement-pad{grid-column:2;grid-row:1/3;grid-template-columns:repeat(3,50px);grid-template-rows:repeat(3,50px);gap:5px;margin:0;padding:0;align-self:center}.world-movement-pad button{width:50px;height:50px;border-radius:14px}
}
@media(max-width:380px){
  .shared-world-stage{height:276px}.shared-world-sidebar{grid-template-columns:minmax(0,1fr) 150px;gap:0 7px;padding:9px}.world-movement-pad{grid-template-columns:repeat(3,46px);grid-template-rows:repeat(3,46px);gap:4px}.world-movement-pad button{width:46px;height:46px;border-radius:12px}.world-presence-row small{font-size:8px}
}
@media(prefers-reduced-motion:reduce){.world-player-marker,.world-player-marker.moving .world-player-avatar,.world-connection.loading i,.world-landmark>b,.world-landmark>em,.world-landmark:after{animation:none!important;transition:none!important}}

.world-encounter-card{padding:16px 18px;border-top:1px solid rgba(213,156,61,.26);background:linear-gradient(180deg,rgba(77,40,14,.18),rgba(3,12,15,.82))}.world-encounter-card>header{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:12px;align-items:center}.world-enemy-icon{display:grid;place-items:center;width:54px;height:54px;border:1px solid rgba(212,154,61,.4);border-radius:15px;background:radial-gradient(circle,rgba(166,88,34,.27),rgba(15,24,25,.88));font-size:29px;box-shadow:inset 0 0 18px rgba(0,0,0,.32)}.world-encounter-card header>div:nth-child(2){min-width:0}.world-encounter-card header small{display:block;color:#b99862;font-size:8px;font-weight:800;letter-spacing:1.1px}.world-encounter-card h3{margin:2px 0 6px;color:#f0d29a;font:25px/1 var(--font-title)}.world-enemy-health{height:7px;overflow:hidden;border-radius:999px;background:#251713;box-shadow:inset 0 1px 3px rgba(0,0,0,.65)}.world-enemy-health i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#a62e2d,#e15b45);box-shadow:0 0 9px rgba(224,80,61,.4);transition:width .24s ease-out}.world-encounter-card header>div:nth-child(2)>span{display:block;margin-top:3px;color:#98877a;font-size:8px;text-align:right}.world-turn-state{align-self:start;padding:7px 9px;border:1px solid rgba(151,161,153,.18);border-radius:999px;background:rgba(255,255,255,.035);color:#a6aaa3;font-size:9px;white-space:nowrap}.world-turn-state.yours{border-color:rgba(83,212,134,.33);background:rgba(39,133,80,.13);color:#8ee7ae;box-shadow:0 0 14px rgba(60,187,111,.1)}
.world-combat-grid{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(280px,1.2fr);gap:12px;margin-top:14px}.world-fighter-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.world-fighter-head b,.world-combat-log>b{color:#c9bda7;font-size:10px;text-transform:uppercase;letter-spacing:.8px}.world-fighter-head small{color:#756f66;font-size:9px}.world-fighter-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.world-fighter{display:grid;grid-template-columns:34px minmax(0,1fr);gap:7px;align-items:center;min-width:0;padding:6px;border:1px solid rgba(154,143,123,.13);border-radius:9px;background:rgba(255,255,255,.025)}.world-fighter.self{border-color:rgba(218,169,75,.25);background:rgba(180,120,31,.07)}.world-fighter.down{opacity:.48;filter:grayscale(.6)}.world-fighter>span{display:grid;place-items:center;width:34px;height:34px;overflow:hidden;border-radius:9px;background:#102126}.world-fighter>span img{width:100%;height:100%;object-fit:cover}.world-fighter>div{min-width:0}.world-fighter b,.world-fighter small{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.world-fighter b{color:#dbd0bd;font-size:10px}.world-fighter small{margin:2px 0 4px;color:#7f7c74;font-size:8px}.world-fighter i{display:block;width:var(--fighter-hp);height:3px;border-radius:99px;background:#54bd78}.world-combat-log{min-width:0;padding:10px;border:1px solid rgba(149,139,121,.12);border-radius:10px;background:rgba(0,0,0,.16)}.world-combat-log ol{display:grid;gap:4px;margin:7px 0 0;padding:0;list-style:none}.world-combat-log li{padding-left:8px;border-left:2px solid rgba(190,140,63,.28);color:#918b80;font-size:9px;line-height:1.35}
.world-combat-actions{display:grid;grid-template-columns:minmax(120px,1fr) minmax(120px,1fr) auto;gap:8px;margin-top:13px}.world-combat-actions .btn{width:100%;min-height:46px}.world-leave-fight{min-width:68px;border:0;background:transparent;color:#8c8174;font-size:10px;text-decoration:underline}.world-leave-fight:hover{color:#d5b988}.world-join-fight{width:100%;min-height:48px;margin-top:13px}.world-reward{display:flex;align-items:center;gap:9px;margin-top:13px;padding:10px;border:1px solid rgba(85,190,116,.27);border-radius:11px;background:rgba(42,128,68,.09)}.world-reward b{margin-right:auto;color:#98e1ac;font-size:11px}.world-reward span{padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.045);color:#e7ca86;font-size:9px}.world-encounter-result{margin:12px 0 0;color:#c09383;font-size:11px}.world-encounter-card.empty{display:flex;align-items:center;justify-content:space-between;gap:16px}.world-encounter-card.empty small{color:#b99862;font-size:8px;font-weight:800;letter-spacing:1.1px}.world-encounter-card.empty h3{margin:3px 0 4px;font-size:20px}.world-encounter-card.empty p{margin:0;color:#8f8c84;font-size:10px}.world-encounter-card.empty .btn{flex:0 0 auto;min-width:170px}.world-encounter-card.peaceful{display:flex;align-items:center;gap:10px;color:#7e9388}.world-encounter-card.peaceful>span{font-size:24px}.world-encounter-card.peaceful b,.world-encounter-card.peaceful small{display:block}.world-encounter-card.peaceful small{font-size:8px;letter-spacing:1px}.world-encounter-card.peaceful b{margin-top:2px;color:#aab7af;font-size:11px}

@media(max-width:760px){
  .world-encounter-card{padding:12px 10px}.world-encounter-card>header{grid-template-columns:46px minmax(0,1fr);gap:9px}.world-enemy-icon{width:46px;height:46px;border-radius:12px;font-size:24px}.world-encounter-card h3{font-size:21px}.world-turn-state{grid-column:1/-1;justify-self:stretch;margin-top:1px;text-align:center}.world-combat-grid{grid-template-columns:1fr;gap:9px;margin-top:10px}.world-fighter-list{grid-template-columns:repeat(2,minmax(0,1fr))}.world-combat-log{padding:9px}.world-combat-log ol{gap:3px}.world-combat-log li{font-size:8px}.world-combat-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:10px}.world-combat-actions .btn{min-width:0;min-height:48px;padding-inline:6px}.world-leave-fight{grid-column:1/-1;min-height:34px}.world-reward{display:grid;grid-template-columns:1fr 1fr;gap:7px}.world-reward b{grid-column:1/-1;margin:0}.world-reward span{text-align:center}.world-encounter-card.empty{display:grid;gap:10px}.world-encounter-card.empty .btn{width:100%;min-width:0;min-height:48px}.world-encounter-card.empty h3{font-size:18px}
}
@media(max-width:360px){.world-fighter-list{grid-template-columns:1fr}.world-combat-log li:nth-child(-n+2){display:none}}

/* Nearby direct trade keeps both offers visible until two-sided confirmation. */
.world-trade-player{min-width:52px;height:30px;padding:0 8px;border:1px solid rgba(211,159,70,.34);border-radius:8px;background:rgba(148,92,25,.12);color:#e0bd78;font-size:9px;font-weight:800}.world-trade-player:disabled{opacity:.38}
.direct-trade-card{padding:16px 18px;border-top:1px solid rgba(91,181,165,.24);background:linear-gradient(180deg,rgba(22,71,67,.13),rgba(3,12,15,.86))}.direct-trade-card>header,.direct-trade-card.pending,.direct-trade-card.result{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:center}.direct-trade-mark{display:grid;place-items:center;width:46px;height:46px;border:1px solid rgba(92,194,171,.32);border-radius:14px;background:rgba(38,124,108,.12);color:#87d8c0;font-size:23px}.direct-trade-card small{display:block;color:#6fc8b1;font-size:8px;font-weight:800;letter-spacing:1.2px}.direct-trade-card h3{margin:2px 0 4px;color:#e5d7bc;font:22px/1.05 var(--font-title)}.direct-trade-card p{margin:0;color:#8e9890;font-size:10px;line-height:1.4}.direct-trade-invite-actions{display:flex;gap:7px}.direct-trade-invite-actions .btn{min-width:92px}.direct-trade-card.result.complete .direct-trade-mark{border-color:rgba(79,199,116,.36);background:rgba(47,145,77,.14);color:#91e4a8}
.direct-trade-offers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:13px}.direct-trade-offer{min-width:0;padding:11px;border:1px solid rgba(134,164,153,.17);border-radius:12px;background:rgba(0,0,0,.16)}.direct-trade-offer.self{border-color:rgba(211,160,70,.25)}.direct-trade-offer-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}.direct-trade-offer-head b{color:#d9cdb6;font-size:11px}.direct-trade-offer-head i{padding:4px 7px;border-radius:999px;background:rgba(255,255,255,.045);color:#898e88;font-size:8px;font-style:normal}.direct-trade-offer-head i.confirmed{background:rgba(52,156,89,.13);color:#89dda2}.direct-trade-offer label{display:grid;gap:4px;color:#827e75;font-size:8px;text-transform:uppercase;letter-spacing:.7px}.direct-trade-offer select,.direct-trade-offer input{width:100%;min-width:0;height:42px;padding:0 9px;border:1px solid #41311f;border-radius:9px;background:#081317;color:#e2d7c2;font-size:12px}.direct-trade-amounts{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:8px 0}.direct-trade-offer .btn{width:100%}.direct-trade-other-summary{display:grid;grid-template-columns:54px minmax(0,1fr);gap:10px;align-items:center;min-height:104px}.direct-trade-other-summary>span{display:grid;place-items:center;width:54px;height:54px;border:1px solid rgba(148,128,93,.2);border-radius:12px;background:#0a171b;font-size:27px}.direct-trade-other-summary b{color:#c9bda9;font-size:12px;line-height:1.35}.direct-trade-capacity-warning{display:grid;gap:3px;margin-top:11px;padding:10px 12px;border:1px solid rgba(218,103,74,.42);border-radius:10px;background:rgba(126,42,30,.16)}.direct-trade-capacity-warning b{color:#efad91;font-size:10px;text-transform:uppercase;letter-spacing:.65px}.direct-trade-capacity-warning span{color:#d6bbb0;font-size:11px;line-height:1.45}.direct-trade-confirm{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;margin-top:11px;padding-top:11px;border-top:1px solid rgba(119,151,139,.14)}.direct-trade-confirm .btn{min-width:190px}
.craft-eligibility-tag{display:inline-flex;width:max-content;margin-top:6px;padding:4px 8px;border:1px solid rgba(211,160,70,.3);border-radius:999px;background:rgba(106,70,20,.18);color:#d7ae65;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.55px}

/* Auction house prioritizes price, quantity, and a safe purchase action. */
.market-mode-tabs{display:flex}.market-layout.auction-layout{grid-template-columns:270px minmax(0,1fr)}.auction-layout>.panel:nth-child(2){padding:0!important;overflow:hidden}.auction-market-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:16px 18px;border-bottom:1px solid rgba(194,143,59,.22)}.auction-market-head small,.auction-sell-panel>div>small{color:#c19a58;font-size:8px;font-weight:800;letter-spacing:1.2px}.auction-market-head h2,.auction-sell-panel h2{margin:3px 0 4px;color:#ead8b7;font:25px/1 var(--font-title)}.auction-market-head p,.auction-sell-panel p{margin:0;color:#8c887f;font-size:10px}.auction-wallet{flex:0 0 auto;padding:8px 11px;border:1px solid rgba(205,155,68,.27);border-radius:999px;background:rgba(161,102,27,.09);color:#e7c77f;font-size:11px}.auction-view-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:8px 10px;border-bottom:1px solid rgba(194,143,59,.18);background:rgba(0,0,0,.12)}.auction-view-tabs button{min-width:0;height:42px;border:1px solid transparent;border-radius:9px;background:transparent;color:#968e82;font-size:10px;font-weight:800}.auction-view-tabs button span{display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:4px;border-radius:99px;background:rgba(255,255,255,.05);font-size:8px}.auction-view-tabs button.active{border-color:rgba(213,159,67,.4);background:rgba(151,94,25,.15);color:#f0cd84}.auction-listings{display:grid;gap:7px;padding:10px}.auction-listing{display:grid;grid-template-columns:50px minmax(0,1fr) auto 84px;gap:10px;align-items:center;min-width:0;padding:10px;border:1px solid rgba(148,123,82,.18);border-radius:11px;background:rgba(0,0,0,.15)}.auction-listing.mine{border-color:rgba(80,176,151,.25)}.auction-item-icon{display:grid;place-items:center;width:50px;height:50px;overflow:hidden;border-radius:10px;background:#101c20}.auction-item-img{width:44px;height:44px;object-fit:contain}.auction-listing-copy{min-width:0}.auction-listing-copy small{color:#9b7d53;font-size:8px;text-transform:uppercase}.auction-listing-copy h3{margin:2px 0;color:#e1d3ba;font:18px/1 var(--font-title);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auction-listing-copy p{margin:0;color:#7f7b74;font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auction-price{text-align:right}.auction-price b,.auction-price small{display:block}.auction-price b{color:#e9c77e;font-size:12px}.auction-price small{margin-top:2px;color:#77736c;font-size:8px}.auction-listing>.btn{min-width:0;width:84px}.auction-sell-panel{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(300px,1.3fr);gap:16px;padding:16px}.auction-list-form{display:grid;grid-template-columns:minmax(150px,1.4fr) minmax(90px,.6fr) minmax(110px,.8fr);gap:8px;padding:12px;border:1px solid rgba(159,126,75,.2);border-radius:12px;background:rgba(0,0,0,.14)}.auction-list-form label{display:grid;gap:5px;color:#887f70;font-size:8px;text-transform:uppercase;letter-spacing:.7px}.auction-list-form select,.auction-list-form input{width:100%;min-width:0;height:44px;padding:0 9px;border:1px solid #42311e;border-radius:9px;background:#081317;color:#e0d3bd;font-size:11px}.auction-list-form .btn{grid-column:1/-1;width:100%;min-height:46px}.auction-error{margin:12px;padding:12px;border:1px solid rgba(205,154,67,.28);border-radius:10px;color:#d8b776;text-align:center}.empty-state.compact{min-height:150px!important;margin:10px;border-radius:12px!important}

@media(max-width:760px){
  .market-mode-tabs{grid-template-columns:repeat(4,minmax(0,1fr))!important}.market-mode-tabs .tab{padding-inline:3px!important;font-size:10px!important}.market-layout.auction-layout{grid-template-columns:1fr!important}.auction-layout>.merchant{display:none!important}.auction-market-head{padding:12px}.auction-market-head h2{font-size:21px}.auction-market-head p{display:none}.auction-wallet{padding:7px 9px}.auction-view-tabs{padding:7px}.auction-view-tabs button{height:44px;padding:0 3px;font-size:9px}.auction-listings{padding:8px}.auction-listing{grid-template-columns:44px minmax(0,1fr) auto;gap:8px;padding:9px}.auction-item-icon{grid-row:1/3;width:44px;height:44px}.auction-item-img{width:39px;height:39px}.auction-listing-copy{grid-column:2/4}.auction-listing-copy h3{font-size:16px}.auction-price{grid-column:2;text-align:left}.auction-listing>.btn{grid-column:3;width:76px;min-height:38px;padding-inline:6px}.auction-sell-panel{grid-template-columns:1fr;gap:11px;padding:12px}.auction-sell-panel h2{font-size:21px}.auction-list-form{grid-template-columns:1fr 1fr;padding:10px}.auction-list-form label:first-child{grid-column:1/-1}.auction-list-form .btn{grid-column:1/-1}
  .direct-trade-card{padding:12px 10px}.direct-trade-card>header,.direct-trade-card.pending,.direct-trade-card.result{grid-template-columns:42px minmax(0,1fr);gap:9px}.direct-trade-mark{width:42px;height:42px;border-radius:12px;font-size:20px}.direct-trade-card h3{font-size:19px}.direct-trade-invite-actions,.direct-trade-card>header>.world-leave-fight{grid-column:1/-1}.direct-trade-invite-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.direct-trade-invite-actions .btn{width:100%;min-width:0}.direct-trade-offers{grid-template-columns:1fr;gap:8px;margin-top:10px}.direct-trade-other-summary{min-height:72px}.direct-trade-confirm{grid-template-columns:1fr;gap:8px}.direct-trade-confirm .btn{width:100%;min-width:0;min-height:48px}
}
@media(max-width:350px){.market-mode-tabs .tab{font-size:9px!important}.auction-list-form{grid-template-columns:1fr}.auction-list-form label,.auction-list-form label:first-child,.auction-list-form .btn{grid-column:1}.world-presence-row{grid-template-columns:32px minmax(0,1fr) auto}.world-trade-player{min-width:46px;padding-inline:5px}}

/* V2 synchronized encounters use the same enemy portraits as solo combat. */
.world-enemy-icon{overflow:hidden}.world-enemy-icon img{width:100%;height:100%;object-fit:cover;display:block}

/* Keep the live-state control typographically consistent across button and text variants. */
.world-connection{font-family:var(--font-ui);font-size:10px;font-weight:700;line-height:1.15}
.auction-error{display:flex;align-items:center;justify-content:center;gap:10px}.auction-error button{min-width:64px;height:34px;border:1px solid rgba(205,154,67,.35);border-radius:9px;background:rgba(161,102,27,.12);color:#e7c77f;font-size:9px;font-weight:800}

/* Desktop web polish: preserve the full creation workflow on laptop-sized screens and give the signed-in shell a calmer frame. */
@media(min-width:901px){
  .game{max-width:1920px;margin:0 auto;box-shadow:inset 0 0 0 1px rgba(224,177,83,.12),0 0 54px rgba(0,0,0,.78)}
  .content{padding:26px clamp(24px,3vw,48px) 24px}
  .page-head{margin-bottom:18px}
  .panel,.region-detail,.player-card,.quest-card{border-radius:8px}
  .top-nav-btn{border-radius:7px}
  .btn,.tab,.filter{border-radius:6px}
}

@media(min-width:1101px){
  .character-create-panel-v29{
    width:min(1440px,calc(100vw - 42px))!important;
    max-height:calc(100vh - 28px)!important;
    padding:22px 28px 24px!important;
  }
  .character-create-panel-v29 h1{font-size:32px!important;margin-bottom:14px!important}
  .character-create-panel-v29 .char-create-grid{grid-template-columns:minmax(0,1fr) 390px!important;gap:24px!important}
  .character-create-panel-v29 .char-section-label{margin:9px 0 6px!important}
  .character-create-panel-v29 .class-tile-row{gap:8px!important}
  .character-create-panel-v29 .class-tile{height:92px!important;padding:7px!important}
  .character-create-panel-v29 .class-tile img{max-width:42px!important;max-height:42px!important}
  .character-create-panel-v29 .class-tile b{font-size:12px!important}
  .character-create-panel-v29 .affinity-tile-row{gap:8px!important}
  .character-create-panel-v29 .affinity-tile{height:58px!important;padding:4px!important}
  .character-create-panel-v29 .affinity-tile span{font-size:19px!important}
  .character-create-panel-v29 .affinity-tile b{font-size:10px!important}
  .character-create-panel-v29 .appearance-grid-v29{gap:8px!important}
  .character-create-panel-v29 .appearance-tile{height:128px!important}
  .character-create-panel-v29 .char-preview-card{min-height:0!important}
  .character-create-panel-v29 .char-preview-art{height:300px!important}
  .character-create-panel-v29 .char-info-card{padding:12px 16px 8px!important;gap:11px!important}
  .character-create-panel-v29 .char-info-card h2{font-size:24px!important}
  .character-create-panel-v29 .char-info-card p{font-size:12px!important;line-height:1.3!important}
  .character-create-panel-v29 .class-icon-large{width:54px!important;height:54px!important}
  .character-create-panel-v29 .class-stat-bars{padding:0 16px 12px!important}
  .character-create-panel-v29 .class-stat-row{grid-template-columns:70px 1fr 20px!important;gap:8px!important;margin:5px 0!important;font-size:11px!important}
  .character-create-panel-v29 .stat-track{height:7px!important}
  .character-create-panel-v29 .affinity-summary{margin-top:8px!important;padding-top:8px!important}
  .character-create-panel-v29 .affinity-summary-head{margin-bottom:5px!important}
  .character-create-panel-v29 .affinity-summary-head b{font-size:15px!important}
  .character-create-panel-v29 .affinity-summary-head small,.character-create-panel-v29 .affinity-bonus-row{font-size:10px!important}
  .character-create-panel-v29 .auth-footer-actions{margin-top:14px!important}
  .character-create-panel-v29 .auth-back-button-v29{width:170px!important;height:46px!important}
  .character-create-panel-v29 .create-character-large-v29{width:300px!important;height:50px!important;font-size:19px!important}
}

@media(min-width:901px) and (max-width:1100px){
  .character-create-panel-v29{width:calc(100vw - 28px)!important;padding-inline:20px!important}
  .character-create-panel-v29 .char-create-grid{grid-template-columns:1fr!important}
}

/* Complete desktop navigation: primary routes stay visible and secondary systems live in compact menus. */
@media(min-width:901px){
  .desktop-navigation{overflow:visible!important;position:relative;z-index:12}
  .desktop-navigation .top-nav-actions{display:grid!important;grid-template-columns:repeat(8,minmax(0,1fr))!important;gap:8px!important;max-width:1500px;margin:0 auto}
  .desktop-nav-menu{position:relative;min-width:0}
  .desktop-nav-menu>summary{list-style:none}
  .desktop-nav-menu>summary::-webkit-details-marker{display:none}
  .desktop-nav-summary{position:relative;width:100%;height:42px;display:flex;align-items:center;justify-content:center;gap:7px;padding:0 12px;border:1px solid #3e2d18;border-radius:7px;background:linear-gradient(180deg,#132128,#091116);color:var(--text);font-size:15px;font-weight:600;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(244,212,148,.04),0 4px 10px rgba(0,0,0,.2)}
  .desktop-nav-summary i{margin-left:2px;color:#8e806c;font-size:10px;font-style:normal;transition:transform .15s ease}
  .desktop-nav-menu[open] .desktop-nav-summary i{transform:rotate(180deg)}
  .desktop-nav-menu.active .desktop-nav-summary,.desktop-nav-menu[open] .desktop-nav-summary{border-color:var(--gold);background:linear-gradient(180deg,#493014,#171009);color:#fff0c2}
  .desktop-nav-dropdown{position:absolute;right:0;top:calc(100% + 7px);z-index:80;display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));gap:6px;width:340px;padding:9px;border:1px solid #74501f;border-radius:9px;background:linear-gradient(180deg,#101c22,#071014);box-shadow:0 18px 38px rgba(0,0,0,.72)}
  .desktop-nav-dropdown .top-nav-btn{width:100%;justify-content:flex-start!important;min-width:0!important}
  .desktop-nav-badge{position:absolute;right:6px;top:4px;display:grid;place-items:center;min-width:17px;height:17px;padding:0 4px;border:1px solid rgba(255,220,158,.32);border-radius:99px;background:#a93631;color:#fff4e8;font-size:9px;line-height:1;box-shadow:0 2px 7px rgba(0,0,0,.4)}
  .top-nav-btn{position:relative}
}

@media(min-width:901px) and (max-width:1250px){
  .desktop-navigation{padding-inline:12px!important}
  .desktop-navigation .top-nav-actions{gap:5px!important}
  .desktop-navigation .top-nav-btn,.desktop-nav-summary{height:40px!important;min-width:0!important;padding-inline:6px!important;gap:4px!important;font-size:11px!important}
  .desktop-navigation .top-nav-icon{width:17px;font-size:14px}
  .desktop-nav-dropdown{width:310px}
}

/* V2 functional scenes */
.guild-banner.no-guild-banner{background:linear-gradient(180deg,transparent 42%,rgba(0,0,0,.88)),url('assets/art-v2/scenes/core/scene-guild-hall-highmere.png') center/cover no-repeat!important}

/* V2 profession and harvesting-node icon fitting. */
.profession-button img,.gather-skill-card img{object-fit:contain!important;object-position:center!important;padding:3px;background:#05090c}
.gather-location-card>img[src*="/icons/nodes/"],.gathering-harvest-hero>img[src*="/icons/nodes/"]{object-fit:contain!important;object-position:center!important;padding:7px;background:radial-gradient(circle,#14252a 0,#05090c 70%)}
.gathering-harvest-hero>img[src*="/icons/nodes/"]{padding:20px}

/* V2 stronghold building cards and collection sheet. */
.sh-building img{object-position:center center;background:#071116}
.all-buildings-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.all-building-row{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:10px;align-items:center;min-width:0;padding:9px;border:1px solid #513618;background:linear-gradient(180deg,#0c161b,#050a0d)}
.all-building-row img{width:96px;height:68px;object-fit:cover;object-position:center;border:1px solid #5c3e1d;background:#071116}
.all-building-row>span:nth-child(2){min-width:0}.all-building-row b,.all-building-row small{display:block}.all-building-row b{color:var(--gold2);font-family:var(--font-title)}.all-building-row small{margin-top:3px;color:var(--muted);line-height:1.3}
@media(max-width:760px){
  .sh-buildings{grid-template-columns:1fr!important}
  .sh-building{grid-template-columns:112px minmax(0,1fr);min-height:142px;padding:9px}
  .sh-building img{width:112px;height:92px}
  .sh-building .btn{min-height:44px}
  .modal-backdrop:has(.all-buildings-modal){place-items:start center!important;padding:112px 10px 84px!important;overflow:auto!important}
  .all-buildings-modal{width:100%!important;max-height:calc(100dvh - 196px)!important;padding:12px!important}
  .all-buildings-modal>.panel-title{position:sticky;top:-12px;z-index:2;margin:-12px -12px 10px;padding:14px 12px 10px;border-bottom:1px solid #513618;background:#071116}
  .all-buildings-list{grid-template-columns:1fr}
  .all-building-row{grid-template-columns:88px minmax(0,1fr) auto;padding:7px;gap:8px}
  .all-building-row img{width:88px;height:64px}
}

/* V2 starting-class artwork: two gender variants per selected class. */
.character-create-panel-v29 .appearance-grid-v29{grid-template-columns:repeat(2,minmax(0,1fr))!important;max-width:340px}
.character-create-panel-v29 .appearance-grid-v29 .appearance-tile img{object-fit:contain!important;object-position:center bottom!important;background:#05090c!important}
.character-create-panel-v29 .appearance-grid-v29 .appearance-tile span{display:block!important;padding:20px 8px 7px!important;color:#f0d9a6!important;font-size:10px!important;font-weight:800!important;letter-spacing:1px!important;text-transform:uppercase!important;pointer-events:none}
.character-create-panel-v29 .char-preview-art img{object-fit:contain!important;object-position:center bottom!important;background:#05090c!important}
@media(max-width:740px){.character-create-panel-v29 .appearance-grid-v29{max-width:none;gap:8px!important}}

/* Desktop market and crafting polish: denser tools, balanced rails, and clearer scan paths. */
@media(min-width:1251px){
  .market-layout{grid-template-columns:280px minmax(0,1fr) 280px;gap:14px;align-items:start}
  .market-layout.auction-layout{grid-template-columns:250px minmax(0,1fr)}
  .market-layout>.merchant,.market-layout>aside.grid{position:sticky;top:0;align-self:start}
  .merchant-art{height:320px}
  .merchant>.pad{padding:14px}
  .merchant>.pad h2{margin:0 0 8px;font-size:22px}
  .merchant>.pad p{margin:0 0 14px;color:var(--muted);line-height:1.45}
  .market-layout>.panel.pad{padding:14px}
  .shop-row{grid-template-columns:58px minmax(0,1fr) 72px 68px 72px;gap:10px;padding:9px 10px}
  .shop-icon{width:54px;height:54px}
  .shop-row small{line-height:1.3}
  .market-layout>aside.grid{gap:12px}
  .market-layout>aside.grid>.panel.pad{padding:14px}
  .market-layout>aside.grid>.panel.pad h2{font-size:17px}

  .craft-pro-layout{grid-template-columns:238px minmax(0,1fr) 286px;gap:14px;align-items:start}
  .craft-prof-list{gap:7px;padding:12px!important}
  .craft-prof-group{gap:6px}
  .craft-prof-group+.craft-prof-group{margin-top:7px;padding-top:9px}
  .craft-prof-list .panel-title{font-size:16px}
  .profession-options{gap:5px}
  .profession-button{grid-template-columns:38px minmax(0,1fr);gap:8px;min-height:51px;padding:6px 7px}
  .profession-button img{width:38px;height:38px}
  .profession-button b{font-size:12px}
  .profession-button small{font-size:10px;line-height:1.2}
  .profession-button em{display:none}
  .craft-station-hero{min-height:172px}
  .craft-station-hero>div{max-width:58%;margin:10px;padding:9px 13px}
  .craft-main>.pad{padding:13px}
  .recipe-list{gap:8px}
  .craft-recipe-card{grid-template-columns:62px minmax(0,1fr) 88px;gap:10px;padding:8px 9px}
  .craft-recipe-art{width:62px;height:62px}
  .craft-recipe-body h3{font-size:19px}
  .craft-recipe-body p{margin:5px 0;font-size:12px;line-height:1.3}
  .craft-cost-list{gap:5px;margin:6px 0}
  .craft-cost-chip{padding:3px 6px;font-size:11px}
  .craft-materials{position:sticky;top:0;padding:13px!important}
  .material-stock-row{padding:6px 0}
}

/* Desktop combat and social polish: turn controls stay visible before deep encounter detail. */
@media(min-width:1361px){
  .v30-encounter-shell{display:flex;flex-direction:column}
  .v30-encounter-top{order:1;grid-template-columns:270px minmax(0,1fr);padding:10px 14px}
  .v30-dungeon-meta b{font-size:24px}
  .v30-battlefield-wrap{order:2;padding:10px 10px 0}
  .v30-battlefield{height:270px}
  .v30-action-console{order:3;grid-template-columns:230px minmax(0,1fr) 260px;gap:10px;padding:10px 10px 12px;align-items:start}
  .v30-actor-card{grid-template-columns:64px minmax(0,1fr);gap:9px;padding:8px}
  .v30-actor-card img{width:62px;height:76px}
  .v30-skills{grid-template-columns:repeat(5,minmax(105px,1fr));gap:7px}
  .v30-skills .ability{min-height:88px;padding:7px 5px}
  .v30-skills .ability>span,.v30-skills .ability>b,.v30-skills .ability>small{display:block}
  .v30-skills .ability>span{font-size:24px;line-height:1}
  .v30-skills .ability b{margin-top:4px;font-size:11px}
  .v30-skills .ability small{margin-top:3px;font-size:9px;line-height:1.2}
  .v30-skills .ability small:not(.subtle){display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .v30-combat-tabs{gap:7px}
  .v30-combat-tabs button{min-height:49px;padding:5px;font-size:10px}
  .v30-lower-combat{order:4;grid-template-columns:290px minmax(0,1fr);gap:10px;padding:10px}
  .combat-log-v30{position:sticky;top:0;max-height:calc(100dvh - 190px);overflow:hidden}
  .combat-log-v30 .combat-log-list{overflow:auto;min-height:180px}
}

@media(min-width:901px){
  .party-invite-row{grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center}
  .party-invite-row>span:nth-child(2){min-width:0}
  .party-invite-actions{display:flex;gap:8px;align-items:center}
  .party-invite-actions .btn{min-width:82px;padding-inline:12px}
  .party-dungeons-pane>.panel{padding:14px 16px}
}

/* Desktop Guild Hall and Stronghold polish: management content leads before deep detail. */
@media(min-width:901px){
  .guild-order-row{grid-template-columns:44px minmax(0,1fr) 82px}
  .guild-order-row>span:nth-child(2){min-width:0}
  .guild-order-row>.btn{width:82px;min-width:0;padding-inline:9px}
  .guild-action-button{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer}
  .guild-action-button:hover{border-color:var(--gold);background:#101b20}
  .guild-stronghold-section{scroll-margin-top:18px}
}

@media(min-width:1301px){
  .sh-layout{grid-template-columns:minmax(760px,1fr) 400px;gap:14px}
  .sh-main{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
  .sh-main>.panel{grid-column:1/-1}
  .sh-main>.sh-production,.sh-main>.sh-storage{grid-column:auto;height:100%}
  .sh-hero-v25{min-height:300px;height:300px;grid-template-columns:230px minmax(0,1fr)}
  .sh-summary{padding:18px}
  .sh-summary-clean{gap:7px}
  .sh-summary-clean h2{margin-bottom:4px}
  .sh-production,.sh-storage{padding:12px!important}
  .sh-production>.subtle{margin:5px 0 10px;font-size:11px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .sh-production .sh-resource-row,.sh-storage .sh-resource-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  .sh-resource,.sh-storage-item{min-height:68px;padding:8px}
  .sh-resource span{font-size:20px}
  .sh-resource b,.sh-storage-item b{font-size:12px}
  .sh-resource em,.sh-storage-item small{font-size:10px}
  .sh-sidebar{gap:12px}
  .sh-side-card{padding:13px!important}
  .worker-row{padding:7px 0}
}

/* Desktop progression polish: denser talent trees, readable quest states, and an above-the-fold character overview. */
.talent-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:-2px 0 14px;border:1px solid #513618;background:#513618}
.talent-overview>div{display:grid;gap:3px;padding:11px 14px;background:linear-gradient(180deg,#0d191e,#081115)}
.talent-overview small,.talent-path-header small{color:#8f806d;font-size:9px;letter-spacing:1px}
.talent-overview b{color:#e9d8b9;font-size:14px}
.talent-path-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid rgba(173,122,51,.2)}
.talent-path-header .panel-title{margin:3px 0 0}
.talent-node-list{position:relative;gap:7px}
.talent-path-rule{margin:-2px 0 11px;padding:8px 10px;border:1px solid rgba(165,117,50,.2);border-radius:9px;background:rgba(0,0,0,.13);color:#9f9483;font-size:10px;line-height:1.45}.talent-path-rule b{color:#dec17d}
.talent-node{position:relative;min-height:88px!important;grid-template-columns:44px minmax(0,1fr) 44px!important;align-items:center!important}
.talent-node.points-locked:disabled{opacity:.78}.talent-node.prerequisite-locked:disabled{opacity:.62}.talent-node:disabled .talent-node-copy>strong{color:#c7ad72}.talent-node:disabled .talent-node-copy>strong i{color:#9f7d46}
.talent-node-copy{display:grid;gap:3px;min-width:0;text-align:left}.talent-node-copy>b{color:#e4d2b5}.talent-node-copy>small{color:#8f8678;font-size:9px}.talent-node-copy>strong{display:flex;flex-wrap:wrap;gap:4px 7px;align-items:center;margin-top:2px;color:#efd28c;font-size:10px;line-height:1.3}.talent-node-copy>strong i{padding:2px 5px;border:1px solid rgba(210,157,65,.32);border-radius:999px;background:rgba(192,128,36,.1);color:#b68c48;font-size:7px;font-style:normal;letter-spacing:.55px}.talent-node.active .talent-node-copy>strong{color:#8fe0a5}.talent-node.active .talent-node-copy>strong i{border-color:rgba(75,181,112,.4);background:rgba(49,139,81,.13);color:#75cb91}
.talent-rank{display:grid;justify-items:center;gap:1px;color:#8f806d}.talent-rank small{font-size:7px;letter-spacing:.65px}.talent-rank b{color:#c7b28d;font-size:13px}.talent-rank em{color:#8f806d;font-size:9px;font-style:normal;font-weight:800}.talent-node.active .talent-rank b,.talent-node.active .talent-rank em{color:#f0c66e}

@media(min-width:1251px){
  .talent-page-head{margin-bottom:12px}
  .talent-paths{gap:14px;align-items:start}
  .talent-path-panel{padding:14px}
  .talent-node-list{gap:6px}
  .talent-path-panel .action-tile{grid-template-columns:40px minmax(0,1fr) 38px!important;gap:9px;min-height:76px!important;padding:7px 9px}
  .talent-path-panel .iconbox{width:38px;height:38px}
  .talent-path-panel .action-tile b{font-size:13px}
  .talent-path-panel .action-tile small{font-size:9px}
  .talent-reset-panel{margin-top:12px;padding:13px 15px}

  .journal-layout-clean{grid-template-columns:minmax(0,1fr) 290px;gap:14px}
  .journal-list-clean{gap:9px}
  .quest-card-clean{grid-template-columns:220px minmax(0,1fr);min-height:150px}
  .quest-img-clean{min-height:150px}
  .quest-body-clean{gap:5px;padding:11px 13px}
  .quest-body-clean h3{font-size:21px}
  .quest-body-clean p{margin:2px 0;font-size:12px;line-height:1.35}
  .quest-progress-row{font-size:12px}
  .quest-reward-line span{padding:4px 7px;font-size:10px}
  .quest-card-clean.ready{border-color:rgba(224,170,73,.72);box-shadow:0 0 0 1px rgba(224,170,73,.12),0 8px 18px rgba(0,0,0,.28)}
  .quest-card-clean.completed{border-color:rgba(78,160,120,.38)}
  .journal-side-clean{top:10px;padding:14px}

  .character-mobile-layout{grid-template-columns:430px minmax(0,1fr);gap:14px}
  .character-overview-pane,.character-stats-pane{gap:12px}
  .summary-cards-v31{gap:10px!important}
  .character-overview-pane .summary-card{min-height:190px;padding:12px}
  .character-overview-pane .summary-card .panel-title{font-size:16px}
  .character-overview-pane .summary-icon{font-size:31px;margin:3px}
  .character-overview-pane .summary-icon-image img{width:44px;height:44px}
  .character-overview-pane .summary-card p{margin:5px 0;font-size:10px;line-height:1.3}
  .character-overview-pane .progress-row{grid-template-columns:48px 205px minmax(0,1fr) 40px;gap:10px;margin:7px 0;padding:8px}
  .character-overview-pane .progress-row .iconbox{width:44px;height:44px}
  .character-overview-pane>.panel{padding:13px}
  .character-overview-pane>.panel .panel-title{margin-bottom:7px}
}

@media(max-width:760px){
  .talent-overview{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:10px;border-radius:12px;overflow:hidden}
  .talent-overview>div{padding:8px 10px}
  .talent-path-header{margin-bottom:8px;padding-bottom:8px}
  .talent-path-header .pill{font-size:9px}
}

/* Region polish: clearer actions, grounded status, and deliberate movement controls. */
.shared-world-panel{border-color:rgba(100,201,165,.34);box-shadow:0 22px 52px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.025)}
.shared-world-head{position:relative;padding:18px 20px;background:radial-gradient(circle at 0 0,rgba(54,132,110,.1),transparent 42%)}
.shared-world-head:after{content:"";position:absolute;right:0;bottom:-1px;left:0;height:1px;background:linear-gradient(90deg,rgba(101,201,164,.38),rgba(101,201,164,.05) 60%,transparent)}
.shared-world-head h2{letter-spacing:.2px}.shared-world-head p{color:#aeb7ae;font-size:13px}
.world-connection{min-height:40px;padding:8px 12px;background:rgba(2,12,15,.48)}
.world-local-actions-label{min-width:156px;padding-inline:16px}.world-local-actions-label b{font-size:10px}.world-local-actions-label small{font-size:9px;line-height:1.35}
.world-service-dock{gap:9px;padding:10px 14px}.world-service-button{grid-template-columns:42px minmax(0,1fr);min-height:62px;padding:9px 11px;border-color:rgba(142,174,160,.22);box-shadow:0 6px 14px rgba(0,0,0,.18)}
.world-service-button>span{width:34px;height:34px;font-size:18px}.world-service-button>b{font-size:12px}.world-service-button>small{color:#94a69e;font-size:9px}
.shared-world-layout{grid-template-columns:minmax(0,1fr) 300px}
.shared-world-stage.signed-out{cursor:default}.shared-world-stage.signed-out:after{box-shadow:inset 0 0 70px rgba(1,8,10,.66)}
.world-stage-state{position:absolute;z-index:5;top:12px;left:12px;display:flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid rgba(225,179,91,.3);border-radius:9px;background:rgba(4,14,17,.84);box-shadow:0 5px 16px rgba(0,0,0,.28);pointer-events:none;backdrop-filter:blur(7px)}
.world-stage-state:before{content:"◇";color:#e1b45d;font-size:13px}.world-stage-state.syncing:before{content:"◌";color:#72cfaa}.world-stage-state b{color:#e6d6b8;font-size:10px}.world-stage-state small{color:#94a097;font-size:9px}
.world-stage-hint{padding:6px 9px;background:rgba(2,10,13,.8);color:#d0d6ce;font-size:10px;letter-spacing:.25px;backdrop-filter:blur(6px)}
.shared-world-sidebar{padding:16px;background:linear-gradient(180deg,rgba(4,16,19,.78),rgba(2,10,13,.7))}.world-roster-head{padding-bottom:11px}.world-roster-head b{font-size:13px}.world-roster-head small{padding:3px 7px;border-radius:999px;background:rgba(73,161,125,.1);font-size:9px}
.world-presence-empty{padding:22px 12px;border-color:rgba(153,164,155,.2);background:rgba(255,255,255,.02)}.world-presence-empty b{font-size:12px}.world-presence-empty small{max-width:210px;margin:auto;color:#89918a;font-size:10px}
.world-movement-controls{margin-top:auto;padding-top:18px}.world-movement-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;padding:0 2px 9px;border-bottom:1px solid rgba(138,160,149,.12)}.world-movement-head b{color:#c8bdab;font-size:10px;text-transform:uppercase;letter-spacing:.8px}.world-movement-head small{color:#747e78;font-size:8px}
.world-movement-pad{grid-template-columns:repeat(3,48px);grid-template-rows:repeat(3,48px);gap:5px;margin:12px auto 0;padding:0}.world-movement-pad button{width:48px;height:48px;border-radius:13px}.world-movement-pad button:disabled{cursor:not-allowed;filter:saturate(.55);opacity:.42}.world-movement-pad .world-pad-center:disabled{opacity:.7}
.world-encounter-card.empty{min-height:92px;padding:15px 18px}.world-encounter-card.empty h3{font-size:19px}.world-encounter-card.empty p{font-size:11px;line-height:1.4}

@media(max-width:760px){
  .shared-world-head{padding:13px 12px}.shared-world-head p{font-size:11px}
  .world-local-actions-label{padding:8px 10px 1px}.world-service-dock{gap:7px;padding:8px}.world-service-button{grid-template-columns:35px minmax(0,1fr);min-height:54px;padding:7px 8px}.world-service-button>span{width:30px;height:30px}.world-service-button>b{font-size:10px}.world-service-button>small{font-size:8px}
  .world-stage-state{top:8px;left:8px;max-width:calc(100% - 16px);padding:6px 8px}.world-stage-state small{display:none}.world-stage-hint{max-width:calc(100% - 18px);overflow:hidden;font-size:8px;white-space:nowrap;text-overflow:ellipsis}
  .shared-world-sidebar{grid-template-columns:minmax(0,1fr) 158px;padding:11px}.world-movement-controls{grid-column:2;grid-row:1/3;align-self:center;margin:0;padding:0}.world-movement-head{display:grid;justify-content:center;padding:0 0 7px;text-align:center}.world-movement-head small{display:none}.world-movement-pad{grid-template-columns:repeat(3,46px);grid-template-rows:repeat(3,46px);gap:4px;margin:8px 0 0}.world-movement-pad button{width:46px;height:46px;border-radius:12px}
  .world-encounter-card.empty{min-height:0;padding:13px 11px}.world-encounter-card.empty p{font-size:10px}
}
@media(max-width:380px){
  .shared-world-sidebar{grid-template-columns:minmax(0,1fr) 142px}.world-movement-pad{grid-template-columns:repeat(3,42px);grid-template-rows:repeat(3,42px)}.world-movement-pad button{width:42px;height:42px}
}

/* Energy confirmation for outdoor activities. */
.activity-confirm-sheet{width:min(500px,calc(100vw - 36px))}.activity-energy-preview{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:10px;align-items:center;padding:13px;border:1px solid rgba(211,158,67,.3);border-radius:13px;background:linear-gradient(180deg,rgba(177,111,29,.1),rgba(3,13,16,.34))}.activity-energy-preview>span{display:grid;gap:3px;text-align:center}.activity-energy-preview small{color:#8f948d;font-size:9px;text-transform:uppercase;letter-spacing:.65px}.activity-energy-preview b{color:#f0d391;font:21px var(--font-title)}.activity-energy-preview>i{padding:6px 8px;border:1px solid rgba(211,158,67,.26);border-radius:999px;background:rgba(3,12,15,.55);color:#d7a94f;font-size:12px;font-style:normal;font-weight:800}.activity-confirm-note{margin:9px 0 0;color:#8c968e;font-size:10px;text-align:center}.activity-confirm-sheet .dungeon-entry-actions{grid-template-columns:120px minmax(0,1fr)}
@media(max-width:760px){.game:has(.activity-confirm-backdrop) .mobile-navigation{display:none!important}.activity-confirm-sheet{width:100%;max-width:none}.activity-energy-preview{padding:11px 8px}.activity-energy-preview b{font-size:18px}.activity-confirm-sheet .dungeon-entry-actions{grid-template-columns:90px minmax(0,1fr)}}

/* Class-specific basic attacks stay free; starter spells advertise Mana clearly. */
.combat-tabs-v25 button small{display:block;margin-top:3px;color:#8e9b95;font-size:8px;font-weight:600;line-height:1}.combat-tabs-v25 button:first-child{border-color:rgba(214,162,69,.45);background:linear-gradient(180deg,rgba(106,72,28,.22),#081116)}.combat-tabs-v25 button:first-child small{color:#72c89f}.v30-actor-card .combat-resource{margin-top:4px}
@media(min-width:1000px){.v30-action-console{grid-template-columns:230px minmax(0,1fr) 300px;gap:10px}.v30-skills{grid-template-columns:repeat(5,minmax(96px,1fr));gap:7px}.v30-skills .ability{min-height:96px;padding:8px 6px}.v30-skills .ability>span,.v30-skills .ability>b,.v30-skills .ability>small{display:block}.v30-skills .ability>span{font-size:22px;line-height:1}.v30-skills .ability>b{margin-top:5px;font-size:11px;line-height:1.15}.v30-skills .ability>small{margin-top:4px;font-size:9px;line-height:1.25}.v30-skills .ability>small:not(.subtle){display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.v30-combat-tabs button{padding:5px;font-size:10px;line-height:1.15}}

/* Crownward Inn, housing broker, and Guild Hall signup polish. */
.crownward-inn-scene{position:relative;overflow:hidden;background:#071116}.crownward-inn-scene>img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.inn-scene-hotspot{position:absolute;transform:translate(-50%,-50%);min-width:132px;padding:9px 12px;border:1px solid #e0ad54;border-radius:9px;background:rgba(5,13,16,.9);box-shadow:0 0 0 3px rgba(7,17,22,.7),0 4px 18px #000;color:#f5dfb4;text-align:center;cursor:pointer}.inn-scene-hotspot:hover,.inn-scene-hotspot:focus-visible{background:#17303a;box-shadow:0 0 0 3px rgba(224,173,84,.25),0 4px 22px #000}.inn-scene-hotspot span{display:block;color:#b8c9c7;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.inn-scene-hotspot b{display:block;color:#f0c873}.inn-scene-hotspot.barkeep{left:17%;top:42%}.inn-scene-hotspot.shady{left:91%;top:43%}.inn-service-strip{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:14px}.inn-service-strip h2,.inn-service-strip p{margin-bottom:4px}.inn-service-strip>div:last-child{display:flex;align-items:center;gap:12px;white-space:nowrap}.inn-npc-backdrop{z-index:90}.inn-npc-dialog{position:relative;display:grid;grid-template-columns:minmax(280px,.9fr) minmax(320px,1.1fr);gap:0;overflow:hidden;padding:0;max-width:960px}.inn-npc-dialog>img{width:100%;height:100%;min-height:500px;object-fit:cover;border-right:1px solid #68471f}.inn-npc-copy{padding:28px}.inn-npc-copy h2{margin:3px 0 12px;color:var(--gold2);font:34px var(--font-title)}.inn-greeting{font-size:17px;line-height:1.55;color:#eadcc6}.inn-dialog-close{position:absolute;right:12px;top:12px;z-index:2;width:38px;height:38px;border:1px solid #86602d;border-radius:50%;background:rgba(5,12,15,.9);color:#f5dfb4;font-size:25px;cursor:pointer}.inn-quest-offer{margin-top:20px;padding:18px;border:1px solid #4f3921;background:linear-gradient(180deg,#0c191d,#071014)}.inn-quest-offer.ready{border-color:#c89742;box-shadow:inset 0 0 24px rgba(210,159,68,.08)}.inn-quest-offer small{color:#d4aa61;text-transform:uppercase;letter-spacing:.08em}.inn-quest-offer h3{margin:5px 0 8px;color:#f0d49e;font:24px var(--font-title)}.inn-quest-progress{height:8px;margin:13px 0 6px;border:1px solid #3b3022;background:#030708}.inn-quest-progress span{display:block;height:100%;background:linear-gradient(90deg,#8c642b,#e2b85f)}.housing-broker-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.65fr);overflow:hidden;margin-bottom:16px}.housing-broker-hero img{width:100%;height:330px;object-fit:cover}.housing-broker-hero>div{display:flex;flex-direction:column;justify-content:center;padding:28px;background:linear-gradient(135deg,#102126,#071116)}.housing-broker-hero h2{margin:4px 0 10px;color:var(--gold2);font:30px var(--font-title)}.guild-registrar-art{display:block;height:260px;object-fit:cover;margin:-16px -16px 18px;width:calc(100% + 32px);border-bottom:1px solid #68471f}.inn-journal-panel{margin-bottom:16px}
@media(max-width:760px){.crownward-inn-scene>img{aspect-ratio:4/5;object-position:center}.inn-scene-hotspot{min-width:108px;padding:7px;font-size:12px}.inn-scene-hotspot.barkeep{left:20%;top:38%}.inn-scene-hotspot.shady{left:83%;top:39%}.inn-service-strip{align-items:flex-start;flex-direction:column}.inn-service-strip>div:last-child{width:100%;justify-content:space-between}.inn-npc-dialog{grid-template-columns:1fr;max-height:calc(100dvh - 95px)}.inn-npc-dialog>img{height:245px;min-height:0;border-right:0;border-bottom:1px solid #68471f;object-position:center 28%}.inn-npc-copy{padding:18px}.housing-broker-hero{grid-template-columns:1fr}.housing-broker-hero img{height:210px}.housing-broker-hero>div{padding:18px}.guild-registrar-art{height:190px}}
.inn-scene-hotspot.shady{left:auto;right:1.5%;transform:translateY(-50%)}
.guild-hall-entry-bar{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:16px;background:linear-gradient(100deg,#102126,#071116)}.guild-hall-entry-bar b{display:block;color:var(--gold2);font:26px var(--font-title)}.guild-hall-entry-bar small{display:block;color:var(--muted);margin-top:3px}
@media(max-width:760px){.inn-scene-hotspot.shady{left:auto;right:2%}}
