: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)}.rarity-Legendary{box-shadow:inset 0 0 0 2px rgba(255,139,47,.58),0 0 12px rgba(255,139,47,.16)}.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,.16)}.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)}.rarity-Legendary{box-shadow:inset 0 0 0 2px rgba(255,139,47,.58),0 0 12px rgba(255,139,47,.16)}.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-utilities{display:flex;align-items:center;gap:4px;margin-left:auto}
.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}
.party-invite-notification{display:grid;gap:9px;padding:11px;border:1px solid rgba(214,164,72,.38);border-radius:8px;background:linear-gradient(135deg,rgba(116,72,21,.18),rgba(6,16,19,.92));box-shadow:inset 3px 0 #c99843}.party-invite-notification>div{display:grid;gap:3px}.party-invite-notification b{color:#ead1a0;font-size:12px}.party-invite-notification small{color:#a58f70;font-size:10px}.party-invite-notification .party-invite-actions{display:grid;grid-template-columns:1fr 1fr}.party-invite-notification .btn{min-height:36px}
@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:visible}
.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{position:relative;display:inline-flex;align-items:center;gap:4px;border:1px solid #4b341b;padding:4px 7px;background:#121a1d;outline:none}
.craft-cost-chip.ok{color:#9be889}.craft-cost-chip.bad{color:#ff9b8c}
.craft-cost-chip:focus-visible{border-color:#d3a65c;box-shadow:0 0 0 2px rgba(211,166,92,.22)}
.craft-material-tooltip{position:absolute;left:50%;bottom:calc(100% + 9px);z-index:80;display:grid;gap:3px;width:max-content;max-width:min(260px,calc(100vw - 32px));padding:9px 11px;border:1px solid rgba(211,166,92,.55);border-radius:8px;background:#071116;color:#d8cdbb;box-shadow:0 8px 24px rgba(0,0,0,.65);font-size:12px;line-height:1.35;text-align:left;white-space:normal;opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,4px);transition:opacity .14s ease,transform .14s ease,visibility .14s ease}
.craft-material-tooltip::after{content:'';position:absolute;left:50%;top:100%;border:6px solid transparent;border-top-color:rgba(211,166,92,.7);transform:translateX(-50%)}
.craft-material-tooltip b{color:#f0d49a;font-family:var(--font-title);font-size:15px}.craft-material-tooltip small{color:#8f9b98;font-size:9px;letter-spacing:.7px;text-transform:uppercase}.craft-material-tooltip span{color:#c8c0b1}
.craft-cost-chip:hover .craft-material-tooltip,.craft-cost-chip:focus-visible .craft-material-tooltip{opacity:1;visibility:visible;transform:translate(-50%,0)}
.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}
}

/* Top-bar profession progress and protected resource sizing. */
.game:not(.game-combat) .topbar{overflow:visible}
.game:not(.game-combat) .brand{flex:0 1 clamp(185px,15vw,270px);min-width:165px}
.top-professions{display:flex;align-items:center;justify-content:center;flex:1 1 560px;min-width:0;gap:7px;overflow-x:auto;overflow-y:hidden;padding:3px 10px;scrollbar-width:none}
.top-professions::-webkit-scrollbar{display:none}
.top-profession-group{display:flex;align-items:center;gap:5px;flex:0 0 auto}
.top-profession-divider{width:39px;height:30px;flex:0 0 39px;background:none}
.top-profession-bubble{--profession-progress:0deg;--profession-color:#d5a23f;flex:0 0 auto;width:39px;height:39px;border-radius:50%;filter:drop-shadow(0 3px 5px rgba(0,0,0,.45))}
.top-profession-bubble.gathering{--profession-color:#62c98a}
.top-profession-ring{position:relative;width:100%;height:100%;padding:2px;border-radius:50%;display:block;background:conic-gradient(var(--profession-color) var(--profession-progress),#223038 0);box-shadow:0 0 0 1px #4c351c,inset 0 0 5px rgba(0,0,0,.7)}
.top-profession-ring:after{content:'';position:absolute;inset:3px;border-radius:50%;border:1px solid rgba(255,224,164,.18);pointer-events:none}
.top-profession-ring img{width:100%;height:100%;display:block;object-fit:cover;border:2px solid #071015;border-radius:50%;background:#081116}
.top-profession-ring b{position:absolute;right:-2px;bottom:-2px;min-width:17px;height:17px;padding:0 3px;display:grid;place-items:center;border:1px solid #98703a;border-radius:9px;background:#071015;color:#ffe4a3;font-size:9px;line-height:1;box-shadow:0 2px 5px #000}
.game:not(.game-combat) .resource-row{flex:0 0 auto;min-width:0;margin-left:0;gap:8px;overflow:visible}
.game:not(.game-combat) .resource-row>.resource,.game:not(.game-combat) .profile-menu-wrap{flex-shrink:0}
.game:not(.game-combat) .resource-control{justify-content:flex-start;color:var(--text);font:inherit;text-align:left;cursor:pointer}.game:not(.game-combat) .resource-control:hover,.game:not(.game-combat) .resource-control:focus-visible{border-color:#a97832;outline:none;box-shadow:inset 0 0 0 1px #26353a,0 0 12px rgba(213,162,63,.14)}.game:not(.game-combat) .resource-copy{display:grid;min-width:0}.game:not(.game-combat) .resource-copy .label,.game:not(.game-combat) .resource-copy .value{display:block}
@media(min-width:1121px){.game:not(.game-combat) .resource{width:128px;min-width:128px;padding-inline:11px}}
@media(min-width:761px) and (max-width:1120px){.game:not(.game-combat) .resource .plus{display:none}}
@media(min-width:761px) and (max-width:1250px){.top-professions{flex-basis:300px}.top-profession-bubble{width:34px;height:34px}.top-profession-divider{height:26px}.game:not(.game-combat) .brand{flex-basis:180px}}
@media(min-width:761px) and (max-width:920px){.top-professions{flex-basis:160px}.top-profession-bubble{width:31px;height:31px}.top-profession-ring b{min-width:15px;height:15px;font-size:8px}}
@media(max-width:760px){.top-professions{display:none}}

/* ========================= 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}
  .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{z-index:30;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(4,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}
}

/* 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}}

/* Every region keeps its area directory, including capitals with one mapped district today. */
.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: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}

  /* 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(4,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: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-materials.expanded .material-stock-list{max-height:50dvh;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:6px}
.craft-materials.expanded .material-stock-list:focus-visible{outline:1px solid var(--gold);outline-offset:3px}
.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)}
.craft-queue-stack{display:grid;gap:7px;margin:0 0 14px}.craft-queue-heading{display:flex;align-items:end;justify-content:space-between;padding:0 2px}.craft-queue-heading b{color:var(--gold2);font:17px var(--font-title)}.craft-queue-heading small{color:var(--muted)}.craft-queue-position{width:34px;height:34px;display:grid;place-items:center;border:1px solid rgba(190,138,61,.45);background:#111a1d;color:var(--gold2);font-weight:800}.craft-queue-stack .craft-job{grid-template-columns:40px 1fr auto;padding:9px 10px}.craft-batch-picker{display:flex;align-items:center;gap:5px;margin-top:8px}.craft-batch-picker>span{margin-right:3px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.craft-batch-picker button{width:28px;height:26px;padding:0;border:1px solid #4b341b;background:#10191c;color:#b9c0c4;cursor:pointer}.craft-batch-picker button:hover,.craft-batch-picker button.active{border-color:var(--gold);background:rgba(203,151,61,.16);color:var(--gold2)}

@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}
.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}

@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{padding:10px}.world-roster-head{padding:0 1px 7px}.world-presence-list{max-height:190px}.world-presence-row{grid-template-columns:34px minmax(0,1fr) auto;padding:6px}.world-presence-face{width:34px;height:34px}.world-presence-row i{display:none}
}
@media(max-width:380px){
  .shared-world-stage{height:276px}.shared-world-sidebar{padding:9px}.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-boss-abilities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:12px}.world-boss-abilities>span{display:grid;gap:2px;min-width:0;padding:7px 9px;border:1px solid rgba(210,151,61,.2);border-radius:9px;background:rgba(91,48,20,.13)}.world-boss-abilities b{color:#dcb774;font-size:9px}.world-boss-abilities small{overflow:hidden;color:#887d6f;font-size:8px;line-height:1.25;white-space:nowrap;text-overflow:ellipsis}
.staff-boss-roster{display:grid;gap:6px;margin:10px 0 12px}.staff-boss-roster>div{display:grid;gap:3px;padding:8px 10px;border:1px solid rgba(207,151,61,.17);border-radius:8px;background:rgba(255,255,255,.025)}.staff-boss-roster b{color:#d9c29b;font-size:11px}.staff-boss-roster small{color:#858077;font-size:9px}
.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-boss-abilities{grid-template-columns:1fr}.world-boss-abilities small{white-space:normal}.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-interact-player{min-width:58px;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-presence-row.interacting{border-color:rgba(211,159,70,.32);background:rgba(148,92,25,.08)}.world-player-actions{display:grid;grid-column:1/-1;grid-template-columns:1fr 1fr;gap:6px;padding-top:2px}.world-player-actions button{min-height:32px;border:1px solid rgba(131,173,157,.24);border-radius:8px;background:rgba(11,31,35,.88);color:#d7d0bf;font-size:9px;font-weight:800}.world-player-actions button:hover:not(:disabled){border-color:#d39f46;color:#f2cf86}.world-player-actions button: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-interact-player{min-width:50px;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(4,minmax(0,1fr))!important;gap:8px!important;max-width:760px;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}
  .craft-materials.expanded{display:flex;flex-direction:column;max-height:calc(100dvh - 242px);overflow:hidden}
  .craft-materials.expanded .craft-section-bar,.craft-materials.expanded>.btn,.craft-materials.expanded>p{flex:0 0 auto}
  .craft-materials.expanded .material-stock-list{flex:1 1 auto;min-height:120px;max-height:none}
  .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-path-identity{display:flex;align-items:center;gap:10px}.talent-path-icon{display:grid;width:38px;height:38px;place-items:center;border:1px solid rgba(213,159,65,.38);border-radius:50%;background:radial-gradient(circle,rgba(190,126,34,.2),rgba(7,18,22,.35));color:#efc96f;font-size:18px;box-shadow:inset 0 0 0 3px rgba(3,11,14,.7)}
.talent-tree{display:grid;gap:9px}.talent-tier{position:relative;display:grid;grid-template-columns:58px minmax(0,1fr);gap:8px;align-items:stretch}.talent-tier+.talent-tier:before{content:"";position:absolute;top:-10px;left:87px;right:22px;height:10px;background:linear-gradient(90deg,transparent,rgba(193,139,53,.32) 20%,rgba(193,139,53,.32) 80%,transparent);clip-path:polygon(49.5% 0,50.5% 0,50.5% 45%,100% 45%,100% 55%,0 55%,0 45%,49.5% 45%)}
.talent-tier-label{display:grid;align-content:center;justify-items:center;padding:7px 4px;border:1px solid rgba(151,104,43,.2);border-radius:9px;background:rgba(0,0,0,.14);color:#817564;text-align:center}.talent-tier-label small{font-size:7px;letter-spacing:.8px}.talent-tier-label b{margin-top:3px;color:#bca274;font-size:9px}.talent-tier-nodes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.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-node-copy>em{color:#877c6d;font-size:8px;font-style:normal}.talent-node.active .talent-node-copy>em{color:#68b989}
.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}
.ability.talent-modified{border-color:rgba(111,196,145,.48);box-shadow:inset 0 0 18px rgba(55,145,95,.07)}.ability-talent-note{color:#79d29a!important;font-size:8px!important;font-weight:700;letter-spacing:.25px}

@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}
  .talent-tier{grid-template-columns:42px minmax(0,1fr);gap:6px}.talent-tier-nodes{grid-template-columns:1fr}.talent-tier+.talent-tier:before{left:62px}.talent-tier-label b{font-size:8px}.talent-node{grid-template-columns:40px minmax(0,1fr) 34px!important;min-height:96px!important}
}

/* 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-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{padding:11px}
  .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{padding:9px}
}

/* 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%)}
.inn-npc-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0}.inn-npc-tabs button{padding:11px;border:1px solid #4f3921;background:#071014;color:#c7d2cf;cursor:pointer}.inn-npc-tabs button.active{border-color:#c89742;background:#17242a;color:#f0d49e}.inn-npc-tabs span{display:block;margin-top:3px;color:#d4aa61;font-size:11px}.inn-barkeep-rest{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:14px;padding:16px;border:1px solid #4f3921;background:linear-gradient(180deg,#101d20,#081114)}.inn-barkeep-rest small,.inn-black-market small{color:#d4aa61;text-transform:uppercase;letter-spacing:.08em}.inn-barkeep-rest h3,.inn-black-market h3{margin:4px 0 7px;color:#f0d49e;font:22px var(--font-title)}.inn-barkeep-rest p{margin:0;color:#b8c9c7}.inn-barkeep-rest>div:last-child{display:grid;gap:7px;text-align:right;white-space:nowrap}.inn-barkeep-rest b{color:var(--gold2)}.inn-black-market{margin-top:14px}.inn-market-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding-bottom:12px;border-bottom:1px solid #4f3921}.inn-market-head p{margin:0;color:#b8c9c7}.inn-favor-balance{padding:8px 10px;border:1px solid #77582d;background:#10191b;color:#f0c873;white-space:nowrap}.inn-market-grid{display:grid;gap:8px;margin-top:12px}.inn-market-item{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px;border:1px solid #364044;background:#071014}.inn-market-item-art{width:46px;height:46px;object-fit:contain}.inn-market-item span{display:grid;gap:3px}.inn-market-item small{font-size:10px}.inn-market-item .btn{min-width:72px}
.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}
.guild-bank-deposit-panel{margin-bottom:16px;background:linear-gradient(115deg,rgba(69,48,20,.94),rgba(12,24,27,.97));border-color:rgba(210,166,78,.34)}
.guild-bank-deposit-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.guild-bank-deposit-head .panel-title{margin-bottom:5px}.guild-bank-deposit-head p{margin-top:0}
.guild-bank-deposit-balances{display:flex;gap:10px;flex-wrap:wrap}.guild-bank-deposit-balances span{min-width:130px;padding:9px 12px;border:1px solid rgba(210,166,78,.25);border-radius:8px;background:rgba(0,0,0,.2)}.guild-bank-deposit-balances small,.guild-bank-deposit-balances b{display:block}.guild-bank-deposit-balances small{color:var(--muted);margin-bottom:2px}.guild-bank-deposit-balances b{color:var(--gold2)}
.guild-bank-deposit-form{display:grid;grid-template-columns:auto minmax(140px,260px) auto;align-items:center;gap:10px;margin-top:14px}.guild-bank-deposit-form label{font-weight:700}.guild-bank-deposit-form .auth-text-input{margin:0}
@media(max-width:760px){.guild-bank-deposit-head{display:block}.guild-bank-deposit-balances{margin-top:12px}.guild-bank-deposit-balances span{flex:1}.guild-bank-deposit-form{grid-template-columns:1fr}.guild-bank-deposit-form .btn{width:100%}}
@media(max-width:760px){.inn-scene-hotspot.shady{left:auto;right:2%}.inn-barkeep-rest,.inn-market-head{align-items:stretch;flex-direction:column}.inn-barkeep-rest>div:last-child{width:100%;grid-template-columns:1fr 1fr;align-items:center;text-align:left}.inn-favor-balance{align-self:flex-start}.inn-market-item{grid-template-columns:42px minmax(0,1fr);}.inn-market-item-art{width:40px;height:40px}.inn-market-item .btn{grid-column:1/-1;width:100%}}

/* Home dashboard relevance pass */
.home-dashboard{display:grid;gap:16px}.home-dashboard-head{margin-bottom:0}.home-eyebrow{margin:0 0 5px;color:#c79a54;font:12px var(--font-title);letter-spacing:2px;text-transform:uppercase}.home-journey-hero{min-height:330px;background-position:center;background-size:cover;display:flex;align-items:flex-end;justify-content:space-between;gap:28px;padding:30px;overflow:hidden}.home-journey-copy{max-width:650px}.home-journey-copy h2{margin:0;color:#f0d18e;font:42px var(--font-title);letter-spacing:1px;text-shadow:0 3px 8px #000}.home-journey-copy>p:not(.home-eyebrow){max-width:620px;color:#eee0c9;line-height:1.55;text-shadow:0 2px 5px #000}.home-zone-meta,.home-hero-actions{display:flex;flex-wrap:wrap;gap:9px}.home-zone-meta span{border:1px solid rgba(200,151,72,.48);background:rgba(3,9,12,.78);padding:6px 10px;color:#e0cba6;font-size:12px}.home-hero-actions{margin-top:20px}.home-local-summary{width:min(330px,36%);align-self:flex-end;border:1px solid rgba(191,139,59,.55);background:rgba(3,9,12,.88);padding:15px}.home-local-summary small,.home-local-summary span{display:block;color:var(--muted)}.home-local-summary b{display:block;margin:6px 0 8px;color:#edce8d;line-height:1.45}.home-dashboard-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.home-dashboard-link{min-width:0;border:1px solid #47301b;background:linear-gradient(180deg,#0d171c,#070e12);color:var(--text);padding:14px;display:grid;grid-template-columns:46px minmax(0,1fr) 16px;gap:11px;align-items:center;text-align:left}.home-dashboard-link:hover,.home-dashboard-link.ready{border-color:#b17b30;background:linear-gradient(180deg,#171a17,#090f12)}.home-dashboard-link>span:nth-child(2){min-width:0}.home-dashboard-link small,.home-dashboard-link b,.home-dashboard-link em{display:block;overflow:hidden;text-overflow:ellipsis}.home-dashboard-link small{color:#b89d72;font:11px var(--font-title);letter-spacing:1px}.home-dashboard-link b{color:#f1d18b;font-size:17px;margin:3px 0}.home-dashboard-link em{color:var(--muted);font-size:11px;font-style:normal;white-space:nowrap}.home-dashboard-link>i,.home-attention-row>i{color:#c79a54;font-style:normal;font-size:22px}.home-dashboard-icon{width:44px;height:44px;border:1px solid #61431f;background:#081116;display:grid!important;place-items:center;font-size:22px}.home-dashboard-main{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr);gap:16px}.home-section-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:10px}.home-section-head .panel-title{margin:0}.home-attention-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.home-attention-row{border:1px solid #3f2a18;background:#081116;color:var(--text);display:grid;grid-template-columns:38px 1fr 18px;gap:10px;align-items:center;text-align:left;padding:12px}.home-attention-row.ready{border-color:#a8752f;box-shadow:inset 3px 0 #d3a048}.home-attention-row>span:first-child{font-size:22px}.home-attention-row b,.home-attention-row small{display:block}.home-attention-row b{color:#ead4aa}.home-attention-row small{color:var(--muted);margin-top:3px}.home-readiness .status-row{margin:11px 0}.home-xp-row{border-top:1px solid #302315;margin-top:14px;padding-top:14px}.home-xp-row>span{display:flex;justify-content:space-between;gap:12px;color:#dac7a6}.home-xp-row small{color:var(--muted)}.home-xp-row .bar{margin-top:8px}.home-account-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:0!important}.home-account-strip>div{display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto auto auto;column-gap:8px;padding:16px;border-right:1px solid #342516}.home-account-strip>div:last-child{border-right:0}.home-account-strip>div>span{grid-row:1/3;font-size:24px}.home-account-strip small{color:#a98b60;font:10px var(--font-title);letter-spacing:1px}.home-account-strip b{color:#e9cf99;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-account-strip button{grid-column:2;border:0;background:none;color:#8ebbd3;text-align:left;padding:7px 0 0;cursor:pointer}
@media(max-width:1200px){.home-dashboard-links{grid-template-columns:1fr 1fr}.home-dashboard-main{grid-template-columns:1fr}.home-account-strip{grid-template-columns:1fr 1fr}.home-account-strip>div:nth-child(2){border-right:0}.home-account-strip>div:nth-child(-n+2){border-bottom:1px solid #342516}}
@media(max-width:720px){.home-dashboard{gap:12px}.home-journey-hero{min-height:410px;display:block;padding:20px;background-position:62% center!important}.home-journey-copy h2{font-size:34px}.home-local-summary{width:auto;margin-top:20px}.home-dashboard-links,.home-attention-list,.home-account-strip{grid-template-columns:1fr}.home-account-strip>div{border-right:0!important;border-bottom:1px solid #342516!important}.home-account-strip>div:last-child{border-bottom:0!important}.home-section-head{align-items:flex-start}.home-section-head>.small{display:none}.home-dashboard-link em{white-space:normal}}

/* Favor currency art */
.currency-icon,.favor-currency-icon,.favor-price-icon{display:inline-block;width:20px;height:20px;object-fit:contain;vertical-align:middle;filter:drop-shadow(0 1px 3px rgba(0,0,0,.75))}.favor-currency-icon{width:27px;height:27px}.favor-price-icon{width:18px;height:18px;margin-right:3px}.favor-reward{display:inline-flex;align-items:center;gap:3px;color:#d6b3ef}.reward-separator{color:#766a5b;font-style:normal}.inn-favor-balance{display:inline-flex;align-items:center;gap:5px}.inn-npc-tabs span{display:flex;align-items:center;justify-content:center;gap:3px}.inn-market-item .btn{display:inline-flex;align-items:center;justify-content:center}
.hud-resource-icon{display:block;width:26px;height:26px;object-fit:contain;filter:drop-shadow(0 1px 4px rgba(0,0,0,.7))}.mobile-hud .hud-resource-icon{width:18px;height:18px}.mobile-hud button span:has(.hud-resource-icon){display:grid;place-items:center}
.ui-glyph{display:inline-grid;width:1.12em;height:1.12em;min-width:1.12em;place-items:center;vertical-align:-.16em;line-height:1}.ui-glyph>svg,.ui-glyph>img{display:block;width:100%;height:100%;object-fit:contain}.ui-glyph>svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.65))}.iconbox>.ui-glyph,.timer-icon>.ui-glyph,.summary-icon>.ui-glyph{width:1em;height:1em;min-width:1em}.btn>.ui-glyph,.top-nav-icon>.ui-glyph{margin-right:.18em}.mobile-hud .ui-glyph{vertical-align:middle}

/* Short-screen Inn dialog: portrait stays visible while services scroll independently. */
.inn-npc-dialog{height:min(760px,calc(100dvh - 40px));max-height:calc(100dvh - 40px);overflow:hidden}.inn-npc-dialog>img{min-height:0}.inn-npc-copy{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#9a6b31 #071014}.inn-npc-copy::-webkit-scrollbar{width:9px}.inn-npc-copy::-webkit-scrollbar-track{background:#071014}.inn-npc-copy::-webkit-scrollbar-thumb{border:2px solid #071014;border-radius:8px;background:#9a6b31}.inn-scroll-end{display:none}
@media(max-width:760px){.inn-npc-backdrop{padding:10px;align-items:center;overflow:hidden}.inn-npc-dialog{width:100%;height:calc(100dvh - 20px);max-height:calc(100dvh - 20px);grid-template-rows:clamp(125px,27dvh,220px) minmax(0,1fr)}.inn-npc-dialog>img{width:100%;height:100%;min-height:0;object-position:center 24%}.inn-npc-copy{height:100%;padding:16px 16px calc(28px + env(safe-area-inset-bottom));scroll-padding-bottom:24px;-webkit-overflow-scrolling:touch}.inn-npc-copy:focus-visible{outline:2px solid #c89742;outline-offset:-3px}.inn-scroll-end{display:block;margin:18px 0 0;padding-top:10px;border-top:1px solid #4f3921;color:#857a69;font-size:9px;text-align:center;text-transform:uppercase;letter-spacing:.12em}}
@media(max-width:760px) and (max-height:620px){.inn-npc-dialog{grid-template-rows:110px minmax(0,1fr)}.inn-npc-copy{padding-top:12px}.inn-npc-copy h2{font-size:27px;margin-bottom:6px}.inn-greeting{font-size:14px;line-height:1.35}.inn-npc-tabs{margin:12px 0}.inn-market-item{padding:7px}}
@media(max-width:900px) and (orientation:landscape) and (max-height:560px){.inn-npc-dialog{grid-template-columns:minmax(180px,.55fr) minmax(0,1.45fr);grid-template-rows:1fr;height:calc(100dvh - 16px);max-height:calc(100dvh - 16px)}.inn-npc-dialog>img{height:100%;min-height:0;border-right:1px solid #68471f;border-bottom:0}.inn-npc-copy{height:100%;overflow-y:auto}}

/* Compact production shell — first conversion pass. */
.game:not(.game-combat){grid-template-rows:66px auto minmax(0,1fr) 52px}
.game:not(.game-combat) .topbar{min-height:66px;padding:6px 20px;gap:14px}
.game:not(.game-combat) .brand{min-width:260px;gap:11px}.game:not(.game-combat) .brand-icon{width:42px;height:42px;font-size:21px}.game:not(.game-combat) .brand-title{font-size:29px;letter-spacing:.8px}.game:not(.game-combat) .brand-sub{font-size:9px}
.game:not(.game-combat) .resource-row{gap:6px}.game:not(.game-combat) .resource{min-width:108px;height:48px;padding:6px 8px;gap:7px}.game:not(.game-combat) .resource .ico{font-size:20px}.game:not(.game-combat) .resource .label{font-size:10px}.game:not(.game-combat) .resource .value{font-size:14px}.game:not(.game-combat) .resource .plus{width:26px;height:26px;font-size:17px}.game:not(.game-combat) .profile-pill{min-width:238px;height:48px}.game:not(.game-combat) .mini-avatar{width:38px;height:38px}.game:not(.game-combat) .profile-name{font-size:15px}.game:not(.game-combat) .profile-sub{font-size:10px}
.game:not(.game-combat) .top-navigation{padding:5px 18px}.game:not(.game-combat) .top-nav-actions{max-width:820px;gap:6px}.game:not(.game-combat) .top-nav-btn{height:38px;min-height:38px;font-size:13px}
.game:not(.game-combat) .content{padding:16px 20px 20px}.game:not(.game-combat) .bottombar{min-height:52px;padding:0 20px;gap:16px}.game:not(.game-combat) .bottombar .motd{margin-right:auto}.game:not(.game-combat) .footer-utilities .footer-ico{margin-left:0}
.region-hub.has-live-area:has(.compact-world) .region-current-layout{display:none!important}.region-hub.needs-travel:has(.compact-world) .region-current-layout{display:grid!important}.region-hub:has(.compact-world) .region-area-picker{padding:11px 12px}.region-hub:has(.compact-world) .region-area-picker .region-section-heading{margin-bottom:8px}.region-hub:has(.compact-world) .region-area-picker .zone-strip{gap:7px}.region-hub:has(.compact-world) .region-area-picker .zone-chip{min-height:76px}.region-hub:has(.compact-world) .region-mobile-play{gap:0}
.region-hub.has-live-area .region-area-picker,.region-hub.needs-travel .region-area-picker{display:block!important}
.region-hub.has-live-area .region-current-layout{display:none!important}
.region-hub.needs-travel .region-current-layout{display:grid!important}
.region-hub.needs-travel .region-current-details{display:flex!important}

/* Server-authoritative GM and developer console */
.staff-console-head>div:last-child{display:flex;align-items:center;gap:8px}.staff-console-layout{display:grid;grid-template-columns:minmax(250px,320px) minmax(0,1fr);gap:12px}.staff-player-directory{align-self:start;max-height:min(70dvh,720px);overflow:auto}.staff-player-directory>header{position:sticky;z-index:2;top:0;padding:12px;border-bottom:1px solid var(--line);background:#09171c}.staff-player-directory>header small,.staff-player-directory>header b{display:block}.staff-player-directory>header small,.staff-card-heading small{color:var(--gold);font-size:8px;font-weight:800;letter-spacing:1px}.staff-player-directory>div{display:grid;gap:5px;padding:7px}.staff-player-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:7px;align-items:center;min-height:58px;padding:8px;border:1px solid transparent;background:#081419;color:var(--text);text-align:left}.staff-player-row:hover,.staff-player-row.active{border-color:#86602d;background:#102127}.staff-player-row b,.staff-player-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.staff-player-row small{margin-top:3px;color:var(--muted);font-size:9px}.staff-player-row em{color:var(--gold2);font-size:9px;font-style:normal}.staff-tools{display:grid;gap:12px;min-width:0}.staff-tool-card{margin:0!important}.staff-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.staff-form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.staff-form-grid label,.staff-role-editor label{display:grid;gap:5px;color:var(--muted);font-size:9px}.staff-form-grid input,.staff-form-grid select,.staff-inline-form input,.staff-inline-form select,.staff-role-editor select{width:100%;min-width:0;height:38px;padding:7px 9px;border:1px solid #49351f;background:#071216;color:var(--text)}.staff-inline-form{display:grid;grid-template-columns:minmax(0,1fr) 82px auto;gap:8px}.staff-action-row{display:flex;flex-wrap:wrap;gap:7px}.staff-action-row .btn.warn{border-color:#8e3d37;color:#ffb0a7}.staff-card-heading{display:flex;align-items:start;justify-content:space-between;gap:12px}.developer-only{border-color:#52629a!important;box-shadow:inset 3px 0 #5568ae}.staff-role-editor{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.08)}.staff-audit-list{display:grid;max-height:230px;overflow:auto}.staff-audit-row{display:grid;gap:3px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.06)}.staff-audit-row small{color:var(--muted);font-size:9px}
.staff-role{padding:3px 6px;border:1px solid #5d4930;border-radius:999px;background:#111b1d}.staff-role.role-vip{border-color:#6554a8;color:#c6b9ff}.staff-role.role-moderator{border-color:#367b7a;color:#7ee0d8}.staff-role.role-gm{border-color:#927034;color:#f3c86b}.staff-role.role-developer{border-color:#5269ac;color:#9db5ff}.staff-role.role-head-gm{border-color:#8a477c;color:#efa4df}.staff-role.role-owner{border-color:#b45646;color:#ffb09d;box-shadow:0 0 10px rgba(180,86,70,.2)}.staff-permission-note{margin:9px 0;padding:8px 10px;border:1px solid #684238;background:#251615;color:#ffb8aa;font-size:12px}.staff-tool-card button:disabled,.staff-tool-card select:disabled{cursor:not-allowed;opacity:.48}
@media(max-width:760px){.staff-console-head{align-items:flex-start}.staff-console-layout{grid-template-columns:1fr}.staff-player-directory{max-height:230px}.staff-form-grid,.staff-form-grid.three{grid-template-columns:1fr}.staff-inline-form{grid-template-columns:minmax(0,1fr) 70px}.staff-inline-form .btn{grid-column:1/-1}.staff-role-editor{grid-template-columns:1fr}.staff-action-row .btn{flex:1 1 90px}}
.compact-world{overflow:hidden;border-color:#68491f;box-shadow:0 18px 42px rgba(0,0,0,.34)}.compact-world .shared-world-head{padding:12px 15px;background:linear-gradient(90deg,rgba(40,73,74,.2),rgba(4,14,17,.82))}.compact-world .shared-world-head h2{margin:1px 0 2px;font-size:25px}.compact-world .shared-world-head p{margin:0;font-size:11px}.compact-world .world-connection{min-height:34px;padding:6px 9px}.compact-world .shared-world-layout{grid-template-columns:minmax(0,1fr) 280px}.compact-world .shared-world-stage{height:clamp(430px,53vh,610px);border-right-color:#49341e}.compact-world .shared-world-sidebar{display:flex;padding:0;background:linear-gradient(180deg,#0a191d,#051014)}
.world-area-summary{border-bottom:1px solid #49341e}.world-area-summary>header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;border-bottom:1px solid rgba(95,67,37,.52)}.world-area-summary header small,.world-area-summary header b{display:block}.world-area-summary header small{color:#c79748;font-size:8px;font-weight:800;letter-spacing:1px}.world-area-summary header b{margin-top:2px;color:#ead5ac;font-size:13px}.world-area-summary header em{padding:4px 7px;border:1px solid #46664f;color:#7ed49a;font-size:8px;font-style:normal;text-transform:uppercase;letter-spacing:.5px}.world-area-summary dl{margin:0;padding:7px 12px}.world-area-summary dl>div{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.045)}.world-area-summary dl>div:last-child{border-bottom:0}.world-area-summary dt{color:#7e8984;font-size:9px}.world-area-summary dd{margin:0;color:#d8c8aa;font-size:9px}
.world-nearby{display:flex;min-height:0;flex:1;flex-direction:column;padding:11px 12px}.world-nearby .world-roster-head{padding:0 0 9px}.world-nearby .world-presence-list{max-height:none}.world-interaction-note{margin:0 12px 12px;padding:10px;border:1px solid #40301f;background:#071317}.world-interaction-note b,.world-interaction-note small{display:block}.world-interaction-note b{color:#e0c180;font-size:10px}.world-interaction-note small{margin-top:3px;color:#858f89;font-size:9px;line-height:1.35}
.compact-world>.world-local-actions{border-top:1px solid #68491f;border-bottom:0;background:#071216}.compact-world>.world-local-actions .world-local-actions-label{min-width:150px}.compact-world>.world-local-actions .world-service-dock{grid-auto-columns:minmax(128px,1fr)}.compact-world>.world-inline-service{border-top:1px solid #68491f;border-bottom:0}.compact-world .world-service-button{min-height:58px;border-radius:2px}.compact-world .world-stage-hint{border-radius:2px}
.mobile-chat-launch{display:none}
@media(max-width:1250px){.game:not(.game-combat) .brand{min-width:220px}.game:not(.game-combat) .brand-title{font-size:25px}.game:not(.game-combat) .resource{min-width:92px}.game:not(.game-combat) .profile-pill{min-width:210px}.compact-world .shared-world-layout{grid-template-columns:minmax(0,1fr) 260px}}
@media(max-width:760px){
  .game:not(.game-combat){display:block;min-height:100dvh;padding-bottom:74px}.game:not(.game-combat) .topbar{min-height:58px;padding:7px 12px}.game:not(.game-combat) .brand{min-width:0}.game:not(.game-combat) .brand-title{font-size:19px}.game:not(.game-combat) .brand-icon,.game:not(.game-combat) .brand-sub{display:none}.game:not(.game-combat) .profile-pill{min-width:48px;width:48px;height:44px;padding:4px}.game:not(.game-combat) .profile-pill>div:not(.mini-avatar),.game:not(.game-combat) .profile-chevron{display:none}.game:not(.game-combat) .mini-avatar{width:36px;height:36px}.game:not(.game-combat) .content{padding:10px 9px 18px}
  .region-hub:has(.compact-world) .region-area-picker{padding:10px}.region-hub:has(.compact-world) .region-area-picker .zone-chip{min-height:70px}.compact-world .shared-world-head{padding:11px}.compact-world .shared-world-head h2{font-size:21px}.compact-world .shared-world-head p{font-size:10px}.compact-world .shared-world-layout{display:block}.compact-world .shared-world-stage{height:clamp(300px,55dvh,480px);border-right:0;border-bottom:1px solid #49341e}.compact-world .shared-world-sidebar{display:block}.world-area-summary dl{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.world-area-summary dl>div{display:grid;gap:2px;padding:7px;border:1px solid rgba(95,67,37,.38)}.world-nearby .world-presence-list{max-height:210px}.world-interaction-note{margin-top:0}.compact-world>.world-local-actions{display:block}.compact-world>.world-local-actions .world-local-actions-label{min-width:0;padding:8px 9px 1px;border-right:0}.compact-world>.world-local-actions .world-service-dock{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}.compact-world>.world-local-actions .world-service-button{flex:0 0 132px;scroll-snap-align:start}
  .mobile-navigation{grid-template-columns:repeat(4,1fr)!important}.mobile-chat-launch{position:fixed;z-index:54;right:12px;bottom:84px;display:grid;place-items:center;width:46px;height:46px;border:1px solid #8f632c;border-radius:50%;background:#0b191e;color:#f0cf8f;box-shadow:0 8px 24px rgba(0,0,0,.55)}.mobile-chat-launch.active{border-color:#d5a23f;background:#33230f}.mobile-chat-launch .mobile-nav-badge{position:absolute;right:-3px;top:-4px}.game:has(.chat-panel) .mobile-chat-launch{display:none}
  .game:not(.game-combat) .bottombar{display:flex!important;position:fixed;z-index:53;left:auto;right:68px;bottom:84px;width:auto;min-height:46px;padding:2px 4px;gap:0;border:1px solid #5a3d22;background:#071217;box-shadow:0 8px 24px rgba(0,0,0,.5)}
  .game:not(.game-combat) .bottombar>.chat-pill,.game:not(.game-combat) .bottombar>.motd{display:none!important}
  .game:not(.game-combat) .footer-utilities{gap:0;margin:0}.game:not(.game-combat) .footer-ico{width:40px;min-width:40px;height:40px;padding:5px}
  .game:has(.quick-panel) .bottombar{display:none!important}
}

/* Fluid viewport resilience — keeps browser zoom and uncommon aspect ratios usable. */
html{min-width:0;text-size-adjust:100%;-webkit-text-size-adjust:100%}
body{min-width:0;overflow:hidden}
.game:not(.game-combat){width:min(100%,1920px);height:100dvh;min-height:100dvh;grid-template-rows:auto auto minmax(0,1fr) auto;margin-inline:auto}
.game:not(.game-combat) .topbar{padding-inline:clamp(10px,1.35vw,22px);gap:clamp(6px,1vw,14px)}
.game:not(.game-combat) .brand{flex:1 1 210px;min-width:190px}
.game:not(.game-combat) .brand-title{font-size:clamp(21px,1.8vw,29px);white-space:nowrap}
.game:not(.game-combat) .resource-row{min-width:0;flex:0 1 auto;gap:clamp(3px,.45vw,7px)}
.game:not(.game-combat) .resource{flex:0 1 118px;width:clamp(82px,7.4vw,118px);min-width:82px;padding-inline:clamp(5px,.55vw,8px);gap:clamp(4px,.45vw,7px)}
.game:not(.game-combat) .resource .value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.game:not(.game-combat) .profile-pill{width:clamp(176px,15vw,238px);min-width:176px}
.game:not(.game-combat) .profile-pill>div:not(.mini-avatar){min-width:0}.game:not(.game-combat) .profile-name,.game:not(.game-combat) .profile-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.game:not(.game-combat) .top-navigation{padding-inline:clamp(8px,1.25vw,18px)}
.game:not(.game-combat) .top-nav-actions{width:min(100%,820px)}
.game:not(.game-combat) .top-nav-btn{min-width:0;padding-inline:clamp(7px,1vw,14px)}
.game:not(.game-combat) .content{width:100%;min-width:0;max-width:none;padding:clamp(10px,1.25vw,20px);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.game:not(.game-combat) .bottombar{padding-inline:clamp(10px,1.35vw,20px)}
.region-hub-head .page-title{font-size:clamp(25px,2.2vw,34px)}
.compact-world .shared-world-stage{height:clamp(330px,min(53dvh,52vw),610px)}
.compact-world .shared-world-layout,.compact-world .shared-world-stage,.compact-world .shared-world-sidebar{min-width:0}
.compact-world .world-landmark{min-width:clamp(76px,7vw,96px)}
.compact-world .world-landmark>b{font-size:clamp(8px,.72vw,10px)}

@media(min-width:761px) and (max-width:1120px){
  .game:not(.game-combat) .topbar{min-height:58px;padding-block:5px}
  .game:not(.game-combat) .brand{flex-basis:170px;min-width:150px;gap:7px}.game:not(.game-combat) .brand-icon{width:34px;height:34px;font-size:17px}.game:not(.game-combat) .brand-sub{display:none}
  .game:not(.game-combat) .resource{width:clamp(62px,7.7vw,86px);min-width:62px;height:42px}.game:not(.game-combat) .resource .label{display:none}.game:not(.game-combat) .resource .ico{font-size:17px}.game:not(.game-combat) .resource .value{font-size:12px}.game:not(.game-combat) .resource .plus{width:22px;height:22px;font-size:14px}
  .game:not(.game-combat) .profile-pill{width:clamp(146px,17vw,188px);min-width:146px;height:42px}.game:not(.game-combat) .mini-avatar{width:32px;height:32px}.game:not(.game-combat) .profile-name{font-size:12px}.game:not(.game-combat) .profile-sub{font-size:8px}
  .game:not(.game-combat) .top-navigation{padding-block:4px}.game:not(.game-combat) .top-nav-btn{height:36px;min-height:36px;font-size:12px}
  .compact-world .shared-world-layout{grid-template-columns:minmax(0,1fr) clamp(220px,25vw,260px)}
  .compact-world .shared-world-stage{height:clamp(330px,min(50dvh,52vw),500px)}
}

@media(min-width:761px) and (max-width:880px){
  .game:not(.game-combat) .brand{min-width:125px}.game:not(.game-combat) .brand-icon{display:none}.game:not(.game-combat) .brand-title{font-size:18px}
  .game:not(.game-combat) .resource{width:58px;min-width:58px;padding-inline:4px}.game:not(.game-combat) .resource .plus{display:none}
  .game:not(.game-combat) .profile-pill{width:46px;min-width:46px;padding:4px}.game:not(.game-combat) .profile-pill>div:not(.mini-avatar),.game:not(.game-combat) .profile-chevron{display:none}
  .compact-world .shared-world-layout{display:block}.compact-world .shared-world-stage{height:clamp(320px,min(52dvh,64vw),470px);border-right:0;border-bottom:1px solid #49341e}
  .compact-world .shared-world-sidebar{display:grid;grid-template-columns:minmax(210px,.7fr) minmax(0,1.3fr)}.compact-world .world-interaction-note{grid-column:1/-1}
  .world-nearby .world-presence-list{max-height:190px}
}

@media(max-width:760px){
  body{overflow:hidden}
  .game:not(.game-combat){width:100%;height:100dvh;min-height:100dvh;margin:0;padding-bottom:74px}
  .game:not(.game-combat) .topbar{padding:7px max(10px,env(safe-area-inset-left))}.game:not(.game-combat) .brand{flex:1 1 auto;min-width:0}.game:not(.game-combat) .brand-title{font-size:clamp(17px,5vw,20px)}
  .game:not(.game-combat) .content{height:calc(100dvh - 58px);padding:10px max(8px,env(safe-area-inset-right)) calc(88px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));overflow-y:auto;scrollbar-gutter:auto}
  .region-hub-head .page-title{font-size:clamp(23px,7vw,28px)}
  .compact-world .shared-world-stage{height:clamp(290px,min(56dvh,118vw),470px)}
  .compact-world .world-landmark{min-width:72px}.compact-world .world-landmark>b{max-width:102px;font-size:9px}.compact-world .world-landmark>em{font-size:6px}
}

@media(max-width:1100px) and (max-height:620px) and (orientation:landscape){
  .game:not(.game-combat) .topbar{min-height:48px}.game:not(.game-combat) .brand-title{font-size:18px}.game:not(.game-combat) .brand-icon,.game:not(.game-combat) .brand-sub,.game:not(.game-combat) .profile-sub{display:none}
  .game:not(.game-combat) .top-nav-btn{height:32px;min-height:32px}.game:not(.game-combat) .bottombar{min-height:42px}
  .compact-world .shared-world-layout{display:block}.compact-world .shared-world-stage{height:clamp(250px,64dvh,370px);border-right:0;border-bottom:1px solid #49341e}.compact-world .shared-world-sidebar{display:grid;grid-template-columns:minmax(200px,.7fr) minmax(0,1.3fr)}.compact-world .world-interaction-note{grid-column:1/-1}
}

/* Compact vertical rhythm — favor complete primary interactions before page scrolling. */
.game:not(.game-combat) .topbar{min-height:60px;padding-block:4px}.game:not(.game-combat) .brand-icon{width:36px;height:36px}.game:not(.game-combat) .resource,.game:not(.game-combat) .profile-pill{height:42px}.game:not(.game-combat) .mini-avatar{width:32px;height:32px}
.game:not(.game-combat) .top-navigation{padding-block:3px}.game:not(.game-combat) .top-nav-btn{height:34px;min-height:34px}
.game:not(.game-combat) .content{padding-block:clamp(8px,1vh,12px)}
.game:not(.game-combat) .page-head{margin-bottom:9px}.game:not(.game-combat) .page-head .subtle{margin:2px 0 0;line-height:1.3}
.game:not(.game-combat) .bottombar{min-height:44px}
.game:not(.game-combat) .panel.pad{padding:clamp(11px,1vw,14px)}

@media(min-width:761px){
  .region-hub:has(.compact-world){gap:8px;padding-bottom:0}
  .region-hub:has(.compact-world) .region-hub-head{display:flex;align-items:center;margin:0;min-height:38px}
  .region-hub:has(.compact-world) .region-hub-head .page-title{margin:0;font-size:clamp(23px,1.9vw,29px)}
  .region-hub:has(.compact-world) .region-hub-head .subtle{display:none}
  .region-hub:has(.compact-world) .region-hub-head>.pill{padding:5px 9px}
  .region-hub:has(.compact-world) .region-area-picker{padding:7px 9px}
  .region-hub:has(.compact-world) .region-section-heading{align-items:center;margin-bottom:5px}
  .region-hub:has(.compact-world) .region-section-heading .panel-title{margin:0;font-size:15px}
  .region-hub:has(.compact-world) .region-section-heading p{display:none}
  .region-hub:has(.compact-world) .region-section-heading>.small{font-size:10px}
  .region-hub:has(.compact-world) .zone-strip{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}
  .region-hub:has(.compact-world) .zone-chip{min-width:0;min-height:54px;padding:6px;grid-template-columns:24px minmax(0,1fr);column-gap:5px}
  .region-hub:has(.compact-world) .zone-chip>span{font-size:18px}.region-hub:has(.compact-world) .zone-chip>b,.region-hub:has(.compact-world) .zone-chip>small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.region-hub:has(.compact-world) .zone-chip>b{font-size:12px}.region-hub:has(.compact-world) .zone-chip>small{font-size:9px}
  .compact-world .shared-world-head{min-height:48px;padding:7px 11px}.compact-world .shared-world-head h2{font-size:21px}.compact-world .shared-world-head p{font-size:9px}.compact-world .world-connection{min-height:30px;padding:4px 8px}
  .compact-world .shared-world-stage{height:clamp(310px,calc(100dvh - 500px),560px)}
  .compact-world>.world-local-actions .world-local-actions-label{min-width:130px;padding:6px 10px}.compact-world>.world-local-actions .world-service-dock{padding:6px 8px}.compact-world .world-service-button{min-height:48px;padding-block:5px}
  .world-area-summary>header{padding:8px 10px}.world-area-summary dl{padding:4px 10px}.world-area-summary dl>div{padding:4px 0}.world-nearby{padding:8px 10px}.world-interaction-note{margin:0 10px 9px;padding:8px}
}

@media(min-width:761px) and (max-height:760px){
  .game:not(.game-combat) .topbar{min-height:52px}.game:not(.game-combat) .brand-sub,.game:not(.game-combat) .profile-sub{display:none}
  .game:not(.game-combat) .top-navigation{padding-block:2px}.game:not(.game-combat) .top-nav-btn{height:31px;min-height:31px}
  .game:not(.game-combat) .bottombar{min-height:39px}
  .region-hub:has(.compact-world) .region-hub-head{min-height:31px}.region-hub:has(.compact-world) .region-area-picker{padding-block:5px}.region-hub:has(.compact-world) .zone-chip{min-height:48px}
  .compact-world .shared-world-head{min-height:43px;padding-block:5px}.compact-world .shared-world-stage{height:clamp(270px,calc(100dvh - 420px),420px)}
}

@media(max-width:760px){
  .game:not(.game-combat) .topbar{min-height:54px}.game:not(.game-combat) .content{height:calc(100dvh - 54px);padding-top:7px}
  .region-hub:has(.compact-world){gap:8px}.region-hub:has(.compact-world) .region-hub-head{margin-bottom:0}.region-hub:has(.compact-world) .region-hub-head .subtle{display:none}
  .region-hub:has(.compact-world) .region-area-picker{padding:8px}.region-hub:has(.compact-world) .region-section-heading{margin-bottom:6px}.region-hub:has(.compact-world) .region-section-heading p{display:none}
  .compact-world .shared-world-head{padding:8px 9px}.compact-world>.world-local-actions .world-service-dock{padding-block:6px}.compact-world .world-service-button{min-height:50px}
}

/* Large-display modes — use QHD and ultrawide space instead of freezing at 1920px. */
@media(min-width:2000px){
  .game:not(.game-combat){width:calc(100% - 64px);max-width:2240px}
  .game:not(.game-combat) .topbar{padding-inline:clamp(18px,1.25vw,32px)}
  .game:not(.game-combat) .brand{flex-basis:300px;min-width:260px}.game:not(.game-combat) .brand-title{font-size:30px}.game:not(.game-combat) .brand-sub{font-size:9px}
  .game:not(.game-combat) .resource{width:clamp(112px,5.5vw,140px);min-width:112px}.game:not(.game-combat) .resource .label{font-size:11px}.game:not(.game-combat) .resource .value{font-size:15px}
  .game:not(.game-combat) .profile-pill{width:clamp(220px,11vw,280px);min-width:220px}.game:not(.game-combat) .profile-name{font-size:15px}.game:not(.game-combat) .profile-sub{font-size:10px}
  .game:not(.game-combat) .top-nav-actions{width:min(100%,1040px);max-width:1040px}.game:not(.game-combat) .top-nav-btn{font-size:14px}
  .game:not(.game-combat) .content{padding-inline:clamp(16px,1.15vw,30px)}
  .region-hub:has(.compact-world) .region-hub-head .page-title{font-size:30px}
  .region-hub:has(.compact-world) .zone-chip>b{font-size:13px}.region-hub:has(.compact-world) .zone-chip>small{font-size:10px}
  .compact-world .shared-world-layout{grid-template-columns:minmax(0,1fr) clamp(300px,13.5vw,340px)}
  .compact-world .shared-world-head h2{font-size:23px}.compact-world .shared-world-head p{font-size:10px}
  .world-area-summary header b{font-size:14px}.world-area-summary dt,.world-area-summary dd{font-size:10px}.world-roster-head b{font-size:13px}.world-roster-head small,.world-interaction-note small{font-size:10px}
  .compact-world .world-landmark>b{font-size:11px}.compact-world .world-landmark>em{font-size:8px}
  .compact-world .world-service-button>b{font-size:11px}.compact-world .world-service-button>small{font-size:9px}
}

@media(min-width:2000px) and (min-height:1100px){
  .compact-world .shared-world-stage{height:clamp(600px,calc(100dvh - 590px),700px)}
}

@media(min-width:2800px){
  .game:not(.game-combat){width:calc(100% - 96px);max-width:2560px}
  .game:not(.game-combat) .content{padding-inline:clamp(24px,1.4vw,44px)}
  .compact-world .shared-world-layout{grid-template-columns:minmax(0,1fr) clamp(360px,12vw,420px)}
}

@media(min-width:2800px) and (min-height:1400px){
  .compact-world .shared-world-stage{height:clamp(700px,calc(100dvh - 650px),820px)}
}

@media(min-width:3600px){
  .game:not(.game-combat){width:calc(100% - 144px);max-width:2880px}
}

/* Presence join state: show the local character immediately, then settle into server position. */
.world-player-marker.pending .world-player-avatar{opacity:.72;animation:world-presence-arriving 1s ease-in-out infinite alternate}.world-player-marker.pending>span{color:#e2c783}
.world-presence-row.pending{border-style:dashed}.world-presence-row.pending i{color:#d7b66e}
@keyframes world-presence-arriving{to{opacity:1;box-shadow:0 5px 15px rgba(0,0,0,.55),0 0 0 5px rgba(227,176,77,.25),0 0 24px rgba(227,176,77,.42)}}

/* Area selectors let the location art and name carry the card—no decorative emoji tile. */
.zone-chip.area-choice{position:relative;display:block;min-width:0;min-height:62px;overflow:hidden;padding:0;border-color:rgba(133,94,43,.58);background-position:center;background-size:cover;text-align:left;box-shadow:inset 0 1px rgba(255,224,158,.06),inset 0 -24px 30px rgba(0,0,0,.3),0 4px 10px rgba(0,0,0,.16)}
.zone-chip.area-choice:before{background:linear-gradient(180deg,rgba(3,9,12,.66) 0%,rgba(3,9,12,.12) 40%,rgba(3,9,12,.16) 55%,rgba(3,9,12,.82) 100%),linear-gradient(90deg,rgba(3,9,12,.42),transparent 60%)!important}
.zone-chip.area-choice:after{content:none}
.zone-chip.area-choice:hover,.zone-chip.area-choice:focus-visible{border-color:#b98538;filter:brightness(1.12);outline:none;box-shadow:inset 0 1px rgba(255,233,184,.12),inset 0 -27px 34px rgba(0,0,0,.34),0 0 13px rgba(198,143,54,.16)}
.zone-chip.area-choice.active{border-color:#d2a047;box-shadow:inset 0 0 0 1px rgba(255,220,139,.18),inset 0 -28px 34px rgba(0,0,0,.38),0 0 14px rgba(213,162,63,.18)}
.zone-chip.area-choice>b,.zone-chip.area-choice>small{position:absolute;z-index:2;left:11px;right:11px;width:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 2px 4px #000,0 0 9px #000}.zone-chip.area-choice>b{top:8px;color:#f2dfba;font-size:13px;line-height:1.15;letter-spacing:.1px}.zone-chip.area-choice>small{bottom:7px;display:flex;align-items:center;justify-content:space-between;gap:7px;color:#b8b0a3;font-size:9px;line-height:1.2}
.zone-chip.area-choice>small em{flex:0 0 auto;color:#a98957;font-size:8px;font-style:normal;font-weight:800;letter-spacing:.65px;text-transform:uppercase}.zone-chip.area-choice[data-area-state="current"]>small em{color:#f0c96e}.zone-chip.area-choice[data-area-state="available"]>small em{color:#83c8a8}
.zone-chip.area-choice.locked{opacity:.68;filter:saturate(.52)}.zone-chip.area-choice.locked:hover,.zone-chip.area-choice.locked:focus-visible{opacity:.82;filter:saturate(.7) brightness(1.08)}
@media(min-width:2000px){.zone-chip.area-choice{min-height:68px}.zone-chip.area-choice>b{top:9px;left:13px;right:13px;font-size:14px}.zone-chip.area-choice>small{left:13px;right:13px;bottom:8px;font-size:10px}.zone-chip.area-choice>small em{font-size:8px}}

/* Final header sizing authority: profession progress yields space before resources clip. */
.game:not(.game-combat) .topbar{overflow:visible}
.game:not(.game-combat) .brand{flex:0 1 clamp(185px,15vw,270px);min-width:165px}
.game:not(.game-combat) .resource-row{flex:0 0 auto;min-width:0;margin-left:0;overflow:visible}
.game:not(.game-combat) .resource-row>.resource,.game:not(.game-combat) .profile-menu-wrap{flex-shrink:1}
@media(min-width:2000px){.game:not(.game-combat) .brand{flex-basis:300px;min-width:260px}}
@media(min-width:761px) and (max-width:1450px){.top-professions{display:grid;grid-template-rows:repeat(2,24px);align-content:center;justify-content:center;gap:2px;overflow:hidden}.top-profession-group{gap:3px}.top-profession-bubble{width:24px;height:24px}.top-profession-divider{display:none}.top-profession-ring b{right:-3px;bottom:-3px;min-width:13px;height:13px;font-size:7px}}
@media(min-width:761px) and (max-width:1250px){.top-professions{flex-basis:300px}.game:not(.game-combat) .brand{flex-basis:180px}}
@media(min-width:761px) and (max-width:920px){.top-professions{flex-basis:160px}.top-profession-bubble{width:22px;height:22px}.top-profession-group{gap:2px}}
@media(max-width:760px){.game:not(.game-combat) .brand{flex:1 1 auto;min-width:0}.top-professions{display:none}}

/* Compact World Map conversion: the Region screen's selector + stage + rail pattern. */
.world-map-hub{display:grid;gap:12px;min-height:0}.world-map-hub .compact-page-head{margin-bottom:0}.world-region-picker{padding:10px 12px!important}.world-region-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:7px}.world-region-card{position:relative;display:grid;align-content:space-between;min-width:0;min-height:78px;padding:9px;border:1px solid #3e3325;background-position:center;background-size:cover;color:#c9c0b0;text-align:left;overflow:hidden;cursor:pointer}.world-region-card:after{content:"";position:absolute;inset:0;border:1px solid transparent;pointer-events:none}.world-region-card:hover,.world-region-card.active{border-color:#b98634;box-shadow:inset 0 0 24px rgba(183,125,39,.12)}.world-region-card.active:after{border-color:rgba(235,185,83,.38)}.world-region-card.current{color:#ffe3a1}.world-region-card.locked{filter:saturate(.45);opacity:.62}.world-region-card b{position:relative;z-index:1;align-self:start;font:17px/1.05 var(--font-title);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.world-region-card small{position:relative;z-index:1;align-self:end;margin-top:20px;color:#9d9281;font-size:9px}.world-region-card em{position:absolute;z-index:1;right:7px;bottom:7px;color:#b58a45;font-size:7px;font-style:normal;font-weight:900;letter-spacing:.75px}.world-region-card.current em{color:#f1c568}
.world-region-focus{display:grid;grid-template-columns:minmax(0,1fr) clamp(250px,20vw,320px);min-height:clamp(390px,55vh,610px);overflow:hidden;border-color:#68491f}.world-region-focus-art{display:flex;align-items:flex-end;min-width:0;padding:clamp(18px,2vw,30px);background-position:center;background-size:cover}.world-region-focus-art>div{width:min(620px,75%);padding:14px 16px;border-left:2px solid #c89239;background:linear-gradient(90deg,rgba(2,10,13,.88),rgba(2,10,13,.38),transparent)}.world-region-focus-art small,.world-region-rail header>small,.world-region-area-list>small{color:#c49448;font-size:8px;font-weight:900;letter-spacing:1.15px}.world-region-focus-art h2{margin:3px 0 5px;color:#f1dfbc;font:clamp(29px,3vw,46px)/1 var(--font-title)}.world-region-focus-art p{margin:0;color:#c0b8aa;font-size:12px;line-height:1.45}.world-region-rail{display:grid;grid-template-rows:auto auto 1fr auto;gap:12px;padding:16px;border-left:1px solid #49341e;background:linear-gradient(180deg,#09191d,#051014)}.world-region-rail header{position:relative;padding-bottom:12px;border-bottom:1px solid rgba(177,126,49,.22)}.world-region-rail h3{margin:3px 76px 0 0;color:#e5d3b1;font:23px/1 var(--font-title)}.world-region-rail header .pill{position:absolute;top:0;right:0}.world-region-rail dl{display:grid;gap:0;margin:0}.world-region-rail dl>div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid rgba(133,111,76,.16)}.world-region-rail dt{color:#7f796f;font-size:9px}.world-region-rail dd{margin:0;color:#d6c39e;font-size:9px;font-weight:800;text-align:right}.world-region-area-list{align-self:start;padding:10px;border:1px solid rgba(153,112,52,.22);background:rgba(0,0,0,.16)}.world-region-area-list p{margin:5px 0 0;color:#999184;font-size:10px;line-height:1.5}.world-region-rail>.btn{width:100%;min-height:44px}
@media(max-width:1000px){.world-region-focus{grid-template-columns:minmax(0,1fr) 240px;min-height:430px}.world-region-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.world-region-focus-art>div{width:88%}}
@media(max-width:760px){.world-map-hub{gap:9px}.world-region-picker{padding:8px!important}.world-region-picker .region-section-heading p{display:none}.world-region-strip{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin}.world-region-card{flex:0 0 148px;min-height:70px;scroll-snap-align:start}.world-region-focus{display:block;min-height:0;border-radius:13px}.world-region-focus-art{min-height:clamp(230px,42dvh,360px);padding:12px}.world-region-focus-art>div{width:100%;padding:10px 11px}.world-region-focus-art h2{font-size:28px}.world-region-focus-art p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:10px}.world-region-rail{grid-template-columns:1fr;gap:8px;padding:11px;border-top:1px solid #49341e;border-left:0}.world-region-rail header{padding-bottom:8px}.world-region-rail h3{font-size:20px}.world-region-rail dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.world-region-rail dl>div{display:grid;gap:2px;padding:6px;border:1px solid rgba(133,111,76,.16)}.world-region-rail dd{text-align:left}.world-region-area-list{display:none}.world-region-rail>.btn{min-height:48px}}
@media(min-width:761px) and (max-height:820px){.world-map-hub{gap:8px}.world-map-hub .compact-page-head{min-height:42px}.world-map-hub .compact-page-head .page-title{margin:0;font-size:29px}.world-map-hub .compact-page-head .region-breadcrumb,.world-map-hub .compact-page-head .subtle{display:none}.world-region-picker{padding:7px 9px!important}.world-region-picker .region-section-heading{margin-bottom:5px}.world-region-picker .region-section-heading p{display:none}.world-region-card{min-height:58px;padding:6px 8px}.world-region-card b{font-size:14px}.world-region-card small{margin-top:13px;font-size:8px}.world-region-focus{height:clamp(280px,calc(100dvh - 335px),470px);min-height:280px}.world-region-focus-art{padding:14px}.world-region-focus-art>div{padding:10px 12px}.world-region-focus-art h2{font-size:30px}.world-region-focus-art p{font-size:10px}.world-region-rail{grid-template-rows:auto auto 1fr auto;gap:7px;padding:10px}.world-region-rail header{padding-bottom:7px}.world-region-rail h3{font-size:19px}.world-region-rail dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.world-region-rail dl>div{display:grid;gap:2px;padding:5px;border:1px solid rgba(133,111,76,.16)}.world-region-rail dd{text-align:left}.world-region-area-list{display:none}.world-region-rail>.btn{align-self:end;min-height:40px}}

/* Compact Combat conversion: stage + context rail + local action dock. */
.compact-combat-page{display:grid;gap:9px;min-height:0}.compact-combat-head{align-items:center;margin:0}.compact-combat-head>div>small,.compact-combat-objectives>small,.compact-combat-target-panel header small,.compact-combat-log header small,.compact-combat-empty-card>div>small{color:#56c6b2;font-size:8px;font-weight:900;letter-spacing:1.35px}.compact-combat-head .page-title{margin:2px 0 0;font-size:clamp(25px,2vw,31px)}.compact-combat-head .subtle{margin:1px 0 0;font-size:10px}.compact-retreat{min-width:100px}
.compact-combat-shell{display:grid;grid-template-rows:52px minmax(0,1fr) auto;height:clamp(500px,calc(100dvh - 360px),820px);min-height:0;overflow:hidden;border-color:#64461f;background:#050d11}.compact-combat-top{display:grid;grid-template-columns:200px minmax(0,1fr);align-items:center;gap:10px;height:52px;min-height:52px;padding:7px 11px;overflow:hidden;border-bottom:1px solid #49341e;background:linear-gradient(180deg,#0b1b20,#071216)}.compact-combat-top>div{display:grid}.compact-combat-top>div>b{color:#f0d89f;font:18px/1 var(--font-title)}.compact-combat-top>div>small{margin-top:3px;color:#8fa4a6;font-size:9px}.compact-combat-top .turn-queue{display:flex!important;flex-flow:row nowrap!important;justify-content:flex-end;min-width:0;height:38px;min-height:38px;overflow-x:auto;overflow-y:hidden}.compact-combat-top .queue-label{flex:0 0 auto;font-size:8px}.compact-combat-top .queue-token{flex:0 0 34px;width:34px;height:34px}.compact-combat-top .round-pill{flex:0 0 auto;font-size:8px;white-space:nowrap}
.compact-combat-layout{display:grid;grid-template-columns:minmax(0,1fr) clamp(245px,19vw,310px);min-height:0}.compact-combat-stage{position:relative;min-width:0;min-height:0;overflow:hidden;border-right:1px solid #49341e;background-position:center;background-size:cover}.compact-combat-vignette{position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,7,9,.12),rgba(2,7,9,.02) 42%,rgba(2,7,9,.65)),linear-gradient(90deg,rgba(2,7,9,.18),transparent 35%,transparent 68%,rgba(2,7,9,.25));pointer-events:none}.compact-combat-player,.compact-combat-target{position:absolute;z-index:2;bottom:68px;display:grid;justify-items:center}.compact-combat-player{left:clamp(5%,8vw,13%)}.compact-combat-target{right:clamp(8%,12vw,18%)}.compact-combat-player>img,.compact-combat-target>img{display:block;width:clamp(92px,9vw,150px);height:clamp(145px,16vw,245px);object-fit:contain;object-position:center bottom;filter:drop-shadow(0 16px 12px rgba(0,0,0,.68))}.compact-combat-player>img{transform:scaleX(-1);transform-origin:center bottom}.compact-combat-target>img{width:clamp(110px,11vw,180px);height:clamp(155px,17vw,260px)}.compact-combat-player.current-turn>img{filter:drop-shadow(0 0 12px rgba(100,213,186,.48)) drop-shadow(0 16px 12px rgba(0,0,0,.68))}.compact-combat-player>span,.compact-combat-target>span{display:grid;gap:2px;min-width:120px;margin-top:-4px;padding:5px 8px;border:1px solid rgba(169,126,57,.42);background:rgba(2,9,12,.88);text-align:center;box-shadow:0 6px 15px rgba(0,0,0,.5)}.compact-combat-target>span{border-color:rgba(173,73,58,.52)}.compact-combat-player b,.compact-combat-target b{color:#f1dfbd;font-size:11px}.compact-combat-player small,.compact-combat-target small{color:#aaa092;font-size:8px}.compact-combat-target i,.compact-combat-party-token i,.compact-combat-enemy i,.compact-combat-resource i{display:block;height:3px;overflow:hidden;background:#1f2526}.compact-combat-target i em,.compact-combat-party-token i em,.compact-combat-enemy i em{display:block;height:100%;background:#9f3e31}.compact-combat-target.defeated{filter:grayscale(1);opacity:.5}
.compact-combat-party-strip{position:absolute;z-index:3;left:9px;right:9px;bottom:9px;display:flex;gap:6px;overflow-x:auto}.compact-combat-party-token{position:relative;display:grid;grid-template-columns:31px minmax(62px,1fr);align-items:center;gap:6px;min-width:112px;max-width:160px;padding:4px 6px;border:1px solid rgba(126,102,66,.44);background:rgba(3,12,15,.9)}.compact-combat-party-token.current-turn{border-color:#5ec2aa;box-shadow:0 0 11px rgba(65,191,162,.18)}.compact-combat-party-token.downed{filter:grayscale(1);opacity:.55}.compact-combat-party-token>img{width:31px;height:31px;object-fit:cover;object-position:center top}.compact-combat-party-token>span{display:grid;gap:3px;min-width:0}.compact-combat-party-token b{overflow:hidden;color:#d9ccb5;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.compact-combat-party-token small{position:absolute;top:2px;right:3px;color:#6bd0b7;font-size:6px}.compact-combat-party-token i em{background:#5aa06f}
.compact-combat-rail{display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:9px;min-width:0;min-height:0;padding:10px;background:linear-gradient(180deg,#08171b,#051014)}.compact-combat-target-panel{min-height:0}.compact-combat-target-panel>header,.compact-combat-log>header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.compact-combat-target-panel>header>div{display:grid}.compact-combat-target-panel header b{color:#d9c6a1;font-size:9px}.compact-combat-target-panel header>span{color:#b78e4d;font-size:8px}.compact-combat-enemies{display:grid;gap:5px;max-height:174px;overflow:auto}.compact-combat-enemy{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:7px;min-width:0;padding:5px;border:1px solid rgba(121,99,66,.34);background:rgba(0,0,0,.17);color:#b9b0a2;text-align:left;cursor:pointer}.compact-combat-enemy:hover,.compact-combat-enemy.active{border-color:#aa7540;background:rgba(91,47,30,.2)}.compact-combat-enemy.active{box-shadow:inset 2px 0 #cf804c}.compact-combat-enemy.defeated{filter:grayscale(1);opacity:.48}.compact-combat-enemy>img{width:38px;height:38px;object-fit:cover;object-position:center top}.compact-combat-enemy>span{display:grid;gap:2px;min-width:0}.compact-combat-enemy b{overflow:hidden;color:#e3d3b6;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.compact-combat-enemy small{overflow:hidden;color:#ab8b80;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.compact-combat-enemy>strong{color:#cf9384;font-size:8px}.compact-combat-objectives{padding:7px 8px;border:1px solid rgba(151,111,53,.24);background:rgba(0,0,0,.15)}.compact-combat-objectives>div{display:flex;justify-content:space-between;gap:8px;margin-top:4px;color:#ada497;font-size:8px}.compact-combat-objectives b{color:#d9bf88}.compact-combat-log{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;padding-top:2px;border-top:1px solid rgba(151,111,53,.2)}.compact-combat-log header button{padding:0;border:0;background:transparent;color:#b68e50;font-size:8px;cursor:pointer}.compact-combat-log>div{min-height:0;overflow:auto}.compact-combat-log p{margin:0;padding:5px 0;border-bottom:1px solid rgba(130,111,80,.12);color:#8f9794;font-size:8px;line-height:1.35}
.compact-combat-actions{position:relative;display:grid;grid-template-columns:170px minmax(0,1fr) minmax(315px,auto);gap:8px;min-height:122px;padding:8px;border-top:1px solid #60431e;background:linear-gradient(180deg,#09161b,#050d11);box-shadow:0 -8px 20px rgba(0,0,0,.28)}.compact-combat-actions.waiting .compact-combat-skills,.compact-combat-actions.waiting .compact-combat-controls{opacity:.58}.compact-combat-resource{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:7px;min-width:0;padding:6px;border:1px solid rgba(135,101,49,.31);background:#071216}.compact-combat-resource>img{width:42px;height:62px;object-fit:cover;object-position:center top}.compact-combat-resource>span{display:grid;gap:3px;min-width:0}.compact-combat-resource b,.compact-combat-resource small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-combat-resource b{color:#dbc8a5;font-size:8px}.compact-combat-resource small{color:#8da1a3;font-size:7px}.compact-combat-resource i{height:4px}.compact-combat-resource i em{display:block;height:100%}.compact-combat-resource em.health{background:#9f3e31}.compact-combat-resource em.mana{background:#3379b7}.compact-combat-resource em.energy{background:#bf8734}.compact-combat-skills{display:flex;gap:6px;min-width:0;overflow-x:auto}.compact-combat-skills .ability{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;align-content:start;gap:3px;flex:1 0 108px;min-width:108px;min-height:104px;padding:7px;text-align:left}.compact-combat-skills .ability>span,.compact-combat-skills .ability>b,.compact-combat-skills .ability>small{display:block;min-width:0}.compact-combat-skills .ability span{font-size:18px;line-height:1}.compact-combat-skills .ability b{overflow:hidden;color:#e5d3b4;font-size:9px;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.compact-combat-skills .ability small{font-size:7px;line-height:1.2}.compact-combat-skills .ability>small:not(.subtle):not(.ability-talent-note){display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.compact-combat-controls{display:grid;grid-template-columns:repeat(3,minmax(70px,1fr));gap:5px}.compact-combat-controls button{display:grid;place-content:center;gap:2px;min-width:0;padding:5px;border:1px solid #3b3329;background:#0a1519;color:#bdb3a3;cursor:pointer}.compact-combat-controls button:hover,.compact-combat-controls button.active{border-color:#aa7831;color:#f0d89c}.compact-combat-controls button:disabled{opacity:.38;cursor:not-allowed}.compact-combat-controls button span{font-size:15px}.compact-combat-controls button b{font-size:8px}.compact-combat-controls button small{color:#887e70;font-size:6px}.compact-combat-controls .end-turn{border-color:#835524;background:linear-gradient(180deg,#6a431a,#35210f);color:#f2d38d}.compact-combat-actions>.waiting-banner{position:absolute;right:8px;top:-28px;padding:5px 8px;font-size:8px}
.compact-combat-empty-card{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(300px,1.1fr);min-height:360px;overflow:hidden}.compact-combat-empty-art{min-height:360px;background-position:center;background-size:cover}.compact-combat-empty-card>div:last-child{align-self:center;padding:28px}.compact-combat-empty-card h2{margin:4px 0;color:#ead7b2;font:34px var(--font-title)}.compact-combat-empty-card p{max-width:520px;color:#aaa297;line-height:1.6}.compact-combat-dungeon-note{color:#8d8374;font-size:9px;text-align:center}
@media(max-width:1180px) and (min-width:761px){.compact-combat-actions{grid-template-columns:145px minmax(0,1fr) 270px}.compact-combat-controls{grid-template-columns:repeat(2,1fr)}.compact-combat-layout{grid-template-columns:minmax(0,1fr) 245px}.compact-combat-top{grid-template-columns:165px minmax(0,1fr)}.compact-combat-player{left:6%}.compact-combat-target{right:10%}}
@media(min-width:761px) and (max-height:820px){.compact-combat-page{gap:6px}.compact-combat-head .page-title{font-size:23px}.compact-combat-head .subtle{display:none}.compact-combat-shell{grid-template-rows:43px minmax(0,1fr) auto;height:calc(100dvh - 300px);min-height:430px}.compact-combat-top{height:43px;min-height:43px;padding-block:4px}.compact-combat-top>div>b{font-size:15px}.compact-combat-top>div>small{display:none}.compact-combat-top .turn-queue{height:31px;min-height:31px}.compact-combat-top .queue-token{flex-basis:29px;width:29px;height:29px}.compact-combat-actions{min-height:101px;padding:6px}.compact-combat-skills .ability{min-height:88px}.compact-combat-resource>img{height:50px}.compact-combat-rail{gap:6px;padding:7px}.compact-combat-enemies{max-height:130px}.compact-combat-log p{padding:3px 0}.compact-combat-player,.compact-combat-target{bottom:56px}.compact-combat-player>img{height:145px}.compact-combat-target>img{height:155px}.compact-combat-party-strip{bottom:6px}}
@media(max-width:760px){
  .game-combat{display:block!important;height:100dvh;overflow:hidden}.game-combat .content{height:100dvh!important;overflow-y:auto!important}
  .compact-combat-page{display:block;min-height:100dvh;padding-bottom:136px}.game-combat .compact-combat-head{position:sticky;z-index:35;top:0;display:flex!important;min-height:54px;margin:0!important;padding:8px 10px!important;border-bottom:1px solid rgba(194,140,55,.35);background:#081419}.compact-combat-head>div>small,.compact-combat-head .subtle{display:none}.compact-combat-head .page-title{margin:0;font-size:18px}.compact-retreat{min-width:82px;min-height:38px}
  .compact-combat-shell{display:block;height:auto;min-height:0;border:0;border-radius:0}.compact-combat-top{display:block;min-height:48px;padding:6px 9px}.compact-combat-top>div{display:none}.compact-combat-top .turn-queue{justify-content:flex-start;overflow-x:auto}.compact-combat-top .queue-token{width:34px;height:34px;flex:0 0 34px}
  .compact-combat-layout{display:flex;flex-direction:column}.compact-combat-stage{height:clamp(250px,39dvh,360px);border-right:0;border-bottom:1px solid #49341e}.compact-combat-player{left:5%;bottom:51px}.compact-combat-target{right:8%;bottom:51px}.compact-combat-player>img{width:80px;height:135px}.compact-combat-target>img{width:95px;height:145px}.compact-combat-player>span,.compact-combat-target>span{min-width:94px;padding:4px 5px}.compact-combat-player b,.compact-combat-target b{font-size:9px}.compact-combat-party-strip{bottom:5px}.compact-combat-party-token{grid-template-columns:25px minmax(50px,1fr);min-width:88px;padding:3px}.compact-combat-party-token>img{width:25px;height:25px}
  .compact-combat-rail{display:block;padding:8px}.compact-combat-enemies{display:flex;max-height:none;overflow-x:auto}.compact-combat-enemy{flex:0 0 150px}.compact-combat-objectives{margin-top:7px}.compact-combat-log{margin-top:7px}.compact-combat-log>div{max-height:92px}.compact-combat-log p{padding:4px 0}
  .compact-combat-actions{position:sticky;z-index:32;bottom:0;display:block;min-height:0;padding:8px;box-shadow:0 -14px 34px rgba(0,0,0,.62)}.compact-combat-resource{display:none}.compact-combat-skills{margin-bottom:6px}.compact-combat-skills .ability{flex:0 0 118px;min-height:70px}.compact-combat-skills .ability small{display:block}.compact-combat-controls{grid-template-columns:repeat(6,minmax(50px,1fr));overflow-x:auto}.compact-combat-controls button{min-height:49px}.compact-combat-actions>.waiting-banner{top:-25px}
  .compact-combat-empty{padding:0 10px}.compact-combat-empty-card{display:block;min-height:0}.compact-combat-empty-art{min-height:230px}.compact-combat-empty-card>div:last-child{padding:18px}.compact-combat-empty-card h2{font-size:28px}
}

/* Compact Crafting conversion: keep production local and scrolling inside the workspace. */
.compact-crafting-page{display:grid;gap:9px;min-height:0}.compact-crafting-head{align-items:center;margin:0}.compact-crafting-head>div>small,.craft-compact-hero>div>small{color:#55c6b1;font-size:8px;font-weight:900;letter-spacing:1.3px}.compact-crafting-head .page-title{margin:2px 0 0;font-size:clamp(25px,2vw,31px)}.compact-crafting-head .subtle{margin:1px 0 0;font-size:10px}.compact-crafting-level{display:grid;grid-template-columns:auto auto;align-items:end;gap:1px 9px;min-width:190px;padding:7px 10px;border:1px solid #51391f;background:#071216}.compact-crafting-level span{color:#978c7d;font-size:8px}.compact-crafting-level b{grid-row:1/3;grid-column:2;color:#efd38f;font:22px/1 var(--font-title)}.compact-crafting-level small{color:#b9ad99;font-size:8px}.compact-crafting-level i{grid-column:1/-1;display:block;height:3px;margin-top:3px;background:#1c292b}.compact-crafting-level i em{display:block;height:100%;background:#4bb99f}
.craft-compact-picker{display:grid;gap:7px;padding:8px 10px}.craft-compact-picker>header{display:flex;align-items:end;justify-content:space-between;gap:12px}.craft-compact-picker h2{margin:0;font-size:15px}.craft-compact-picker p{margin:1px 0 0;color:#837c72;font-size:8px}.craft-compact-picker header>span{color:#a88a58;font-size:8px}.craft-compact-professions{display:flex;gap:5px;overflow-x:auto;scrollbar-width:thin}.craft-compact-professions .profession-button{flex:1 0 122px;grid-template-columns:30px minmax(0,1fr);gap:6px;min-height:45px;padding:5px}.craft-compact-professions .profession-button img{width:30px;height:30px}.craft-compact-professions .profession-button b{display:block;overflow:hidden;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.craft-compact-professions .profession-button small{overflow:hidden;font-size:7px;text-overflow:ellipsis;white-space:nowrap}
.craft-compact-workspace{display:grid;grid-template-columns:minmax(0,1fr) clamp(280px,22vw,350px);height:clamp(440px,calc(100dvh - 385px),690px);min-height:0;overflow:hidden;border-color:#66481f}.craft-compact-main{display:grid;grid-template-rows:120px auto minmax(0,1fr);min-width:0;min-height:0;border-right:1px solid #49341e}.craft-compact-hero{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:12px 14px;background-position:center;background-size:cover;border-bottom:1px solid #49341e}.craft-compact-hero>div{max-width:520px}.craft-compact-hero h2{margin:2px 0;color:#eddbb8;font:26px/1 var(--font-title)}.craft-compact-hero p{margin:4px 0 0;color:#bcb4a7;font-size:9px}.craft-compact-hero>span{padding:5px 8px;border:1px solid rgba(173,127,56,.44);background:rgba(3,11,14,.84);color:#d0af70;font-size:8px}.craft-compact-recipe-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-bottom:1px solid rgba(128,91,43,.24);background:#071216}.craft-compact-recipe-head>div{display:grid}.craft-compact-recipe-head b{color:#dfcba5;font-size:11px}.craft-compact-recipe-head small{color:#817b72;font-size:8px}.craft-compact-recipes{min-height:0;padding:8px;overflow-y:auto;scrollbar-width:thin}.craft-compact-recipes .craft-recipe-card{grid-template-columns:54px minmax(0,1fr) 82px;gap:8px;padding:7px}.craft-compact-recipes .craft-recipe-art{width:54px;height:54px}.craft-compact-recipes .craft-recipe-body h3{font-size:17px}.craft-compact-recipes .craft-recipe-body>.small{font-size:8px}.craft-compact-recipes .craft-recipe-body p{display:none}.craft-compact-recipes .craft-batch-picker{margin-top:5px}.craft-compact-recipes .craft-batch-picker>span{font-size:8px}.craft-compact-recipes .craft-batch-picker button{width:23px;height:22px;font-size:8px}.craft-compact-recipes .craft-cost-list{gap:4px;margin:5px 0}.craft-compact-recipes .craft-cost-chip{padding:2px 5px;font-size:8px}.craft-compact-recipes .craft-recipe-body>small{font-size:8px}.craft-compact-recipes .craft-recipe-card>.btn{min-width:0;padding:7px 5px;font-size:8px}
.craft-compact-rail{display:grid;grid-template-rows:minmax(120px,auto) minmax(0,1fr);min-width:0;min-height:0;background:linear-gradient(180deg,#08171b,#051014)}.craft-compact-queue,.craft-compact-rail>.craft-materials{min-height:0;padding:10px}.craft-compact-queue{overflow-y:auto;border-bottom:1px solid #49341e}.craft-compact-rail .craft-section-bar{margin-bottom:6px}.craft-compact-rail .craft-section-bar h2{margin:0;font-size:14px}.craft-compact-rail .craft-section-bar small{font-size:7px}.craft-compact-rail .craft-queue-heading{display:none}.craft-compact-rail .craft-queue-stack{margin:0}.craft-compact-rail .craft-job{grid-template-columns:28px minmax(0,1fr) auto;gap:6px;padding:6px}.craft-compact-rail .craft-queue-position{width:28px;height:28px;font-size:9px}.craft-compact-rail .craft-job b{font-size:8px}.craft-compact-rail .craft-job small{font-size:7px}.craft-compact-rail .craft-job .btn{padding:5px;font-size:7px}.craft-compact-empty{display:grid;gap:3px;padding:12px;border:1px dashed rgba(144,107,52,.28);color:#91887b;text-align:center}.craft-compact-empty b{font-size:9px}.craft-compact-empty small{font-size:7px}.craft-compact-rail>.craft-materials{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;overflow:hidden}.craft-compact-rail .material-stock-list{min-height:0;overflow-y:auto}.craft-compact-rail .material-stock-row{grid-template-columns:27px 1fr auto;gap:6px;padding:4px 0;font-size:8px}.craft-compact-rail .material-stock-img{width:27px;height:27px}.craft-compact-rail .craft-material-toggle{width:100%;margin-top:7px;min-height:31px;padding:5px;font-size:8px}.craft-compact-rail>.craft-materials>p{margin:6px 0 0;font-size:7px;line-height:1.35}
@media(max-width:1000px) and (min-width:761px){.craft-compact-workspace{grid-template-columns:minmax(0,1fr) 260px}.craft-compact-professions .profession-button{flex-basis:112px}.craft-compact-recipes .craft-recipe-card{grid-template-columns:48px minmax(0,1fr)}.craft-compact-recipes .craft-recipe-art{width:48px;height:48px}.craft-compact-recipes .craft-recipe-card>.btn{grid-column:1/-1}.craft-compact-hero{height:auto}}
@media(min-width:761px) and (max-height:820px){.compact-crafting-page{gap:6px}.compact-crafting-head .subtle{display:none}.compact-crafting-head .page-title{font-size:23px}.craft-compact-picker{padding-block:6px}.craft-compact-workspace{height:calc(100dvh - 318px);min-height:410px}.craft-compact-main{grid-template-rows:90px auto minmax(0,1fr)}.craft-compact-hero{padding:8px 10px}.craft-compact-hero h2{font-size:21px}.craft-compact-hero p{display:none}}
@media(max-width:760px){.compact-crafting-page{gap:8px}.compact-crafting-head .subtle{display:none}.compact-crafting-head .page-title{font-size:24px}.compact-crafting-level{min-width:112px;padding:5px 7px}.compact-crafting-level span{display:none}.compact-crafting-level b{grid-row:auto;font-size:18px}.compact-crafting-level small{font-size:6px}.craft-compact-picker>header p{display:none}.craft-compact-professions .profession-button{flex:0 0 112px}.craft-compact-workspace{display:block;height:auto;overflow:visible;border-radius:13px}.craft-compact-main{display:block;border-right:0}.craft-compact-hero{min-height:118px}.craft-compact-recipes{max-height:none;overflow:visible}.craft-compact-recipes .craft-recipe-card{grid-template-columns:48px minmax(0,1fr);border-radius:10px}.craft-compact-recipes .craft-recipe-card>.btn{grid-column:1/-1;min-height:38px}.craft-compact-rail{display:block;border-top:1px solid #49341e}.craft-compact-queue{max-height:250px}.craft-compact-rail>.craft-materials{display:grid;max-height:360px}.craft-compact-rail>.craft-materials>p{font-size:8px}}

/* Compact Gathering conversion: zone-local selection and an entered harvest scene. */
.compact-gather-page{display:grid;gap:10px;min-height:0}.compact-gather-head{align-items:center;margin:0}.compact-gather-head>div:first-child>small,.compact-harvest-stage-copy>small,.compact-harvest-rail header small{color:#55c6b1;font-size:8px;font-weight:900;letter-spacing:1.3px}.compact-gather-head .page-title{margin:2px 0 0;font-size:clamp(25px,2vw,31px)}.compact-gather-head .subtle{margin:1px 0 0;font-size:10px}.compact-gather-back{display:flex;gap:6px}
.compact-gather-skill-shell,.compact-gather-location-shell{display:grid;gap:10px;padding:12px;min-height:0}.compact-gather-skill-shell>header,.compact-gather-location-shell>header{display:flex;align-items:end;justify-content:space-between;gap:12px}.compact-gather-skill-shell header h2,.compact-gather-location-shell header h2{margin:0;font-size:17px}.compact-gather-skill-shell header p,.compact-gather-location-shell header p{margin:2px 0 0;color:#8e867a;font-size:9px}.compact-gather-skill-shell header>span,.compact-gather-location-shell header>span{color:#b69256;font-size:8px}.compact-gather-skills{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.compact-gather-skill{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:10px;min-height:150px;padding:10px;border:1px solid #47341f;background:linear-gradient(160deg,#0b1a1e,#061014);color:#bdb5a8;text-align:left;cursor:pointer}.compact-gather-skill:hover{border-color:#b18036;transform:translateY(-1px)}.compact-gather-skill>img{width:64px;height:96px;object-fit:cover;border:1px solid #44331f;background:#040a0c}.compact-gather-skill>span{display:grid;gap:4px;min-width:0}.compact-gather-skill span>small{color:#55bca7;font-size:7px;letter-spacing:.8px}.compact-gather-skill span>b{overflow:hidden;color:#e6d3ae;font:18px/1 var(--font-title);text-overflow:ellipsis}.compact-gather-skill span>em{color:#c5a25e;font-size:8px;font-style:normal}.compact-gather-skill span>i{display:block;height:3px;background:#1e2a2b}.compact-gather-skill span>i strong{display:block;height:100%;background:#52bda5}.compact-gather-skill span>p{margin:3px 0 0;color:#8d918c;font-size:8px;line-height:1.4}
.compact-gather-locations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;max-height:clamp(420px,calc(100dvh - 300px),700px);overflow-y:auto}.compact-gather-location{display:grid;grid-template-columns:120px minmax(0,1fr) 92px;align-items:stretch;min-height:135px;overflow:hidden;border:1px solid #45321d;background:#071115}.compact-gather-location.locked{filter:saturate(.5);opacity:.62}.compact-gather-location>img{width:120px;height:100%;min-height:135px;object-fit:cover;background:#050b0d}.compact-gather-location>div{align-self:center;min-width:0;padding:10px}.compact-gather-location>div>small{color:#55bca7;font-size:7px;letter-spacing:.7px}.compact-gather-location h3{margin:3px 0;color:#e4d1ae;font:19px/1 var(--font-title)}.compact-gather-location p{margin:4px 0;color:#969187;font-size:8px;line-height:1.4}.compact-gather-location>div>div{display:flex;flex-wrap:wrap;gap:4px}.compact-gather-location>div>div>span{display:inline-flex;align-items:center;gap:3px;padding:2px 4px;border:1px solid rgba(135,102,51,.24);font-size:7px}.compact-gather-location>div>div b{color:#d3b371}.compact-gather-location>.btn{align-self:stretch;border-width:0 0 0 1px}
.compact-harvest-shell{display:grid;grid-template-columns:minmax(0,1fr) clamp(270px,22vw,350px);height:clamp(470px,calc(100dvh - 255px),730px);min-height:0;overflow:hidden;border-color:#62451f}.compact-harvest-stage{position:relative;min-width:0;min-height:0;overflow:hidden;border-right:1px solid #49341e;background:#061014}.compact-harvest-stage>img:first-child{width:100%;height:100%;object-fit:cover;filter:brightness(.8) saturate(.94)}.compact-harvest-stage>.compact-harvest-node{position:absolute;z-index:1;right:8%;bottom:8%;width:clamp(150px,22vw,330px);height:clamp(150px,22vw,330px);object-fit:contain;filter:drop-shadow(0 18px 18px rgba(0,0,0,.7))}.compact-harvest-stage:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,8,10,.1),rgba(2,8,10,.02) 48%,rgba(2,8,10,.72)),linear-gradient(90deg,rgba(2,8,10,.45),transparent 55%);pointer-events:none}.compact-harvest-stage-copy{position:absolute;z-index:2;left:18px;bottom:78px;width:min(560px,68%);padding:12px 14px;border-left:2px solid #c08b36;background:linear-gradient(90deg,rgba(2,10,13,.88),rgba(2,10,13,.28))}.compact-harvest-stage-copy h2{margin:3px 0;color:#ead8b7;font:clamp(25px,2.5vw,39px)/1 var(--font-title)}.compact-harvest-stage-copy p{margin:5px 0 0;color:#b8b1a5;font-size:10px;line-height:1.45}.compact-harvest-skill{position:absolute;z-index:2;left:12px;right:12px;bottom:10px;display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:8px;width:min(340px,calc(100% - 24px));padding:6px 8px;border:1px solid rgba(151,111,52,.4);background:rgba(3,12,15,.9)}.compact-harvest-skill>img{width:42px;height:42px;object-fit:cover}.compact-harvest-skill>span{display:grid;gap:3px}.compact-harvest-skill b{color:#ddc9a6;font-size:9px}.compact-harvest-skill small{color:#8fa09f;font-size:7px}.compact-harvest-skill i{display:block;height:3px;background:#1d2a2b}.compact-harvest-skill i em{display:block;height:100%;background:#50b99f}
.compact-harvest-rail{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto auto;gap:10px;min-width:0;min-height:0;padding:13px;background:linear-gradient(180deg,#08171b,#051014)}.compact-harvest-rail>header{display:flex;align-items:start;justify-content:space-between;gap:8px;padding-bottom:9px;border-bottom:1px solid rgba(150,109,52,.25)}.compact-harvest-rail h3{margin:3px 0 0;color:#e1cfad;font:21px/1 var(--font-title)}.compact-harvest-rail header>span{color:#b59358;font-size:8px}.compact-harvest-materials{min-height:0;overflow-y:auto}.compact-harvest-materials>div{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:7px;padding:7px 0;border-bottom:1px solid rgba(131,108,72,.15)}.compact-harvest-materials .material-stock-img{width:38px;height:38px}.compact-harvest-materials span{display:grid;gap:2px}.compact-harvest-materials b{color:#d8c8ac;font-size:9px}.compact-harvest-materials small{color:#817e77;font-size:7px}.compact-harvest-materials strong{color:#d9b66f;font-size:10px}.compact-harvest-risk{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.compact-harvest-risk>div{display:grid;gap:3px;padding:7px;border:1px solid rgba(146,106,50,.24);background:rgba(0,0,0,.16)}.compact-harvest-risk small{color:#7e837f;font-size:7px}.compact-harvest-risk b{color:#ead08f;font-size:15px}.compact-harvest-rail>p{margin:0;color:#85847e;font-size:8px;line-height:1.4}.compact-harvest-button{min-height:48px;width:100%}
@media(max-width:1100px) and (min-width:761px){.compact-gather-skills{grid-template-columns:repeat(3,1fr)}.compact-gather-skill{min-height:120px}.compact-gather-locations{grid-template-columns:1fr}.compact-harvest-shell{grid-template-columns:minmax(0,1fr) 280px}}
@media(min-width:761px) and (max-height:820px){.compact-gather-page{gap:6px}.compact-gather-head .subtle{display:none}.compact-gather-head .page-title{font-size:23px}.compact-harvest-shell{height:calc(100dvh - 202px);min-height:430px}.compact-harvest-stage-copy{bottom:68px;padding-block:8px}.compact-harvest-stage-copy h2{font-size:27px}.compact-harvest-rail{gap:6px;padding:9px}.compact-harvest-materials>div{padding:4px 0}}
@media(max-width:760px){.compact-gather-page{gap:8px}.compact-gather-head .subtle{display:none}.compact-gather-head .page-title{font-size:23px}.compact-gather-back{gap:4px}.compact-gather-back .btn{padding-inline:7px;font-size:9px}.compact-gather-skill-shell,.compact-gather-location-shell{padding:8px}.compact-gather-skill-shell>header p,.compact-gather-location-shell>header p{display:none}.compact-gather-skills{display:flex;overflow-x:auto}.compact-gather-skill{flex:0 0 220px;min-height:112px;grid-template-columns:54px 1fr}.compact-gather-skill>img{width:54px;height:82px}.compact-gather-locations{display:block;max-height:none;overflow:visible}.compact-gather-location{grid-template-columns:88px minmax(0,1fr);margin-bottom:7px}.compact-gather-location>img{width:88px}.compact-gather-location>.btn{grid-column:1/-1;min-height:40px;border-width:1px 0 0}.compact-harvest-shell{display:block;height:auto;border-radius:12px}.compact-harvest-stage{height:clamp(270px,43dvh,390px);border-right:0;border-bottom:1px solid #49341e}.compact-harvest-stage-copy{left:10px;bottom:69px;width:calc(100% - 20px);padding:8px 9px}.compact-harvest-stage-copy h2{font-size:25px}.compact-harvest-stage-copy p{font-size:8px}.compact-harvest-skill{bottom:8px}.compact-harvest-rail{min-height:350px;padding:11px}.compact-harvest-materials{max-height:220px}}

/* ========================= V38.19 Talent Web ========================= */
.talent-specialization-key{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:12px 0}.spec-key{display:grid;grid-template-columns:48px 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:10px 14px;border:1px solid rgba(190,139,56,.28);background:linear-gradient(90deg,rgba(17,72,76,.24),rgba(5,14,18,.68))}.spec-key.spec-1{background:linear-gradient(270deg,rgba(112,61,30,.23),rgba(5,14,18,.68));text-align:right;grid-template-columns:1fr 48px}.spec-key.spec-1>span{grid-column:2;grid-row:1/3}.spec-key.spec-1>b,.spec-key.spec-1>small{grid-column:1}.spec-key>span{grid-row:1/3;width:46px;height:46px;border:1px solid #9a6b2c;border-radius:50%;overflow:hidden;background:#061014}.spec-key img{width:100%;height:100%;object-fit:cover}.spec-key b{color:#ead7b4;font:20px var(--font-title)}.spec-key small{color:#998d7c}
.talent-web-shell{position:relative;min-height:720px;overflow:hidden;background:radial-gradient(circle at 50% 54%,rgba(34,91,94,.22),transparent 26%),linear-gradient(115deg,rgba(18,70,75,.18),transparent 44%,rgba(111,60,28,.18)),#050d11}.talent-web-backdrop{position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,transparent 0 13%,rgba(204,151,61,.08) 13.2% 13.5%,transparent 13.8% 27%,rgba(204,151,61,.05) 27.2% 27.5%,transparent 27.8% 43%,rgba(204,151,61,.035) 43.2% 43.5%,transparent 43.8%),linear-gradient(90deg,rgba(42,121,124,.06),transparent 45%,rgba(151,81,34,.06));opacity:.9}.talent-web-lines{position:absolute;inset:4%;width:92%;height:92%;overflow:visible}.talent-web-lines line{stroke:rgba(111,86,53,.54);stroke-width:.55;stroke-dasharray:1.3 1.1;vector-effect:non-scaling-stroke}.talent-web-lines line.active{stroke:#d3a54f;stroke-width:1.25;stroke-dasharray:none;filter:drop-shadow(0 0 3px rgba(234,181,78,.75))}.talent-web-lines line.root-link{stroke-width:.85}
.talent-core-node{position:absolute;left:50%;top:88%;transform:translate(-50%,-50%);z-index:3;display:grid;place-items:center;width:90px;height:90px;border:2px solid #c9943b;border-radius:50%;background:radial-gradient(circle,#17363a,#071216 68%);box-shadow:0 0 0 7px rgba(4,12,15,.86),0 0 28px rgba(47,157,160,.25)}.talent-core-node .class-iconbox{width:46px;height:46px}.talent-core-node b{color:#f4dab0;font:15px var(--font-title)}.talent-core-node small{color:#8fc9c7;font-size:9px;text-transform:uppercase;letter-spacing:1px}
.talent-web-node{position:absolute;left:var(--node-x);top:var(--node-y);transform:translate(-50%,-50%)!important;z-index:4;width:112px;min-height:112px;padding:8px 7px 7px;border:1px solid #5d472b;border-radius:50%;background:radial-gradient(circle,#10242a 0 54%,#061014 56%);color:#d6c5a6;box-shadow:0 0 0 5px rgba(4,11,14,.86);display:grid;grid-template-rows:58px auto;place-items:center;align-content:center}.talent-web-node:hover:not(:disabled),.talent-web-node:focus-visible{border-color:#e1b65b;box-shadow:0 0 0 5px rgba(4,11,14,.9),0 0 24px rgba(220,166,66,.35)}.talent-web-node.active{border-color:#e2b85d;background:radial-gradient(circle,#214448 0 54%,#071216 56%)}.talent-web-node.transform{border-style:double;border-width:3px}.talent-web-node.locked{filter:grayscale(.72);opacity:.58}.talent-node-art{display:block;width:58px;height:58px;border-radius:50%;overflow:hidden;background:#03090b}.talent-node-art img{width:100%;height:100%;object-fit:cover}.talent-web-node>b{max-width:96px;font-size:10px;line-height:1.1}.talent-rank-badge{position:absolute;right:0;bottom:7px;display:grid;place-items:center;min-width:28px;height:28px;padding:0 4px;border:1px solid #9b6e32;border-radius:50%;background:#071014;color:#f0cf86;font-size:10px;font-weight:800}.talent-web-node.transform .talent-rank-badge{border-color:#68b9c0;color:#a6edf0}
.talent-web-tooltip{pointer-events:none;position:absolute;left:50%;bottom:calc(100% + 12px);transform:translateX(-50%);z-index:20;display:none;width:260px;padding:11px;border:1px solid #9b6d32;background:rgba(4,11,14,.98);box-shadow:0 12px 30px rgba(0,0,0,.6);text-align:left}.talent-web-node:hover .talent-web-tooltip,.talent-web-node:focus-visible .talent-web-tooltip{display:grid;gap:5px}.talent-web-tooltip small{color:#8ec8c7;font-size:9px;letter-spacing:.7px}.talent-web-tooltip strong{color:#e8d2aa;font-size:12px;line-height:1.4}.talent-web-tooltip em{color:#c99c51;font-size:10px;font-style:normal}
.ability-icon-art{display:block;width:42px;height:42px;margin:0 auto 5px;border:1px solid rgba(198,145,58,.5);border-radius:9px;object-fit:cover;background:#03090b}.compact-combat-controls .ability-icon-art{width:34px;height:34px;margin:0 auto 3px}.shared-ability-grid .ability-icon-art{display:inline-block;width:32px;height:32px;margin:0 7px 0 0;vertical-align:middle}
@media(max-width:900px){.talent-web-shell{min-height:660px}.talent-web-node{width:94px;min-height:94px;grid-template-rows:48px auto}.talent-node-art{width:48px;height:48px}.talent-web-node>b{font-size:9px}.talent-web-tooltip{width:220px}.talent-core-node{width:78px;height:78px}}
@media(max-width:760px){.talent-specialization-key{grid-template-columns:1fr;gap:7px}.spec-key.spec-1{grid-template-columns:48px 1fr;text-align:left}.spec-key.spec-1>span{grid-column:1}.spec-key.spec-1>b,.spec-key.spec-1>small{grid-column:2}.talent-web-shell{min-height:760px;overflow-x:auto}.talent-web-node{width:88px;min-height:88px}.talent-page-head .subtle{display:block;font-size:11px}.talent-overview{grid-template-columns:1fr 1fr}}

/* V38.19 readable talent selection for mouse and touch */
.talent-web-node.selected{border-color:#f4ce75;box-shadow:0 0 0 6px rgba(4,11,14,.92),0 0 28px rgba(232,180,74,.48)}
.talent-selected-detail{display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:82px;margin:0 0 12px;padding:10px 12px;border:1px solid rgba(205,151,61,.55);background:linear-gradient(90deg,rgba(20,65,69,.5),rgba(6,15,19,.96) 46%,rgba(97,52,29,.35));box-shadow:inset 0 0 22px rgba(0,0,0,.28)}
.talent-selected-detail>img{width:58px;height:58px;border:1px solid #9b6d32;border-radius:9px;object-fit:cover}.talent-selected-detail>div:nth-child(2){display:grid;gap:3px}.talent-selected-detail small{color:#83c5c5;font-size:9px;letter-spacing:.7px;text-transform:uppercase}.talent-selected-detail b{color:#ecd6ae;font:18px var(--font-title)}.talent-selected-detail b span{color:#c99b4c;font:11px var(--font-body)}.talent-selected-detail p{margin:0;color:#bdb2a1;font-size:11px;line-height:1.35}.talent-selected-detail>div:last-child{display:grid;justify-items:end;gap:6px;min-width:145px}.talent-selected-detail em{color:#c99b4c;font-size:9px;font-style:normal;text-align:right}.talent-selected-detail.locked{border-color:rgba(119,96,65,.45)}
@media(max-width:760px){.talent-selected-detail{grid-template-columns:48px 1fr;gap:8px}.talent-selected-detail>img{width:48px;height:48px}.talent-selected-detail>div:last-child{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;width:100%}.talent-selected-detail em{text-align:left}}

/* ========================= V38.20 Navigable Talent Web ========================= */
.talent-page{display:grid;gap:9px;min-height:0}.talent-page-head{margin:0;align-items:center}.talent-page-head .subtle{max-width:790px;margin-top:3px}.talent-head-stats{display:flex;align-items:stretch;gap:5px}.talent-head-stats>span{display:grid;min-width:76px;padding:6px 10px;border:1px solid rgba(177,126,52,.3);background:rgba(4,13,17,.8)}.talent-head-stats>span:last-child{min-width:112px}.talent-head-stats small{color:#698f8e;font-size:7px;letter-spacing:.8px}.talent-head-stats b{color:#ead5ae;font:14px var(--font-title)}
.talent-web-viewport{position:relative;height:clamp(570px,calc(100dvh - 245px),760px);min-height:570px;overflow:hidden;isolation:isolate;touch-action:none;cursor:grab;background:#030a0d;border-color:#5c421f;box-shadow:inset 0 0 80px rgba(0,0,0,.72)}.talent-web-viewport.dragging{cursor:grabbing}.talent-web-viewport.dragging *{cursor:grabbing!important;user-select:none}.talent-web-canvas{--talent-scale:.78;--talent-pan-x:0px;--talent-pan-y:0px;position:absolute;left:50%;top:50%;width:1400px;height:900px;transform:translate(calc(-50% + var(--talent-pan-x)),calc(-50% + var(--talent-pan-y))) scale(var(--talent-scale));transform-origin:center;will-change:transform;background:radial-gradient(circle at 50% 54%,rgba(26,82,87,.17),transparent 26%),#040c0f}.talent-web-canvas:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;box-shadow:inset 0 0 115px rgba(0,0,0,.62)}
.talent-web-toolbar{position:absolute;z-index:40;right:10px;top:10px;display:flex;align-items:center;gap:4px;padding:4px;border:1px solid rgba(183,132,55,.42);background:rgba(3,12,15,.92);box-shadow:0 8px 24px rgba(0,0,0,.45)}.talent-web-toolbar button{display:grid;place-items:center;min-width:31px;height:29px;padding:0 8px;border:1px solid rgba(139,103,52,.45);background:#0b1b20;color:#e7c77f;font-weight:800}.talent-web-toolbar button:hover{border-color:#d2a24b;background:#12292e}.talent-web-toolbar output{min-width:39px;color:#b8c9c5;font-size:9px;text-align:center}.talent-web-toolbar .talent-center-button{font-size:8px;text-transform:uppercase;letter-spacing:.5px}.talent-drag-hint{padding:0 8px;color:#779391;font-size:8px;letter-spacing:.3px}
.talent-spec-field{position:absolute;inset:0 50% 0 0;z-index:0;overflow:hidden;background:radial-gradient(ellipse at 65% 48%,color-mix(in srgb,var(--spec-glow) 22%,transparent),transparent 52%),linear-gradient(100deg,color-mix(in srgb,var(--spec-color) 26%,transparent),transparent 80%)}.talent-spec-field.spec-1{inset:0 0 0 50%;background:radial-gradient(ellipse at 35% 48%,color-mix(in srgb,var(--spec-glow) 22%,transparent),transparent 52%),linear-gradient(260deg,color-mix(in srgb,var(--spec-color) 26%,transparent),transparent 80%)}.talent-spec-field:after{content:"";position:absolute;inset:5%;border:1px solid color-mix(in srgb,var(--spec-glow) 13%,transparent);border-radius:48%;filter:blur(1px)}.talent-spec-field>div{position:absolute;left:8%;top:10%;display:grid;gap:1px;color:var(--spec-glow);opacity:.42;text-shadow:0 2px 18px #000}.talent-spec-field.spec-1>div{left:auto;right:8%;text-align:right}.talent-spec-field strong{font:52px/.9 var(--font-title);letter-spacing:1px}.talent-spec-field small{font:14px var(--font-title);letter-spacing:2px;text-transform:uppercase}.talent-spec-field span{font-size:10px;letter-spacing:.7px}
.talent-spec-field.spec-future{inset:0;z-index:1;clip-path:polygon(31% 0,69% 0,65% 73%,50% 91%,35% 73%);opacity:.54;background:radial-gradient(ellipse at 50% 35%,color-mix(in srgb,color-mix(in srgb,var(--future-left) 50%,var(--future-right)) 22%,transparent),transparent 59%),linear-gradient(90deg,transparent 13%,color-mix(in srgb,var(--future-left) 12%,transparent) 48%,color-mix(in srgb,var(--future-right) 12%,transparent) 52%,transparent 87%)}.talent-spec-field.spec-future:after{inset:3% 15% 10%;border-color:rgba(174,154,111,.12);border-radius:48%}.talent-spec-field.spec-future>div{left:50%;right:auto;top:3%;transform:translateX(-50%);width:max-content;color:#b9b095;text-align:center;opacity:.5}.talent-spec-field.spec-future strong{font-size:38px}.talent-spec-field.spec-future small{font-size:11px}.talent-spec-field.spec-future span{font-size:8px;text-transform:uppercase;letter-spacing:1.4px}
.talent-future-branch{position:absolute;inset:0;z-index:4;pointer-events:none}.talent-future-branch>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.talent-future-branch path{fill:none;stroke:rgba(176,157,118,.34);stroke-width:.52;stroke-dasharray:1.2 1.1;vector-effect:non-scaling-stroke}.talent-future-socket{position:absolute;left:var(--node-x);top:var(--node-y);display:grid;place-items:center;width:54px;height:54px;border:1px dashed rgba(180,158,111,.48);border-radius:50%;background:radial-gradient(circle,rgba(117,117,104,.13) 0 47%,rgba(3,11,14,.92) 50%);box-shadow:0 0 0 5px rgba(3,11,14,.72),inset 0 0 15px rgba(170,149,106,.08);transform:translate(-50%,-50%)}.talent-future-socket i{width:18px;height:18px;border:1px solid rgba(183,160,111,.28);border-radius:50%;box-shadow:inset 0 0 8px rgba(183,160,111,.12)}.talent-future-socket.socket-5{width:64px;height:64px;border-style:double}
.talent-web-canvas .talent-web-backdrop{z-index:1;background:radial-gradient(circle at 50% 50%,transparent 0 13%,rgba(205,153,69,.09) 13.2% 13.5%,transparent 13.8% 28%,rgba(205,153,69,.055) 28.2% 28.45%,transparent 28.8% 43%,rgba(205,153,69,.035) 43.2% 43.45%,transparent 43.8%),radial-gradient(ellipse at 50% 50%,rgba(82,132,128,.1),transparent 45%)}.talent-web-canvas .talent-web-lines{z-index:2}.talent-web-canvas .talent-core-node{z-index:5;width:94px;height:94px}
.talent-web-node{z-index:6;width:96px;min-height:96px;height:96px;padding:0;grid-template-rows:1fr;border-width:2px;transition:border-color .16s,box-shadow .16s,filter .16s,opacity .16s}.talent-web-node .talent-node-art{width:58px;height:58px}.talent-web-node>b{position:absolute;left:50%;top:calc(100% + 5px);transform:translateX(-50%);width:max-content;max-width:145px;padding:2px 6px;border:1px solid rgba(92,69,39,.38);background:rgba(3,11,14,.88);font-size:10px;line-height:1.15;white-space:nowrap;text-shadow:0 1px 2px #000}.talent-web-node .talent-rank-badge{right:-5px;bottom:-3px;min-width:29px;height:29px}.talent-web-node.passive{width:70px;height:70px;min-height:70px;border-width:1px;background:radial-gradient(circle,#10242a 0 58%,#061014 60%);box-shadow:0 0 0 4px rgba(4,11,14,.86)}.talent-web-node.passive .talent-node-art{width:42px;height:42px}.talent-web-node.passive>b{font-size:9px}.talent-web-node.passive .talent-rank-badge{right:-8px;bottom:-8px;min-width:26px;height:26px;font-size:9px}.talent-web-node.special{width:94px;height:94px;min-height:94px}.talent-web-node.keystone{width:136px;height:136px;min-height:136px;border:4px double #53a8ae;background:radial-gradient(circle at 50% 42%,#22464d 0 52%,#071216 55%);box-shadow:0 0 0 8px rgba(3,11,14,.91),0 0 34px color-mix(in srgb,#55b5bd 35%,transparent)}.talent-web-node.keystone .talent-node-art{width:82px;height:82px;box-shadow:0 0 22px rgba(89,192,199,.3)}.talent-web-node.keystone>b{top:calc(100% + 7px);color:#f3dfb9;font:15px var(--font-title);border-color:rgba(82,174,181,.44)}.talent-web-node.keystone .talent-rank-badge{right:1px;bottom:3px;width:34px;height:34px;border-color:#65bec4;color:#bdf5f3}.talent-web-node.keystone.selected{border-color:#f0ca6e;box-shadow:0 0 0 8px rgba(3,11,14,.92),0 0 42px rgba(239,194,93,.5)}
.talent-web-node .talent-web-tooltip{bottom:calc(100% + 27px)}.talent-web-node.keystone .talent-web-tooltip{bottom:calc(100% + 32px)}
.talent-web-node,.talent-web-node:hover,.talent-web-node:focus,.talent-web-node:focus-visible,.talent-web-node:active{box-sizing:border-box;margin:0;translate:none;transform:translate(-50%,-50%)!important}.talent-web-node:hover,.talent-web-node:focus-visible{z-index:80}.talent-web-node .talent-web-tooltip{display:grid;visibility:hidden;z-index:120;gap:5px;opacity:0;transition:opacity .12s ease;transform:translateX(-50%)!important}.talent-web-node:hover .talent-web-tooltip,.talent-web-node:focus-visible .talent-web-tooltip{visibility:visible;opacity:1}.talent-web-node .talent-web-tooltip:before{content:"";position:absolute;left:50%;top:100%;width:10px;height:10px;border-right:1px solid #9b6d32;border-bottom:1px solid #9b6d32;background:rgba(4,11,14,.98);transform:translate(-50%,-50%) rotate(45deg)}
.talent-web-viewport>.talent-selected-detail{position:absolute;z-index:35;left:10px;right:10px;bottom:10px;margin:0;min-height:74px;background:linear-gradient(90deg,rgba(12,47,51,.96),rgba(4,12,15,.97) 52%,rgba(61,34,22,.96));backdrop-filter:blur(8px)}.talent-reset-panel{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:8px}.talent-reset-panel h2{margin:0}.talent-reset-panel p{margin:2px 0 0;font-size:9px}
@media(max-width:1050px){.talent-head-stats>span{min-width:66px;padding-inline:7px}.talent-web-canvas{width:1250px;height:860px}.talent-spec-field strong{font-size:44px}}
@media(max-width:760px){.talent-page{gap:7px}.talent-page-head{align-items:start}.talent-page-head .subtle{display:none}.talent-head-stats{width:100%}.talent-head-stats>span{flex:1;min-width:0;padding:5px 7px}.talent-head-stats>span:last-child{min-width:0}.talent-head-stats b{font-size:12px}.talent-web-viewport{height:calc(100dvh - 226px);min-height:510px;border-radius:10px}.talent-web-canvas{width:1120px;height:820px}.talent-web-toolbar{left:7px;right:7px;top:7px;justify-content:flex-end}.talent-drag-hint{margin-right:auto;font-size:7px}.talent-web-viewport>.talent-selected-detail{left:7px;right:7px;bottom:7px;min-height:104px;padding:7px}.talent-selected-detail p{font-size:9px}.talent-selected-detail>div:last-child{gap:5px}.talent-selected-detail .btn{padding:7px 10px}.talent-spec-field strong{font-size:38px}.talent-spec-field.spec-future strong{font-size:30px}.talent-reset-panel{padding:7px 9px}.talent-reset-panel p{display:none}.talent-web-node.passive{width:66px;min-height:66px;height:66px}.talent-web-node.special{width:88px;min-height:88px;height:88px}.talent-web-node.keystone{width:126px;min-height:126px;height:126px}.talent-future-socket{width:48px;height:48px}.talent-future-socket.socket-5{width:56px;height:56px}}
@media(max-width:430px){.talent-drag-hint{font-size:0}.talent-drag-hint:after{content:"Drag · zoom";font-size:7px}.talent-web-toolbar output{min-width:33px}.talent-web-toolbar .talent-center-button{padding-inline:6px}.talent-head-stats small{font-size:6px}.talent-head-stats b{font-size:11px}}

/* ========================= V38.22 Talent Route Readability ========================= */
.talent-web-canvas .talent-web-lines{inset:0;z-index:3;width:100%;height:100%}
.talent-web-lines line{stroke:color-mix(in srgb,var(--route-spec) 60%,#8b806b);stroke-width:1.35;stroke-dasharray:none;opacity:.78;filter:drop-shadow(0 0 2px rgba(0,0,0,.95));vector-effect:non-scaling-stroke}
.talent-web-lines line.route-locked{stroke:color-mix(in srgb,var(--route-spec) 34%,#6e665a);stroke-width:1.2;opacity:.62}
.talent-web-lines line.route-available{stroke:var(--route-spec);stroke-width:2.1;opacity:.95;filter:drop-shadow(0 0 3px color-mix(in srgb,var(--route-spec) 62%,transparent))}
.talent-web-lines line.route-learned{stroke:#efc866;stroke-width:2.65;opacity:1;filter:drop-shadow(0 0 4px rgba(239,200,102,.72))}
.talent-web-lines line.alternate-route{stroke-dasharray:5 3}
.talent-web-lines line.route-learned.alternate-route{stroke-dasharray:none}
.talent-web-lines line.root-link{stroke-width:2}
.talent-route-legend{position:absolute;z-index:40;left:10px;top:10px;display:flex;align-items:center;gap:10px;padding:6px 9px;border:1px solid rgba(153,118,65,.3);background:rgba(3,12,15,.88);box-shadow:0 7px 20px rgba(0,0,0,.35);pointer-events:none}
.talent-route-legend span{display:flex;align-items:center;gap:5px;color:#9b9b90;font-size:8px;letter-spacing:.35px}
.talent-route-legend i{display:block;width:22px;height:0;border-top:2px solid #756f63}
.talent-route-legend .learned i{border-color:#efc866;box-shadow:0 0 4px rgba(239,200,102,.68)}
.talent-route-legend .available i{border-color:#75c7c4;box-shadow:0 0 4px rgba(117,199,196,.5)}
.talent-route-legend .alternate i{border-top-style:dashed;border-color:#b7a777}
.talent-route-legend .locked i{border-color:#5f5b53;opacity:.7}
.talent-future-branch path{stroke:rgba(190,171,129,.55)!important;stroke-width:1.2!important;stroke-dasharray:5 4!important;filter:drop-shadow(0 0 2px rgba(0,0,0,.9))}
@media(max-width:760px){.talent-route-legend{left:7px;top:45px;gap:7px;padding:5px 7px}.talent-route-legend span{font-size:7px}.talent-route-legend i{width:15px}}

/* Group dungeons use the same scene-first combat language as solo rooms. */
.shared-group-stage{min-height:430px;overflow:hidden}.shared-stage-allies{position:absolute;left:2%;bottom:3%;width:48%;height:72%;z-index:4}.shared-stage-ally{position:absolute;left:calc(var(--ally-index) * 23%);bottom:0;width:38%;height:82%;border:0;background:transparent;color:var(--text);padding:0;cursor:pointer;filter:drop-shadow(0 14px 13px rgba(0,0,0,.9))}.shared-stage-ally img{width:100%;height:100%;object-fit:contain;object-position:center bottom;transform:scaleX(-1)}.shared-stage-ally span{position:absolute;left:50%;bottom:3px;transform:translateX(-50%);padding:3px 7px;background:rgba(3,9,12,.9);border:1px solid rgba(200,151,72,.55);font-size:9px;white-space:nowrap}.shared-stage-ally.current-turn{filter:drop-shadow(0 0 11px rgba(239,188,87,.95)) drop-shadow(0 14px 13px rgba(0,0,0,.9))}.shared-stage-ally.defeated{opacity:.42;filter:grayscale(1)}.shared-stage-target{border:0;background:transparent;cursor:pointer}.shared-combat-rail{overflow:auto}.shared-combat-rail .compact-combat-target-panel{flex:0 0 auto}.shared-combat-rail .shared-combat-unit>img{object-fit:contain;background:radial-gradient(circle,rgba(88,48,31,.35),transparent 68%)}.shared-group-actions{display:grid!important;grid-template-columns:minmax(210px,.45fr) minmax(0,1.55fr)!important;align-items:stretch;min-height:116px}.shared-group-actions>.shared-combat-actions{margin:0;display:grid;grid-template-columns:1fr;gap:6px;align-content:start}.shared-group-actions>.shared-combat-actions .btn{min-width:0;min-height:31px;color:#f3dfb4;font-size:10px;line-height:1.1}.shared-group-actions>.shared-ability-grid{grid-template-columns:repeat(5,minmax(90px,1fr));gap:6px;margin:0;align-content:start}.shared-group-actions>.shared-ability-grid .ability{display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;gap:1px 6px;min-width:0;min-height:96px;padding:7px}.shared-group-actions>.shared-ability-grid .ability-icon-art{grid-row:1/3;margin:0}.shared-group-actions>.shared-ability-grid .ability b,.shared-group-actions>.shared-ability-grid .ability small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shared-group-actions>.waiting-banner{grid-column:1/-1}
@media(max-width:900px){.shared-group-stage{min-height:360px}.shared-stage-allies{width:52%}.shared-group-actions{grid-template-columns:1fr!important}.shared-group-actions>.shared-combat-actions{grid-template-columns:repeat(3,1fr)}.shared-group-actions>.waiting-banner{grid-column:auto}}
@media(max-width:900px){.shared-group-actions>.shared-ability-grid{grid-template-columns:repeat(3,minmax(100px,1fr))}}
@media(max-width:600px){.shared-group-stage{min-height:310px}.shared-stage-allies{left:0;width:62%;height:66%}.shared-stage-ally{width:44%;left:calc(var(--ally-index) * 22%)}.shared-group-actions>.shared-combat-actions{grid-template-columns:repeat(3,1fr)}.shared-group-actions>.shared-ability-grid{display:flex;overflow-x:auto}.shared-group-actions>.shared-ability-grid .ability{flex:0 0 128px}.shared-combat-rail{max-height:330px}}
.shared-group-actions{z-index:10}
