:root{--stone-900:#14141b;--stone-800:#1c1c26;--stone-700:#262633;--stone-600:#334;--bronze:#c9a25e;--bronze-dim:#8a6f42;--red-cloth:#a33434;--amber:#ffb84d;--text:#e8e2d4;--text-dim:#9b957f;--green:#7fb069;--hp:#c94f4f;--exp:#ffb84d;--rar-common:#cfcfcf;--rar-uncommon:#7fb069;--rar-rare:#5c9ded;--rar-epic:#b06ad4;--rar-legendary:#ff9d3c}*{box-sizing:border-box}html,body,#root{height:100%;color:var(--text);background:#0d0d12;margin:0;font-family:Segoe UI,Verdana,sans-serif;font-size:13px}button{font:inherit;color:var(--text);background:var(--stone-600);border:1px solid var(--bronze-dim);cursor:pointer;border-radius:3px;padding:4px 10px}button:hover:not(:disabled){border-color:var(--bronze);background:#3d3d50}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--red-cloth);border-color:var(--bronze)}button.primary:hover:not(:disabled){background:#bf4040}input{font:inherit;background:var(--stone-900);color:var(--text);border:1px solid var(--bronze-dim);border-radius:3px;padding:6px 8px}.app-shell{background:radial-gradient(at 50% 30%,#16161f 0%,#0d0d12 70%);flex-direction:column;justify-content:flex-end;align-items:stretch;height:100%;display:flex}.minibar{background:linear-gradient(180deg, var(--stone-800), var(--stone-900));border-top:2px solid var(--bronze-dim);align-items:stretch;gap:10px;height:104px;padding:4px 10px;display:flex;box-shadow:0 -4px 18px #0009}.minibar .stage{border:1px solid var(--stone-600);border-radius:4px;flex:none;align-self:center;overflow:hidden}.minibar .col{flex-direction:column;justify-content:center;gap:4px;min-width:0;display:flex}.minibar .grow{flex:auto}.minibar .enemy-col{width:190px}.statline{white-space:nowrap;align-items:baseline;gap:10px;display:flex;overflow:hidden}.statline .name{color:var(--bronze);font-weight:600}.statline .dim{color:var(--text-dim);font-size:12px}.gold{color:var(--amber)}.bar{background:var(--stone-900);border:1px solid var(--stone-600);border-radius:2px;height:12px;position:relative;overflow:hidden}.bar .fill{transform-origin:0;position:absolute;inset:0}.bar.hp .fill{background:linear-gradient(180deg, #d96a6a, var(--hp))}.bar.exp .fill{background:linear-gradient(180deg, #ffd08a, var(--exp))}.bar.enemy .fill{background:linear-gradient(#9a86d8,#6a55b0)}.bar .label{color:#fff;text-shadow:0 1px 2px #000;letter-spacing:.4px;justify-content:center;align-items:center;font-size:9px;display:flex;position:absolute;inset:0}.lootline{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.panel{background:var(--stone-800);border:2px solid var(--bronze-dim);border-radius:6px;flex-direction:column;align-self:center;width:min(760px,96vw);max-height:calc(100vh - 130px);margin-bottom:6px;display:flex;overflow:hidden;box-shadow:0 10px 40px #000000b3}.panel-header{background:linear-gradient(180deg, #2c2c3a, var(--stone-700));border-bottom:1px solid var(--bronze-dim);align-items:center;padding:8px 12px;display:flex}.panel-header h2{color:var(--bronze);letter-spacing:1px;flex:1;margin:0;font-size:14px}.tabs{background:var(--stone-700);gap:2px;padding:6px 8px 0;display:flex;overflow-x:auto}.tabs button{background:var(--stone-800);border-bottom:none;border-radius:4px 4px 0 0;flex:none;padding:5px 12px}.tabs button.active{background:var(--stone-800);color:var(--amber);border-color:var(--bronze)}.tab-body{flex:1;min-height:260px;padding:12px;overflow-y:auto}.town-nav{background:var(--stone-700);border-bottom:1px solid #3d3429;align-items:center;gap:4px;min-height:40px;padding:6px 8px;display:flex}.town-nav button{background:var(--stone-800)}.town-nav button.active,.quick-access-menu button.active,.location-nav button.active{color:var(--amber);border-color:var(--bronze);background:#30281f}.town-nav-location{min-width:0;color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;margin-left:auto;font-size:11px;overflow:hidden}.quick-access-menu{border-bottom:1px solid var(--stone-600);background:#181820;flex-wrap:wrap;gap:4px;padding:6px 8px;display:flex}.quick-access-menu button{padding:3px 8px;font-size:11px}.quick-access-menu button.feature-locked,.location-nav button.feature-locked{color:#88838a;opacity:.72;background:#1b1a20;border-style:dashed}.location-nav{background:linear-gradient(90deg,#1b1815,#25242b);border-bottom:1px solid #4e3e2a;align-items:center;gap:5px;padding:5px 10px;display:flex}.location-nav span{color:#a99573;letter-spacing:1.1px;margin-right:auto;font-size:9px;font-weight:800}.location-nav button{padding:3px 8px;font-size:11px}.town-shell{min-height:410px}.town-intro{justify-content:space-between;align-items:start;gap:16px;margin-bottom:9px;display:flex}.town-intro h3{color:var(--amber);margin:2px 0 3px;font-size:17px}.town-intro p{color:var(--text-dim);margin:0;font-size:11px}.town-kicker{color:#d49245;letter-spacing:1.5px;font-size:9px;font-weight:900}.town-weather{color:#e7bd6b;letter-spacing:1px;background:#241d15;border:1px solid #70552d;flex:none;padding:4px 7px;font-size:9px;font-weight:800}.town-map{background-color:#263c2a;background-image:linear-gradient(90deg,#8fae6814 1px,#0000 1px),linear-gradient(#8fae6814 1px,#0000 1px),radial-gradient(circle at 18% 20%,#334b30 0 2px,#0000 3px),radial-gradient(circle at 78% 72%,#1b3022 0 2px,#0000 3px);background-size:12px 12px,12px 12px,37px 31px,41px 43px;border:2px solid #564328;border-radius:4px;min-height:390px;position:relative;overflow:hidden;box-shadow:inset 0 0 35px #040a06a6}.town-river{opacity:.72;background:repeating-linear-gradient(0deg,#28464e 0 7px,#31545c 7px 10px);border-inline:3px solid #172d32;width:54px;position:absolute;top:-20px;bottom:-20px;left:47%;transform:rotate(7deg)}.town-road{z-index:1;opacity:.72;background:#6a5a43;position:absolute}.road-vertical{width:34px;top:0;bottom:0;left:calc(50% - 17px)}.road-horizontal{height:32px;top:calc(50% - 16px);left:0;right:0}.town-plaza{z-index:2;background:repeating-linear-gradient(45deg,#82745e 0 5px,#756751 5px 10px);border:5px solid #786a54;border-radius:50%;width:92px;height:76px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 3px #3a432d}.town-well{background:#152a33;border:5px solid #34343b;border-radius:50%;width:25px;height:25px;position:absolute;top:17px;left:31px}.hero-marker{background:var(--red-cloth);border:2px solid #f3d58c;width:9px;height:15px;position:absolute;bottom:5px;right:10px;box-shadow:0 2px #111}.hero-marker.mounted:after{content:"";z-index:-1;background:#718050;border-radius:6px 8px 3px 3px;width:18px;height:8px;position:absolute;bottom:-5px;left:-8px;box-shadow:12px -4px 0 -2px #718050,1px 5px 0 -2px #40382d,13px 5px 0 -2px #40382d}.town-building{z-index:3;text-align:left;background:#18181beb;border:1px solid #80633b;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:7px;width:184px;min-height:77px;padding:5px 7px;display:grid;position:absolute;box-shadow:0 4px #08080a80}.town-building:hover:not(:disabled),.town-building:focus-visible{z-index:5;outline-offset:1px;background:#30281f;outline:2px solid #d5a752;transform:translateY(-2px)}.town-northwest{top:13px;left:13px}.town-north{top:13px;left:50%;transform:translate(-50%)}.town-north:hover:not(:disabled),.town-north:focus-visible{transform:translate(-50%,-2px)}.town-northeast{top:13px;right:13px}.town-west{top:50%;left:13px;transform:translateY(-50%)}.town-west:hover:not(:disabled),.town-west:focus-visible{transform:translateY(calc(-50% - 2px))}.town-east{top:50%;right:13px;transform:translateY(-50%)}.town-east:hover:not(:disabled),.town-east:focus-visible{transform:translateY(calc(-50% - 2px))}.town-southwest{bottom:18px;left:13px}.town-south{bottom:18px;left:50%;transform:translate(-50%)}.town-south:hover:not(:disabled),.town-south:focus-visible{transform:translate(-50%,-2px)}.town-southeast{bottom:18px;right:13px}.town-building-art{width:54px;height:50px;image-rendering:pixelated;position:relative}.town-building-art i{display:block;position:absolute}.town-building-art .roof{clip-path:polygon(50% 0,100% 65%,92% 100%,8% 100%,0 65%);background:#914b39;width:50px;height:20px;top:3px;left:2px;box-shadow:inset 0 -5px #693328}.town-building-art .front{background:#9a7d55;border-inline:4px solid #503d2a;width:40px;height:25px;top:22px;left:7px}.town-building-art .door{background:#35251e;width:10px;height:16px;top:31px;left:23px}.town-building-art .sign{background:#e3b35c;width:8px;height:7px;top:25px;left:9px}.landmark-forge .roof{background:#7e3b31}.landmark-forge .sign{box-shadow:0 0 7px #ff7c31}.landmark-market .roof{background:repeating-linear-gradient(90deg,#b64343 0 7px,#d9c07a 7px 14px)}.landmark-guild .roof{background:#4d5985}.landmark-arena .front{background:#705b52;border-color:#794845}.landmark-board .front{background:#715035}.landmark-gate .front{background:#73737b;border-color:#55545c}.landmark-shrine .roof{background:#5a6e72}.landmark-inn .roof{background:#6f4930}.town-building-copy{gap:1px;min-width:0;display:grid}.town-building-copy small{color:#ca9450;letter-spacing:.8px;font-size:7px;font-weight:900}.town-building-copy b{color:#f0d39b;font-size:11px;line-height:1.05}.town-building-copy span{color:#a7a08e;font-size:9px;line-height:1.2}.town-building-services{flex-wrap:wrap;display:flex}.town-building-services i{font-style:normal}.town-building-services i.locked{color:#807a76}.town-building.soft-locked{filter:saturate(.45);border-style:dashed;border-color:#6f675a}.town-building.soft-locked:after{content:"LOCKED";color:#d6b875;letter-spacing:.8px;font-size:7px;font-weight:900;position:absolute;top:4px;right:5px}.town-building.soft-locked:hover,.town-building.soft-locked:focus-visible{filter:saturate(.8)}.town-locked-preview{background:linear-gradient(90deg,#211b17,#25242b);border:1px dashed #8b7044;border-radius:4px;grid-template-columns:minmax(115px,.45fr) minmax(0,1.6fr) auto;align-items:center;gap:10px;margin-bottom:8px;padding:8px 10px;display:grid}.town-locked-preview>div{gap:2px;display:grid}.town-locked-preview small{color:#c6934d;letter-spacing:1px;font-size:8px;font-weight:900}.town-locked-preview strong{color:var(--amber)}.town-locked-preview ul{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.town-locked-preview li{min-width:150px}.town-locked-preview li b,.town-locked-preview li span{font-size:10px;display:block}.town-locked-preview li span{color:var(--rar-legendary)}.town-locked-preview li p{color:var(--text-dim);margin:2px 0 0;font-size:9px}.town-badge{color:#fff;text-align:center;background:#a63838;border:2px solid #e8bd68;border-radius:9px;min-width:18px;padding:2px 4px;font-size:8px;font-style:normal;position:absolute;top:-6px;right:-6px}.town-map-caption{z-index:4;color:#e7d7b294;letter-spacing:.7px;text-transform:uppercase;font-size:8px;position:absolute;bottom:4px;right:7px}@media (width<=650px){.town-map{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;min-height:0;padding:8px;display:grid}.town-river,.town-road,.town-plaza,.town-map-caption{display:none}.town-building,.town-north,.town-west,.town-east,.town-south{width:auto;min-height:71px;position:relative;inset:auto;transform:none}.town-building:hover:not(:disabled),.town-building:focus-visible,.town-north:hover:not(:disabled),.town-west:hover:not(:disabled),.town-east:hover:not(:disabled),.town-south:hover:not(:disabled){transform:translateY(-2px)}.town-locked-preview{grid-template-columns:1fr auto}.town-locked-preview ul{grid-area:2/1/auto/-1}}@media (width<=430px){.town-nav-location{display:none}.town-intro{display:block}.town-weather{margin-top:7px;display:inline-block}.town-map{grid-template-columns:1fr}.location-nav{flex-wrap:wrap}.location-nav span{order:-1;width:100%}}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.itemrow{border:1px solid var(--stone-600);background:var(--stone-900);border-radius:4px;align-items:center;gap:8px;margin-bottom:4px;padding:5px 8px;display:flex}.itemrow .iname{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.itemrow .istats{color:var(--text-dim);font-size:11px}.item-meta{flex-wrap:wrap;gap:3px;margin:3px 0 2px 30px;display:flex}.item-chip{border:1px solid var(--stone-600);min-height:16px;color:var(--text-dim);background:var(--stone-800);letter-spacing:.35px;text-transform:uppercase;white-space:nowrap;border-radius:999px;align-items:center;padding:0 5px;font-size:9px;line-height:14px;display:inline-flex}.item-chip.rarity-common{color:var(--rar-common)}.item-chip.rarity-uncommon{color:var(--rar-uncommon);border-color:#557b4d}.item-chip.rarity-rare{color:var(--rar-rare);border-color:#3f6fa7}.item-chip.rarity-epic{color:var(--rar-epic);border-color:#784a91}.item-chip.rarity-legendary{color:var(--rar-legendary);border-color:#a9672e}.item-chip.upgrade{color:var(--amber);border-color:var(--bronze-dim)}.inventory-summary{margin-bottom:8px}.inventory-toolbar{border:1px solid var(--stone-600);background:var(--stone-800);border-radius:4px;grid-template-columns:minmax(150px,1.6fr) repeat(4,minmax(92px,1fr));gap:5px;margin-bottom:6px;padding:7px;display:grid}.inventory-toolbar label{color:var(--text-dim);letter-spacing:.45px;text-transform:uppercase;gap:2px;font-size:9px;display:grid}.inventory-toolbar input,.inventory-toolbar select{width:100%;min-width:0;color:var(--text);background:var(--stone-900);border:1px solid var(--stone-500);font:inherit;border-radius:4px;padding:4px 6px;font-size:11px}.inventory-toolbar button{align-self:end}.inventory-results{margin:0 2px 5px;font-size:10px}.inventory-empty-filter{border:1px dashed var(--stone-600);border-radius:4px;padding:10px 8px}.inventory-actions{flex-wrap:wrap;justify-content:flex-end;gap:5px;display:flex}.equipped-itemrow{background:0 0;border:0;margin:3px 0 0;padding:4px 0}.equipment-candidates{border-top:1px solid var(--stone-700);margin-top:3px}.equipment-candidates summary{color:var(--bronze);cursor:pointer;text-transform:uppercase;letter-spacing:.5px;padding:5px 0 2px;font-size:10px}.equipment-candidate{background:var(--stone-800);margin-top:3px;margin-bottom:0}.equipment-candidates-empty{margin:4px 0 1px;font-size:10px}.item-comparison{color:var(--green);margin-top:3px;font-size:10px}.item-comparison.locked{color:var(--red-bright)}@media (width<=900px){.inventory-toolbar{grid-template-columns:repeat(4,minmax(88px,1fr))}.inventory-search{grid-column:span 2}}@media (width<=620px){.inventory-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.inventory-search{grid-column:1/-1}.inventory-itemrow,.equipment-candidate{align-items:flex-start}.inventory-actions{flex-direction:column}.inventory-actions button{width:100%}}.item-label{vertical-align:middle;align-items:center;gap:6px;min-width:0;display:inline-flex}.item-icon-frame{border:1px solid var(--stone-600);background:radial-gradient(circle at 50% 40%,#30303e,#111118 72%);border-radius:3px;flex:0 0 24px;place-items:center;width:24px;height:24px;display:inline-grid;box-shadow:inset 0 0 0 1px #ffffff06}.item-icon{width:18px;height:18px;image-rendering:pixelated}.r-border-common{border-color:#66666f}.r-border-uncommon{border-color:#557b4d}.r-border-rare{border-color:#3f6fa7}.r-border-epic{border-color:#784a91}.r-border-legendary{border-color:#a9672e;box-shadow:0 0 7px #ff9d3c40}.marketplace-grid{grid-template-columns:minmax(250px,.78fr) minmax(390px,1.22fr);gap:10px;display:grid}.marketplace-titleline{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.marketplace-bag{gap:4px;max-height:150px;display:grid;overflow-y:auto}.marketplace-item-choice{text-align:left;flex-direction:column;align-items:flex-start;gap:2px;display:flex}.marketplace-item-choice small{color:var(--text-dim)}.marketplace-item-choice.selected{border-color:var(--bronze);background:#3d3d50}.marketplace-price-row{gap:6px;margin-top:8px;display:flex}.marketplace-price-row input{flex:1;min-width:80px}.marketplace-listing-form{border-top:1px solid var(--stone-600);gap:7px;margin-top:9px;padding-top:8px;display:grid}.marketplace-listing-form>label{color:var(--text-dim);grid-template-columns:78px minmax(0,1fr);align-items:center;gap:7px;font-size:11px;display:grid}.marketplace-listing-form input{width:100%;min-width:0}.marketplace-fee-preview{color:var(--text-dim);grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.marketplace-fee-preview span{border:1px solid var(--stone-600);background:var(--stone-900);padding:5px}.marketplace-fee-preview b{color:var(--amber);display:block}.marketplace-message{color:var(--green);margin-top:5px}.marketplace-proceeds{width:100%;color:var(--amber);border-color:var(--bronze);margin-bottom:8px}.marketplace-controls{gap:5px;display:flex}.marketplace-controls select,.marketplace-controls input{color:var(--text);background:var(--stone-900);border:1px solid var(--stone-500);border-radius:4px;padding:4px 6px}.marketplace-search-row{grid-template-columns:minmax(0,1.4fr) minmax(100px,.6fr);gap:5px;margin-bottom:6px;display:grid}.marketplace-search-row input{width:100%;min-width:0}.marketplace-filter-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:8px;display:grid}.marketplace-filter-grid>*{width:100%;min-width:0}.marketplace-listings{gap:4px;max-height:330px;display:grid;overflow-y:auto}.marketplace-listing{border:1px solid var(--stone-600);background:var(--stone-800);border-radius:4px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:7px 8px;display:grid}.marketplace-listing .iname{min-width:0}.marketplace-listing .istats{color:var(--text-dim);font-size:11px}.marketplace-price-stack{white-space:nowrap;justify-items:end;display:grid}.marketplace-price-stack small{color:var(--text-dim);font-size:9px}.marketplace-note{margin-bottom:0}.professions-panel{gap:9px;display:grid}.profession-heading,.recipe-titleline,.profession-progress,.profession-tabs,.recipe-costs{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:7px;display:flex}.profession-heading h3,.recipe-titleline p{margin:2px 0}.active-potion{border:1px solid var(--bronze);min-width:145px;color:var(--amber);background:#302b27;gap:2px;padding:7px;display:grid}.active-potion span{color:var(--text-dim);font-size:10px}.profession-tabs button{flex:1}.profession-progress span{border:1px solid var(--stone-600);background:var(--stone-900);text-align:center;flex:1;min-width:82px;padding:5px 7px;font-size:10px}.recipe-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.recipe-card{align-content:start;gap:7px;display:grid}.recipe-card.recipe-locked{opacity:.8;border-style:dashed}.recipe-costs{justify-content:flex-start;font-size:10px}.recipe-costs span{border:1px solid var(--stone-600);padding:3px 5px}.recipe-costs .ready{color:var(--green)}.recipe-costs .missing{color:#e78d83}.recipe-output{color:var(--amber);font-size:10px}.profession-rule-note{margin:0}.r-common{color:var(--rar-common)}.r-uncommon{color:var(--rar-uncommon)}.r-rare{color:var(--rar-rare)}.r-epic{color:var(--rar-epic)}.r-legendary{color:var(--rar-legendary)}.slotbox{border:1px solid var(--stone-600);background:var(--stone-900);border-radius:4px;margin-bottom:6px;padding:8px}.slotbox .slotname{color:var(--text-dim);text-transform:uppercase;letter-spacing:1px;font-size:11px}.slotbox.locked{opacity:.4}.questrow{border:1px solid var(--stone-600);border-left:3px solid var(--bronze-dim);background:var(--stone-900);border-radius:4px;margin-bottom:6px;padding:8px 10px}.questrow.ready{border-left-color:var(--amber)}.questrow.done{opacity:.5;border-left-color:var(--green)}.questrow h4{color:var(--bronze);margin:0 0 2px;font-size:13px}.questrow p{color:var(--text-dim);margin:0 0 4px;font-size:12px}.regioncard{border:1px solid var(--stone-600);background:var(--stone-900);border-radius:4px;margin-bottom:8px;padding:10px}.regioncard h4{color:var(--bronze);margin:0 0 4px}.regioncard p{color:var(--text-dim);margin:0 0 6px;font-size:12px}.regioncard.current{border-color:var(--amber)}.stable-note{margin-top:0}.mount-grid{gap:8px;display:grid}.mount-card{border:1px solid var(--stone-600);border-left:3px solid var(--bronze-dim);background:var(--stone-900);border-radius:4px;grid-template-columns:74px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px;display:grid}.mount-card.active{border-color:var(--amber);box-shadow:inset 0 0 18px #e2a54914}.mount-card.locked{opacity:.58}.mount-copy{gap:2px;display:grid}.mount-copy small{color:var(--bronze);letter-spacing:1px;font-size:9px;font-weight:800}.mount-copy h4{color:var(--amber);margin:0}.mount-copy p{color:var(--text-dim);margin:1px 0;font-size:11px}.mount-copy b{color:var(--green);font-size:11px}.mount-copy span{color:var(--text-dim);font-size:10px}.mount-portrait{width:68px;height:46px;image-rendering:pixelated;position:relative}.mount-portrait i{background:#60774c;display:block;position:absolute}.mount-portrait .mount-body{border-radius:10px 12px 4px 4px;width:39px;height:17px;top:16px;left:12px}.mount-portrait .mount-head{border-radius:8px 8px 5px 2px;width:16px;height:19px;top:9px;left:46px}.mount-portrait .mount-legs{width:5px;height:13px;color:inherit;top:30px;left:17px;box-shadow:22px 0}.mount-cindercrest-courser i{color:#8d4932;background:#8d4932}.mount-moonreed-stag i{color:#74858e;background:#74858e}@media (width<=520px){.mount-card{grid-template-columns:58px minmax(0,1fr)}.mount-card button{grid-column:1/-1}.mount-portrait{transform-origin:0;transform:scale(.8)}}.world-boss-grid{grid-template-columns:1.35fr 1fr;gap:10px;display:grid}.world-boss-card h3{color:var(--amber);margin:4px 0 2px;font-size:18px}.world-boss-kicker{color:var(--hp);letter-spacing:1.4px;font-size:10px;font-weight:700}.world-boss-hp{border:1px solid var(--bronze-dim);background:#08080c;border-radius:3px;height:22px;margin:12px 0 6px;position:relative;overflow:hidden}.world-boss-hp .fill{background:linear-gradient(90deg, #75262d, var(--hp));height:100%}.world-boss-hp span{text-shadow:0 1px 2px #000;justify-content:center;align-items:center;font-size:11px;display:flex;position:absolute;inset:0}.world-boss-meta{justify-content:space-between;margin-bottom:10px;display:flex}.world-boss-assault{border:1px solid var(--amber);color:var(--amber);border-radius:3px;flex-direction:column;gap:2px;padding:7px 9px;display:flex}.world-boss-result{color:var(--green)!important;margin-top:8px!important}.world-boss-leaderboard-title{justify-content:space-between;align-items:center;display:flex}.world-boss-leaderboard-title button{padding:2px 6px;font-size:11px}.world-boss-leaderboard{margin:10px 0 0;padding-left:24px}.world-boss-leaderboard li{border-bottom:1px solid var(--stone-600);grid-template-columns:1fr auto;gap:1px 8px;padding:5px 0;display:grid}.world-boss-leaderboard li::marker{color:var(--bronze)}.world-boss-leaderboard li b{color:var(--amber)}.world-boss-leaderboard li small{color:var(--text-dim);grid-column:1/-1}@media (width<=680px){.world-boss-grid,.marketplace-grid{grid-template-columns:1fr}.marketplace-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=420px){.marketplace-search-row,.marketplace-filter-grid,.marketplace-fee-preview{grid-template-columns:1fr}.marketplace-listing{grid-template-columns:minmax(0,1fr) auto}.marketplace-listing>button{grid-column:1/-1}.recipe-list{grid-template-columns:1fr}.minibar{gap:6px;padding-inline:6px}.minibar .stage{display:none}.minibar .enemy-col{flex:0 125px;width:125px}}.log{color:var(--text-dim);border:1px solid var(--stone-600);background:var(--stone-900);border-radius:4px;max-height:140px;padding:6px 8px;font-size:11px;overflow-y:auto}.log .kill{color:var(--text-dim)}.log .loot{color:var(--rar-uncommon)}.log .level{color:var(--amber)}.log .death{color:var(--hp)}.log .quest{color:var(--rar-rare)}.log .upgrade{color:var(--rar-epic)}.log .boss{color:var(--rar-legendary);font-weight:600}.log .system{color:var(--bronze)}.modal-backdrop{z-index:100;background:#000000a6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--stone-800);border:2px solid var(--bronze);border-radius:6px;width:min(420px,92vw);padding:18px;box-shadow:0 12px 60px #000c}.modal h3{color:var(--amber);letter-spacing:1px;margin:0 0 10px}.modal .rewardline{justify-content:space-between;padding:3px 0;display:flex}.feature-unlock-toast{z-index:95;width:min(360px,100vw - 28px);color:var(--text);border:1px solid var(--bronze);border-left:4px solid var(--amber);pointer-events:none;background:linear-gradient(100deg,#2b2117,#24242d);border-radius:4px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px 10px;display:grid;position:fixed;top:14px;left:14px;box-shadow:0 8px 30px #000000a6}.feature-unlock-sigil{color:var(--amber);font-size:22px}.feature-unlock-toast small,.feature-unlock-toast strong{display:block}.feature-unlock-toast small{color:var(--bronze);letter-spacing:1px;font-size:8px;font-weight:900}.feature-unlock-toast strong{color:var(--amber)}.feature-unlock-toast p{color:var(--text-dim);margin:1px 0 0;font-size:10px}.feature-unlock-toast button{pointer-events:auto;align-self:start;padding:2px 5px}.charcreate{flex-direction:column;justify-content:center;align-items:center;gap:14px;height:100%;display:flex}.charcreate h1{color:var(--bronze);letter-spacing:2px;margin:0}.charcreate .sub{color:var(--text-dim);margin-bottom:12px}.class-picker{grid-template-columns:repeat(3,minmax(150px,210px));gap:10px;max-width:calc(100vw - 32px);display:grid}.class-card{text-align:left;border:1px solid var(--stone-500);background:var(--stone-800);flex-direction:column;align-items:flex-start;gap:5px;min-height:118px;padding:12px;display:flex}.class-card strong{color:var(--amber);font-size:15px}.class-card span{color:var(--text)}.class-card small{color:var(--text-dim);line-height:1.35}.class-card.selected{border-color:var(--bronze);box-shadow:0 0 0 1px var(--bronze), 0 0 16px #c7893833}@media (width<=560px){.class-picker{grid-template-columns:1fr}.class-card{min-height:0}}.debugpanel{background:var(--stone-800);border:1px dashed var(--rar-epic);z-index:90;opacity:.9;border-radius:4px;flex-direction:column;gap:4px;padding:8px;font-size:11px;display:flex;position:fixed;top:8px;right:8px}.debugpanel button{padding:2px 6px;font-size:11px}.error-toast{color:var(--hp);min-height:16px;font-size:12px}.muted{color:var(--text-dim)}.small{font-size:11px}.audio-toggle{margin-top:7px;display:block}.music-volume{grid-template-columns:80px minmax(120px,240px) 38px;align-items:center;gap:8px;margin-top:9px;display:grid}.music-volume input{width:100%;accent-color:var(--amber)}.guild-auth-gate{max-width:620px}.guild-kicker{color:#d59b45;letter-spacing:1.5px;font-size:10px;font-weight:800}.guild-join-grid,.guild-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.guild-join-grid .slotbox{align-content:start;gap:9px;display:grid}.guild-code{color:#a9b4bd;margin:-4px 0 14px}.guild-code b{color:#f1c36c;letter-spacing:1.5px}.guild-task-head,.guild-roster-head{justify-content:space-between;align-items:start;gap:10px;display:flex}.guild-task-head p{margin:4px 0 8px}.guild-contract-focus{color:#d6a45a;letter-spacing:.7px;text-align:right;text-transform:uppercase;max-width:120px;font-size:9px}.guild-progress{background:#14171b;border:1px solid #69522d;height:24px;position:relative;overflow:hidden}.guild-progress .fill{background:linear-gradient(90deg,#7c4e25,#d49a3f);height:100%}.guild-progress span{text-shadow:0 1px #000;place-items:center;font-size:11px;font-weight:800;display:grid;position:absolute;inset:0}.guild-contribution{margin:8px 0}.guild-milestones{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-top:7px;display:grid}.guild-milestones>div{color:#777f85;text-align:center;background:#17191d;border:1px solid #3a3937;gap:2px;padding:6px;display:grid}.guild-milestones>div.reached{color:#e3b967;background:#292116;border-color:#9e7137}.guild-milestones span{font-size:8px}.guild-reward-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:9px 0;display:grid}.guild-reward-card{background:#171b1f;border:1px solid #3d4549;gap:5px;padding:8px;display:grid}.guild-reward-card>b{color:var(--amber);font-size:18px}.guild-reward-card>small{min-height:32px;color:var(--text-dim);font-size:8px}.guild-daily-cap{color:#b6a37c;text-align:center;border:1px dashed #5b4d35;margin-top:8px;padding:8px}.guild-donate-row{grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:8px;display:grid}.guild-roster ol{gap:6px;margin:10px 0;padding:0;list-style:none;display:grid}.guild-roster li{background:#171b1f;border:1px solid #30363c;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;padding:7px;display:grid}.guild-roster li>small{color:#7f8a93;grid-column:1/-1}.guild-roster li span small{color:#d59b45}.guild-leave-confirm{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.danger-link{color:#df8378;margin-top:12px}@media (width<=720px){.guild-join-grid,.guild-grid{grid-template-columns:1fr}}@media (width<=430px){.guild-milestones,.guild-reward-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.guild-contract-head{flex-direction:column}.guild-contract-focus{text-align:left;max-width:none}}.arena-auth-gate{max-width:620px}.arena-kicker{color:#d76464;letter-spacing:1.5px;font-size:10px;font-weight:800}.arena-grid{grid-template-columns:minmax(250px,.8fr) minmax(340px,1.2fr);align-items:start;gap:12px;display:grid}.arena-profile-card h3{color:var(--amber);margin:4px 0}.arena-heading{justify-content:space-between;align-items:start;gap:10px;display:flex}.arena-rating{align-items:baseline;gap:7px;margin:14px 0 4px;display:flex}.arena-rating strong{color:#f1c36c;font-size:30px;line-height:1}.arena-rating span{color:var(--text-dim);text-transform:uppercase;letter-spacing:1px}.arena-statline{color:#c5cbd0;flex-wrap:wrap;gap:6px 14px;display:flex}.arena-cooldown{color:#e2b25f;margin-top:8px}.arena-result{color:var(--green);margin-top:8px;font-weight:700}.arena-opponents ul,.arena-leaderboard ol{gap:6px;margin:10px 0 0;padding:0;list-style:none;display:grid}.arena-opponents li{background:#171b1f;border:1px solid #343941;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:7px;display:grid}.arena-opponents li small,.arena-leaderboard li small{color:var(--text-dim);display:block}.arena-opponent-score{text-align:right}.arena-opponent-score>b{color:var(--amber)}.arena-leaderboard{grid-column:1/-1}.arena-leaderboard li{border-bottom:1px solid #30363c;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:7px 9px;display:grid}.arena-leaderboard li.self{border-left:2px solid var(--amber);background:#201d17}.arena-leaderboard li>b{color:var(--amber)}.arena-duel-backdrop{z-index:220;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#040508d1;place-items:center;padding:14px;display:grid;position:fixed;inset:0}.arena-duel-cutscene{background:#101319;border:2px solid #8f6838;border-radius:7px;width:min(680px,96vw);overflow:hidden;box-shadow:0 18px 80px #000,inset 0 0 35px #c177321a}.arena-duel-cutscene>header{background:linear-gradient(90deg,#26191a,#151921 52%,#181d19);border-bottom:1px solid #4a3826;justify-content:space-between;align-items:center;gap:12px;padding:10px 13px;display:flex}.arena-duel-cutscene>header h3{color:var(--amber);letter-spacing:1px;margin:2px 0 0}.duel-skip{color:var(--text-dim);padding:4px 8px;font-size:10px}.duel-stage{background:radial-gradient(circle at 50% 76%,#dca44b2e,#0000 24%),linear-gradient(#242b38 0 56%,#17171a 57% 72%,#32281f 73% 100%);grid-template-columns:1fr 62px 1fr;align-items:end;min-height:230px;padding:24px 30px 16px;display:grid;position:relative;overflow:hidden}.duel-stage:before{content:"";background:#5e4630;height:2px;position:absolute;bottom:51px;left:0;right:0;box-shadow:0 8px #c4914821,0 16px #c4914814}.duel-banner{background:#7b2f35;width:26px;height:70px;position:absolute;top:8px}.duel-banner:before{content:"";background:#4f3828;width:3px;height:92px;position:absolute;top:-8px;left:11px}.duel-banner:after{content:"";background:#d0a055;width:16px;height:4px;position:absolute;top:12px;left:5px;box-shadow:0 12px #d0a055}.duel-banner.banner-left{left:18px}.duel-banner.banner-right{background:#355747;right:18px}.duel-fighter{z-index:2;align-content:end;justify-items:center;min-width:0;transition:filter .18s,opacity .18s;display:grid;position:relative}.duel-nameplate{text-align:center;justify-items:center;margin-bottom:8px;display:grid}.duel-nameplate b{color:#f0d8ac;text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.duel-nameplate span,.duel-fighter>small{color:#929aa2;letter-spacing:.8px;font-size:9px}.duel-sprite{width:68px;height:90px;image-rendering:pixelated;filter:drop-shadow(0 5px 2px #0009);position:relative}.duel-fighter.right .duel-sprite{transform:scaleX(-1)}.duel-sprite i{display:block;position:absolute}.duel-head{width:23px;height:22px;box-shadow:0 -5px 0 var(--duel-accent);background:#d1a582;top:5px;left:25px}.duel-torso{background:var(--duel-body);width:34px;height:38px;box-shadow:inset 0 6px 0 var(--duel-accent);top:30px;left:19px}.duel-arm{background:var(--duel-body);width:12px;height:31px;box-shadow:42px 0 0 var(--duel-body);top:34px;left:10px}.duel-legs{background:#30333b;width:11px;height:21px;top:68px;left:22px;box-shadow:18px 0 #30333b}.duel-weapon.blade{background:var(--duel-secondary);width:5px;height:53px;box-shadow:0 -5px 0 var(--duel-accent);top:18px;left:57px;transform:rotate(-11deg)}.duel-weapon.arrow{border:3px solid var(--duel-accent);border-left:0;border-radius:0 100% 100% 0;width:4px;height:49px;top:20px;left:54px}.duel-weapon.rune{width:5px;height:57px;box-shadow:0 -7px 0 3px var(--duel-secondary);background:#76512f;top:15px;left:56px}.duel-mage .duel-torso{clip-path:polygon(18% 0,82% 0,100% 100%,0 100%);width:40px;left:16px}.duel-archer .duel-head{box-shadow:-6px -3px 0 var(--duel-body), 0 -5px 0 var(--duel-body)}.duel-center{z-index:3;align-self:center;place-items:center;min-height:80px;display:grid;position:relative}.duel-versus{color:#d6a65d;text-shadow:0 2px #000;font-size:20px;font-weight:900}.duel-clash-effect{width:48px;height:48px;display:none;position:absolute}.clash .duel-clash-effect{animation:.48s steps(4,end) infinite duelBurst;display:block}.duel-clash-effect.blade{border:4px solid #f1d18d;border-width:4px 0;transform:rotate(-45deg)}.duel-clash-effect.arrow{background:#d5c17a;width:58px;height:4px;box-shadow:10px -5px 0 -1px #d5c17a}.duel-clash-effect.rune{border:4px double #55c5c8;border-radius:50%;box-shadow:0 0 18px #55c5c8}.faceoff .duel-fighter.left{animation:.62s steps(6,end) both duelEnterLeft}.faceoff .duel-fighter.right{animation:.62s steps(6,end) both duelEnterRight}.clash .duel-fighter.left{animation:.42s steps(4,end) 2 alternate duelLungeLeft}.clash .duel-fighter.right{animation:.42s steps(4,end) 2 alternate duelLungeRight}.result .duel-fighter.loser{opacity:.52;filter:grayscale(.7)}.result .duel-fighter.loser .duel-sprite{animation:.38s ease-out both duelDefeat}.result .duel-fighter.winner .duel-sprite{animation:.48s ease-out both duelVictory}.duel-verdict{text-align:center;background:#12151a;border-top:1px solid #4a3826;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-height:104px;padding:10px 16px 13px;display:flex}.duel-verdict p{color:var(--text-dim);margin:0;font-size:11px}.duel-verdict strong{color:#e5bd6d}.duel-verdict button{margin-top:4px}.duel-result-title{letter-spacing:3px;font-size:23px;font-weight:900}.duel-result-title.victory{color:#79c68b;text-shadow:0 0 16px #79c68b59}.duel-result-title.defeat{color:#df7777;text-shadow:0 0 16px #df77774d}@keyframes duelEnterLeft{0%{transform:translate(-160px)}to{transform:translate(0)}}@keyframes duelEnterRight{0%{transform:translate(160px)}to{transform:translate(0)}}@keyframes duelLungeLeft{to{transform:translate(35px)rotate(2deg)}}@keyframes duelLungeRight{to{transform:translate(-35px)rotate(-2deg)}}@keyframes duelBurst{50%{opacity:.45;transform:scale(1.35)rotate(35deg)}}@keyframes duelDefeat{to{transform:translateY(7px)rotate(-8deg)}}@keyframes duelVictory{50%{transform:translateY(-8px)}}@media (width<=720px){.arena-grid{grid-template-columns:1fr}.arena-leaderboard{grid-column:auto}}@media (width<=480px){.arena-opponents li{grid-template-columns:minmax(0,1fr) auto}.arena-opponents li button{grid-column:1/-1}.arena-duel-backdrop{padding:7px}.duel-stage{grid-template-columns:1fr 36px 1fr;min-height:205px;padding:20px 8px 12px}.duel-banner{display:none}.duel-sprite{transform-origin:bottom;transform:scale(.84)}.duel-fighter.right .duel-sprite{transform:scale(-.84,.84)}.duel-nameplate b{max-width:112px;font-size:11px}.duel-versus{font-size:15px}.duel-verdict{min-height:112px}}@media (prefers-reduced-motion:reduce){.arena-duel-cutscene *,.arena-duel-cutscene :before,.arena-duel-cutscene :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.warehouse-shell{gap:12px;display:grid}.warehouse-header{background:linear-gradient(135deg,#5f45232e,#14151bf5);border:1px solid #4b3c2a;justify-content:space-between;align-items:start;gap:14px;padding:13px;display:flex}.warehouse-header h3{color:var(--amber);margin:3px 0 4px}.warehouse-header p{max-width:540px;margin:0}.warehouse-capacity-card{border:1px solid var(--bronze-dim);text-align:right;background:#17171d;gap:5px;min-width:190px;padding:9px;display:grid}.warehouse-capacity-card strong{color:var(--bronze)}.warehouse-toolbar{grid-template-columns:minmax(180px,1fr) repeat(2,minmax(135px,.45fr)) auto;gap:7px;display:grid}.warehouse-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.warehouse-column{min-width:0;max-height:520px;overflow-y:auto}.warehouse-column-title{z-index:2;color:var(--bronze);background:#1b1b22;border-bottom:1px solid #40372e;justify-content:space-between;gap:8px;padding:7px 4px 9px;display:flex;position:sticky;top:0}.warehouse-column-title span{color:var(--text-dim);font-size:10px}.warehouse-item{align-items:center;gap:8px}.warehouse-item .iname{min-width:0}.item-location{color:#8d9f8b;letter-spacing:.5px;margin-top:3px;font-size:9px}.warehouse-move{align-items:center;gap:5px;display:flex}.warehouse-move input{width:68px;min-width:0}.warehouse-error{border:1px solid #bb4e4e80;padding:8px}.warehouse-note{text-align:center;margin:0}@media (width<=720px){.warehouse-header{flex-direction:column}.warehouse-capacity-card{text-align:left;width:100%}.warehouse-toolbar{grid-template-columns:1fr 1fr}.warehouse-toolbar>:first-child{grid-column:1/-1}.warehouse-columns{grid-template-columns:1fr}.warehouse-column{max-height:none}}@media (width<=420px){.warehouse-toolbar{grid-template-columns:1fr}.warehouse-toolbar>:first-child{grid-column:auto}.warehouse-item{align-items:stretch}.warehouse-move{justify-content:flex-end}}.roster-backdrop{z-index:260;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#06060ae6;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.roster-panel{border:2px solid var(--bronze-dim);background:linear-gradient(#191922f0,#0f0f15fa),repeating-linear-gradient(90deg,#0000 0 64px,#c9a25e08 65px 66px);border-radius:7px;width:min(920px,98vw);max-height:94vh;padding:18px;overflow-y:auto;box-shadow:0 20px 90px #000}.roster-panel>header,.roster-create-heading{justify-content:space-between;align-items:start;gap:12px;display:flex}.roster-panel h2,.roster-panel h3{color:var(--bronze);letter-spacing:1px;margin:2px 0 0}.eyebrow{color:var(--red-cloth);letter-spacing:2px;font-size:9px;font-weight:800}.roster-rule{color:var(--text-dim);margin:7px 0 16px}.roster-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.roster-card{text-align:left;background:linear-gradient(160deg,#25242d,#17171e);border:1px solid #4b4338;border-radius:5px;flex-direction:column;align-items:stretch;gap:8px;min-height:215px;padding:12px;display:flex}.roster-card.active{border-color:var(--amber);box-shadow:inset 0 0 22px #ffb84d14}.roster-card.empty{color:var(--text-dim);text-align:center;background:#1a1a22a3;border-style:dashed;justify-content:center;align-items:center}.roster-card.empty b{color:var(--bronze-dim)}.roster-plus{color:var(--bronze);font-family:Georgia,serif;font-size:42px;line-height:1}.roster-class-mark{border:1px solid var(--bronze-dim);color:#16141a;background:#c1a56e;border-radius:50%;place-items:center;width:48px;height:48px;font-family:Georgia,serif;font-size:25px;font-weight:900;display:grid}.roster-class-mark.archer{background:#7fa476}.roster-class-mark.mage{background:#708fb0}.roster-card-title{justify-content:space-between;gap:5px;display:flex}.roster-card-title div{min-width:0}.roster-card-title b,.roster-card-title span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.roster-card-title b{color:var(--amber);font-size:15px}.roster-card-title span,.roster-card>small{color:var(--text-dim);font-size:10px}.roster-card-title em{color:var(--green);letter-spacing:1px;font-size:8px;font-style:normal}.roster-card>button{text-align:center;margin-top:auto}.roster-create{border:1px solid var(--bronze-dim);background:#181820;margin-top:14px;padding:14px}.roster-create .class-picker{margin-top:12px}.roster-create-actions{gap:8px;margin-top:10px;display:flex}.roster-create-actions input{flex:1;min-width:0}.roster-error{margin-top:10px}.guest-import-choice{border:1px solid var(--bronze-dim);text-align:center;background:#c9a25e0f;gap:6px;margin-top:12px;padding:10px;display:grid}.guest-import-choice span{color:var(--amber);font-weight:700}.guest-import-choice small{color:var(--text-dim)}@media (width<=760px){.roster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.roster-card{min-height:190px}}@media (width<=430px){.roster-backdrop{padding:6px}.roster-panel{padding:10px}.roster-grid{grid-template-columns:1fr}.roster-card{min-height:0}.roster-create-actions{flex-direction:column}}
