:root{--charcoal: #16161a;--g1: #2a2b31;--g2: #3d3f47;--g3: #5a5d66;--rust1: #7a2e1f;--rust2: #a8432b;--amber1: #d98a2b;--amber2: #f2b85a;--blue1: #2c4a6e;--blue2: #4f86b8;--bone: #d8d2c4;--leather1: #4a3526;--leather2: #6b4e38;--bronze: #8c6a3a;--blood: #8b1a1a;--ashgreen: #5c6b5a;--paper: var(--bone);--iron: var(--g2);--ink: var(--charcoal);--accent: var(--amber1);--danger: var(--blood);--font: "Noto Serif TC", "PingFang TC", "Microsoft JhengHei", serif;--touch: 44px}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--charcoal);color:var(--ink);font-family:var(--font);-webkit-user-select:none;user-select:none;touch-action:none;-webkit-tap-highlight-color:transparent}#game{position:fixed;inset:0}#game canvas{display:block}#ui{position:fixed;inset:0;pointer-events:none;z-index:10;font-size:14px}#ui .i{pointer-events:auto}.paper{background:var(--paper);color:var(--ink);border:3px solid var(--iron);border-radius:4px;box-shadow:inset 0 0 0 2px var(--g3),0 6px 18px #0000008c}button{font-family:var(--font);color:var(--ink);background:var(--paper);border:2px solid var(--iron);border-radius:3px;padding:8px 12px;min-height:var(--touch);min-width:var(--touch);font-size:14px;cursor:pointer;touch-action:manipulation;box-shadow:inset 0 -3px #16161a2e}button:hover:not(:disabled){border-color:var(--accent)}button:active:not(:disabled){transform:translateY(1px);box-shadow:none}button:focus-visible{outline:3px solid var(--accent);outline-offset:1px}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);color:var(--ink);border-color:var(--leather1);font-weight:700}button.danger{background:var(--danger);color:var(--bone);border-color:var(--charcoal)}button.ghost{background:transparent}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.muted{color:var(--g2)}.small{font-size:12px}.accent{color:var(--leather1);font-weight:700}.hud-chip{background:#d8d2c4eb;color:var(--ink);border:2px solid var(--iron);border-radius:3px;padding:4px 8px}.hud-tl{position:absolute;left:10px;top:max(10px,env(safe-area-inset-top));width:min(300px,40vw)}.hud-tc{position:absolute;left:50%;transform:translate(-50%);top:max(10px,env(safe-area-inset-top));text-align:center;white-space:nowrap}.hud-tr{position:absolute;right:10px;top:max(10px,env(safe-area-inset-top));display:flex;flex-direction:column;align-items:flex-end;gap:6px}.bar{position:relative;height:18px;background:var(--charcoal);border:2px solid var(--iron);border-radius:2px;overflow:hidden}.bar>i{position:absolute;inset:0 auto 0 0;transition:width .12s}.bar.hp>i{background:linear-gradient(var(--rust2),var(--blood))}.bar.xp{height:6px;border-width:1px;margin-top:3px}.bar.xp>i{background:var(--amber2)}.bar.focus{height:8px;border-width:1px}.bar.focus>i{background:var(--blue2)}.bar.focus.on>i{background:var(--amber2)}.bar>span{position:absolute;inset:0;text-align:center;font-size:12px;line-height:14px;color:var(--bone);text-shadow:0 1px 2px #000}.lvl{font-weight:700;margin-right:6px}.minimap{background:#16161acc;border:2px solid var(--iron);border-radius:3px;image-rendering:pixelated}.inv-row{display:flex;gap:6px}.fps{font-size:11px;color:var(--g3)}.broadcast{position:absolute;left:50%;top:max(52px,calc(env(safe-area-inset-top) + 44px));transform:translate(-50%,-140%);transition:transform .35s;background:var(--rust1);color:var(--bone);border:2px solid var(--amber1);padding:6px 16px;border-radius:3px;white-space:nowrap;font-weight:700}.broadcast{opacity:0;visibility:hidden}.broadcast.show{transform:translate(-50%);opacity:1;visibility:visible}.bossbar{position:absolute;left:50%;transform:translate(-50%);top:max(64px,calc(env(safe-area-inset-top) + 56px));width:min(420px,56vw);display:none;text-align:center}.bossbar .bar{height:14px;border-color:var(--amber1)}.bossbar .name{font-size:13px;color:var(--bone);text-shadow:0 1px 2px #000}.bossbar[data-rarity=magic] .name{color:#7fb2ff}.bossbar[data-rarity=magic] .bar{border-color:var(--blue2)}.bossbar[data-rarity=magic] .bar i{background:var(--blue2)}.bossbar[data-rarity=rare] .name{color:#f2c94c;font-weight:700}.bossbar .affixes{display:flex;flex-direction:column;gap:2px;margin-top:4px}.bossbar .affix{font-size:11px;color:var(--bone);background:#16161ab8;padding:1px 6px;text-shadow:0 1px 1px #000}.bossbar .affix b{color:#f2c94c;margin-right:4px}.room-name{position:absolute;left:50%;top:24%;transform:translate(-50%);font-size:26px;letter-spacing:6px;color:var(--bone);text-shadow:0 2px 6px #000;opacity:0;transition:opacity .4s;white-space:nowrap}.channel{position:absolute;left:50%;bottom:44%;transform:translate(-50%);width:220px;display:none;text-align:center;color:var(--bone);text-shadow:0 1px 2px #000}.channel .bar>i{background:var(--blue2);transition:none}.toasts{position:absolute;left:50%;top:32%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:4px}.toast{background:#d8d2c4f2;color:var(--ink);border:2px solid var(--iron);padding:4px 12px;border-radius:3px;animation:toast 2.4s forwards;white-space:nowrap}@keyframes toast{0%{opacity:0;transform:translateY(6px)}10%{opacity:1;transform:none}80%{opacity:1}to{opacity:0}}.cluster{position:absolute;right:12px;bottom:max(12px,env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:flex-end;gap:8px}.auto-row{display:flex;flex-direction:column;align-items:stretch;gap:4px;width:100%}.auto{display:flex;border:2px solid var(--iron);border-radius:3px;overflow:hidden}.auto button{flex:1;border:none;border-radius:0;box-shadow:none;padding:6px 8px;font-size:13px}.auto button.on{background:var(--accent);font-weight:700}.auto button.locked{opacity:.5}.skills{display:grid;grid-template-columns:repeat(5,60px);gap:8px}.skill{position:relative;width:60px;height:60px;padding:0;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:13px;overflow:hidden;font-weight:700}.skill .k{position:absolute;left:0;right:0;top:4px;font-size:10px;color:var(--g2)}.skill .cd{position:absolute;inset:0;background:conic-gradient(rgba(22,22,26,.72) var(--p, 0%),transparent 0);pointer-events:none}.skill .cdt{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:17px;color:var(--bone);text-shadow:0 1px 3px #000;pointer-events:none}.skill.dodge{background:var(--leather2);color:var(--bone)}.skill.buff{border-color:var(--amber2);box-shadow:0 0 12px var(--amber1)}.tip{position:absolute;bottom:72px;right:0;width:220px;padding:8px;font-size:12px;font-weight:400;display:none}.joy{position:absolute;left:22px;bottom:max(22px,env(safe-area-inset-bottom));width:130px;height:130px;border-radius:50%;background:#3d3f4759;border:2px solid rgba(216,210,196,.5);display:none}.joy i{position:absolute;left:40px;top:40px;width:50px;height:50px;border-radius:50%;background:#d8d2c473;border:2px solid var(--bone)}.touch .joy{display:block}.modal-bg{position:absolute;inset:0;background:#0a0a0c73;display:flex;align-items:center;justify-content:center;padding:16px}.ask{width:min(460px,100%);padding:18px;text-align:center}.ask h3{margin:0 0 6px;font-size:22px;letter-spacing:2px}.ask p{margin:0 0 14px}.ask .count{font-size:12px;color:var(--g2);margin-bottom:10px}.ask .actions{display:flex;gap:12px}.ask .actions button{flex:1;min-height:64px;font-size:20px}.banner{position:absolute;left:50%;transform:translate(-50%);top:calc(max(10px,env(safe-area-inset-top)) + 44px);padding:4px 12px;white-space:nowrap;font-size:13px;opacity:.92}.panel{width:min(760px,100%);max-height:min(88vh,100%);display:flex;flex-direction:column}.panel header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:3px double var(--iron)}.panel header h3{margin:0;letter-spacing:3px}.panel .body{padding:12px 14px;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y}.tabs{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}.tabs button.on{background:var(--accent);font-weight:700}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:6px}.cell{position:relative;aspect-ratio:1;min-height:var(--touch);border:3px solid var(--g3);border-radius:3px;background:var(--charcoal);display:flex;align-items:center;justify-content:center;font-size:20px;padding:0;box-shadow:none}.cell.empty{opacity:.3}.cell.locked{font-size:11px;color:var(--g2);border-style:dashed}.equip-grid .rune-slot .lbl{color:var(--amber2)}.rune-section{margin-top:12px}.rune-row{border:2px solid var(--g3);padding:8px;margin-bottom:8px;display:flex;flex-direction:column;gap:4px}.rune-row.on{border-color:var(--amber1)}.rune-row.locked{opacity:.6}.rune-row select{max-width:100%}.rune-chips{display:none;gap:6px;justify-content:flex-end;flex-wrap:wrap}.rune-chip{position:relative;overflow:hidden;display:flex;align-items:center;gap:4px;min-height:28px;padding:2px 8px;font-size:11px;color:var(--bone);background:#16161ab3;border:2px solid var(--amber1);border-radius:3px}.rune-chip .g{font-weight:700;color:var(--amber2)}.rune-chip .cd{position:absolute;left:0;right:0;bottom:0;height:var(--p, 0%);background:#0000008c;pointer-events:none}.rune-chip.ready{box-shadow:0 0 6px var(--amber1)}.m-auto .rune-chips{justify-content:center}.m-auto .rune-chip{min-height:24px;font-size:10px;padding:1px 6px}.cell.sel{outline:3px solid var(--accent);outline-offset:1px}.cell .en{position:absolute;right:3px;top:1px;font-size:10px;color:var(--amber2)}.cell .dur{position:absolute;left:3px;bottom:1px;font-size:9px;color:var(--rust2)}.cell .lost{position:absolute;inset:0;background:#8b1a1aa6;color:var(--bone);display:flex;align-items:center;justify-content:center;font-size:11px}.section-title{margin:12px 0 6px;color:var(--g2);font-size:12px;letter-spacing:2px;border-bottom:1px solid var(--g3)}.panel .body .detail{position:sticky;bottom:-12px;box-shadow:0 -8px 16px #16161a59}.detail{margin-top:10px;border:3px solid var(--accent);border-radius:3px;padding:10px;background:var(--paper)}.detail .name{font-size:16px;font-weight:700}.detail ul{margin:6px 0;padding-left:18px;line-height:1.6}.equip-grid{display:grid;grid-template-columns:repeat(6,60px);gap:8px}.equip-grid .cell{width:60px;height:60px}.equip-grid .lbl{font-size:11px;color:var(--g2);text-align:center}.stats{font-size:12px;line-height:1.7;margin-top:6px}.floors{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}.floors button{padding:10px 8px;display:flex;flex-direction:column;gap:2px}.floors button b{font-size:18px}.bonus{color:var(--rust1);font-weight:700}.outpost{border:2px solid var(--g3);border-radius:3px;padding:10px;margin-bottom:10px}.outpost h4{margin:0 0 4px}label.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}select,input[type=range]{width:100%;min-height:var(--touch)}select{background:var(--paper);color:var(--ink);border:2px solid var(--iron);border-radius:3px;padding:6px;font-family:var(--font);font-size:14px}.rotation{list-style:none;padding:0;margin:0}.rotation li{display:flex;align-items:center;gap:6px;margin-bottom:6px;padding:4px;border:2px dashed transparent;border-radius:3px;background:#16161a0d}.rotation li.over{border-color:var(--accent)}.rotation li .handle{cursor:grab;font-size:18px;padding:0 6px}.rotation .nm{flex:1}.town-bar{position:absolute;left:10px;right:10px;top:max(10px,env(safe-area-inset-top));display:flex;justify-content:space-between;align-items:flex-start;gap:8px;flex-wrap:wrap}.town-hint{position:absolute;left:50%;transform:translate(-50%);bottom:max(14px,env(safe-area-inset-bottom));color:var(--bone);font-size:12px;white-space:nowrap;text-shadow:0 1px 2px #000}.result h3{margin:0 0 4px;font-size:24px}.result h3.death{color:var(--blood)}.result .grid2{display:grid;grid-template-columns:1fr 1fr;gap:4px 14px;margin:10px 0}.result .actions{display:flex;gap:10px;justify-content:flex-end;margin-top:14px;flex-wrap:wrap}#rotate{display:none;position:fixed;inset:0;z-index:100;background:var(--charcoal);color:var(--bone);font-family:var(--font);align-items:center;justify-content:center;flex-direction:column;gap:8px;font-size:22px;letter-spacing:3px}#rotate small{font-size:13px;color:var(--g3);letter-spacing:1px}@media(orientation:portrait)and (pointer:coarse){#rotate{display:flex}}@media(max-height:480px),(max-width:700px){.skills{grid-template-columns:repeat(5,52px);gap:6px}.skill{width:52px;height:52px;font-size:12px}.hud-tr .minimap{width:120px;height:76px}.equip-grid{grid-template-columns:repeat(3,60px)}}.skill-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0}.skill-slot{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:64px;padding:6px 8px;text-align:left}.skill-slot .k{font-size:11px;color:var(--rust1);font-weight:700}.skill-slot.on{outline:3px solid var(--blue2);outline-offset:1px;background:var(--accent)}.skill-pool{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.skill-card{display:flex;flex-direction:column;gap:6px;padding:6px;border:2px solid var(--g3, #8a8578)}.skill-opt{display:flex;flex-direction:column;gap:4px;padding:8px;text-align:left;line-height:1.35;min-height:44px}.skill-opt.variant{border-style:dashed}.skill-opt.equipped{border-color:var(--rust2)}.skill-opt.here{background:var(--accent)}.skill-opt.locked{opacity:.45}.skill-opt .tags{display:flex;flex-wrap:wrap;gap:4px}.skill-opt .tag{font-size:10px;padding:1px 6px;border:1px solid var(--rust1);color:var(--rust1)}@media(max-width:700px){.skill-pool{grid-template-columns:minmax(0,1fr)}}.tier{margin:8px 0}.tier-lbl{font-size:11px;color:var(--g2);margin-bottom:4px}.tier-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.talent{position:relative;min-height:48px;padding:4px;font-size:12px;line-height:1.2}.talent .ex{position:absolute;left:3px;top:1px;font-size:9px;color:var(--rust1)}.talent.learned{background:var(--accent);font-weight:700}.talent.locked{opacity:.45}.talent.keystone{border:3px solid var(--blood);font-weight:700}.talent.keystone.learned{background:var(--rust2);color:var(--bone)}.talent.inactive{border-style:dashed;opacity:.7}.talent.sel{outline:3px solid var(--blue2);outline-offset:1px}@media(max-width:700px){.tier-row{grid-template-columns:repeat(3,minmax(0,1fr))}}.pc-hud{position:absolute;left:0;right:0;bottom:0;height:150px;pointer-events:none}.pc-left{position:absolute;left:14px;bottom:16px;display:flex;align-items:flex-end;gap:10px}.pc-right{position:absolute;right:14px;bottom:16px;display:flex;align-items:flex-end;gap:12px}.pc-skills{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.pc-xp{position:absolute;left:150px;right:150px;bottom:4px;display:flex;align-items:center;gap:8px;color:var(--bone);font-size:12px;text-shadow:0 1px 2px #000}.pc-xp .bar.xp{flex:1;height:7px;margin:0}.orb{position:relative;width:116px;height:116px;border-radius:50%;overflow:hidden;background:radial-gradient(circle at 50% 60%,#1d1d22,#0b0b0d);border:4px solid var(--iron);box-shadow:0 0 0 3px var(--bronze),0 6px 18px #000000b3;pointer-events:auto}.orb>i{position:absolute;left:0;right:0;bottom:0;height:100%;transition:height .15s}.orb.hp>i{background:linear-gradient(180deg,var(--rust2),var(--blood) 60%,#4a0d0d)}.orb.focus>i{background:linear-gradient(180deg,var(--blue2),var(--blue1) 70%,#142338)}.orb.focus.on>i{background:linear-gradient(180deg,var(--amber2),var(--amber1))}.orb .gloss{position:absolute;left:18%;top:10%;width:40%;height:26%;border-radius:50%;background:#ffffff2e}.orb>span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--bone);font-size:12px;font-weight:700;text-shadow:0 1px 3px #000;text-align:center}.flasks .stone-btn{height:58px;min-width:58px;padding:4px 8px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:12px}.stone-btn .k,.skill .k{display:block;font-size:10px;color:var(--g2)}.skillbar{display:flex;flex-direction:column;align-items:flex-end;gap:6px;padding:6px;background:#16161aa6;border:2px solid var(--iron);border-radius:4px}.sb-row{display:flex;gap:6px}.skill-wrap{position:relative}.pc-hud .skill{width:56px;height:56px;border-radius:6px;font-size:12px}.pc-hud .skill.mouse{width:62px;background:var(--leather2);color:var(--bone)}.pc-hud .skill.mouse .k{color:var(--amber2)}.pc-hud .skill.dodge{width:64px}.pc-hud .tip{bottom:64px;right:0}.pc-hud .auto button{padding:4px 10px;font-size:12px;min-height:32px}.m-cluster{position:absolute;right:calc(12px + env(safe-area-inset-right));bottom:calc(12px + env(safe-area-inset-bottom));width:230px;height:230px}.m-cluster .skill{border-radius:50%}.m-cluster>.skill-wrap{position:absolute;right:0;bottom:0}.m-cluster .skill.atk{width:104px;height:104px;font-size:18px;background:var(--rust1);color:var(--bone);border:4px solid var(--amber1)}.m-cluster .arc{position:absolute}.m-cluster .arc .skill{width:62px;height:62px}.m-cluster .a1{right:112px;bottom:6px}.m-cluster .a2{right:100px;bottom:78px}.m-cluster .a3{right:40px;bottom:124px}.m-cluster .a4{right:126px;bottom:150px}.m-cluster .arc .skill.dodge{width:58px;height:58px}.m-cluster .tip{bottom:110px;right:0}.m-auto{position:absolute;left:50%;transform:translate(-50%);bottom:calc(8px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:4px}.m-auto .auto button{padding:4px 8px;font-size:12px;min-height:44px}.m-auto .stone-btn{min-height:44px;padding:4px 10px;font-size:12px;white-space:nowrap}.touch .hud-tr{flex-direction:row;align-items:flex-start;gap:6px}.touch .hud-tr .minimap{width:84px;height:84px}.touch .hud-tr>.hud-chip{display:none}.touch .hud-tr>.row{display:grid;grid-template-columns:repeat(2,auto);gap:4px;order:-1}.touch .hud-tr>.row button{min-height:40px;min-width:52px;padding:2px 6px;font-size:12px}.touch .hud-tr .fps{position:absolute;right:0;top:88px}.touch .hud-tc{font-size:12px;padding:2px 8px}.touch .hud-tl{width:min(260px,34vw)}@media(max-height:430px){.m-cluster{transform:scale(.8);transform-origin:right bottom}.joy{transform:scale(.85);transform-origin:left bottom}}.auto button{white-space:nowrap}.menu-btn{display:none}.touch .menu-btn{display:block;min-width:44px;min-height:44px;padding:0;font-size:20px}.touch .hud-tr{position:absolute}.touch .hud-tr>.menu-row{display:none;position:absolute;top:50px;right:92px;grid-template-columns:1fr;gap:4px;z-index:5}.touch .hud-tr.open>.menu-row{display:grid}.touch .hud-tr>.menu-btn{order:-1}.touch .fps{display:none}.touch .hud-tc{font-size:11px}.touch .room-name{font-size:18px;letter-spacing:4px;top:16%}.touch .m-auto{left:calc(10px + env(safe-area-inset-left));top:calc(max(10px,env(safe-area-inset-top)) + 50px);bottom:auto;transform:none;align-items:flex-start}.touch .m-auto .auto button{font-size:11px;padding:2px 7px}.touch .m-auto .stone-btn{font-size:11px;padding:2px 8px}.touch .town-btns{flex-wrap:nowrap;position:relative}.touch .town-btns>button:not(.primary):not(.menu-btn){display:none}.touch .town-btns.open{flex-direction:column;align-items:stretch;position:absolute;right:0;top:0;background:#16161ad9;padding:6px;border:2px solid var(--iron);border-radius:4px;z-index:5}.touch .town-btns.open>button:not(.primary):not(.menu-btn){display:block}.skillbar{background:none;border:none;padding:0}.paper,button,.cell,.hud-chip,.bar,.skill,.joy,.orb-frame,.icon-btn img,.slot-icon{image-rendering:pixelated}.paper{border:18px solid transparent;border-radius:0;background:none;box-shadow:0 6px 18px #0000008c;border-image:url(../ui/panel.png) 36 32 36 32 fill / 18px 16px 18px 16px stretch}button{border:8px solid transparent;border-radius:0;background:none;box-shadow:none;padding:2px 8px;border-image:url(../ui/button.png) 12 14 12 15 fill / 7px 8px 7px 8px stretch}button:hover:not(:disabled){filter:brightness(1.08)}button:active:not(:disabled){border-image-source:url(../ui/button_pressed.png);border-image-slice:18 18 15 21 fill;transform:none}button.primary{border-image:url(../ui/button_primary.png) 21 31 20 28 fill / 9px 12px 9px 11px stretch;background:none;font-weight:700}button.primary:active:not(:disabled){filter:brightness(.9);border-image-source:url(../ui/button_primary.png);border-image-slice:21 31 20 28 fill}button.danger{border-image:none;border:2px solid var(--charcoal);background:var(--danger);border-radius:3px}button.ghost{border-image:none;border:none}.auto button.on{border-image:url(../ui/button_primary.png) 21 31 20 28 fill / 9px 12px 9px 11px stretch;background:none}.tabs button{border-image:url(../ui/tab.png) 14 18 4 17 fill / 7px 9px 2px 8px stretch}.tabs button.on{filter:sepia(.6) saturate(2.2) hue-rotate(-12deg);background:none}.hud-chip{border:7px solid transparent;border-radius:0;background:none;color:var(--bone);padding:2px 6px;border-image:url(../ui/plate.png) 12 20 12 19 fill / 6px 10px 6px 10px stretch}.hud-chip .muted,.hud-chip.small{color:#b9b2a3}.hud-chip .accent{color:var(--amber2)}.bar{border:3px solid transparent;border-radius:0;background-clip:padding-box;border-image:url(../ui/bar_frame.png) 6 4 8 4 / 3px 2px 4px 2px stretch}.bar.xp,.bar.focus{border-width:2px;border-image-width:2px}.cell{border:8px solid transparent;border-radius:0;background:none;border-image:url(../ui/inv_slot.png) 20 21 19 21 fill / 8px stretch;box-shadow:inset 0 0 10px var(--rc, transparent)}.cell .slot-icon{width:78%;height:78%;object-fit:contain}.cell.empty{opacity:1}.cell.empty .slot-icon{opacity:.28;filter:grayscale(1)}.cell.sel{outline:3px solid var(--accent);outline-offset:-2px}.pc-hud .skill{border:7px solid transparent;border-radius:0;background:#1d1d22;color:var(--bone);border-image:url(../ui/slot.png) 10 fill / 7px stretch}.pc-hud .skill .k{color:var(--amber2)}.pc-hud .skill.mouse,.pc-hud .skill.dodge{background:var(--leather1)}.m-cluster .arc .skill{border:none;border-image:none;background:url(../ui/round_button.png) center / 100% 100% no-repeat}.orb-wrap{position:relative;pointer-events:auto}.orb-wrap .orb{border:none;box-shadow:none}.orb-frame{position:absolute;inset:-14px;background:url(../ui/orb.png) center / 100% 100% no-repeat;pointer-events:none}.joy{border:none;background:url(../ui/joystick.png) center / 100% 100% no-repeat;opacity:.85}.joy i{border:none;background:url(../ui/round_button.png) center / 100% 100% no-repeat}.icon-btn{display:inline-flex;align-items:center;gap:4px}.icon-btn img{width:26px;height:26px;object-fit:contain}.touch .town-btns.open .icon-btn{justify-content:flex-start}.auto{border:none;gap:2px;overflow:visible}.auto button{border:6px solid transparent;border-image:url(../ui/button.png) 12 14 12 15 fill / 6px 7px 6px 7px stretch}.auto button.on{border-image:url(../ui/button_primary.png) 21 31 20 28 fill / 7px 9px 7px 9px stretch}.toasts{top:calc(max(10px,env(safe-area-inset-top)) + 80px)}.toast{border:6px solid transparent;border-radius:0;background:none;border-image:url(../ui/plate.png) 12 20 12 19 fill / 6px 10px 6px 10px stretch;color:var(--bone);font-size:13px}.m-cluster .arc .skill,.m-cluster .arc .skill.dodge{color:var(--ink)}.touch .joy{opacity:.3;transition:opacity .15s}.touch .joy.held{opacity:.8}.touch .joy i{opacity:1}.touch .toasts{top:calc(max(6px,env(safe-area-inset-top)) + 40px)}.touch .toast{font-size:11px;padding:0 4px}.touch .m-auto .auto button,.touch .m-auto .stone-btn{border-width:5px;border-image-width:5px 6px;min-height:40px}button:disabled{opacity:1;filter:grayscale(1) brightness(.95);color:#5f5c56}.touch .modal-bg{padding:max(4px,env(safe-area-inset-top)) max(4px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(4px,env(safe-area-inset-left))}.touch .panel{width:100%;height:100%;max-height:100%;border-width:10px 9px;border-image-width:10px 9px}.touch .panel header{padding:0 6px 2px;border-bottom-width:2px}.touch .panel header h3{font-size:15px;letter-spacing:2px}.touch .panel header button{min-height:36px;padding:0 8px}.touch .panel .body{padding:6px 8px;font-size:13px}.touch .town-btns.open{display:grid;grid-template-columns:repeat(3,auto);gap:4px;max-height:calc(100vh - 20px);overflow-y:auto}.touch .town-btns.open>.menu-btn{grid-column:3;grid-row:1;justify-self:end}.touch .town-btns.open .icon-btn{font-size:12px;min-height:44px}.bag-layout{display:grid;grid-template-columns:minmax(230px,320px) minmax(0,1fr);gap:14px;align-items:start}.bag-left{position:sticky;top:0}.bag-left .detail,.panel .body .bag-left .detail{position:static;box-shadow:none;margin-top:8px}.bag-left .equip-grid{grid-template-columns:repeat(3,60px)}.bag-left .hint{margin-top:10px}.bag-right .section-title button{min-height:32px;padding:0 6px;font-size:11px;letter-spacing:0}.cell .up{position:absolute;right:2px;bottom:0;font-size:12px;line-height:1;text-shadow:0 1px 1px #000}.cell .up.better{color:#7ed957}.cell .up.worse{color:#e0533d}.detail .delta{width:100%;font-size:12px;font-weight:700}.detail .delta.better{color:#3f7f2a}.detail .delta.worse{color:var(--blood)}.touch .bag-layout{grid-template-columns:minmax(210px,42%) minmax(0,1fr);gap:8px}.touch .bag-left .equip-grid{grid-template-columns:repeat(3,52px);gap:4px}.touch .bag-left .equip-grid .cell{width:52px;height:52px}.touch .bag-right .grid{grid-template-columns:repeat(auto-fill,minmax(46px,1fr));gap:4px}.touch .bag-left .detail,.touch .panel .body .bag-left .detail{position:fixed;left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));max-height:52vh;overflow-y:auto;z-index:20;margin:0;box-shadow:0 -6px 18px #0000008c;font-size:12px}.touch .bag-left .detail ul{line-height:1.4;margin:2px 0}.touch .bag-left .stats,.touch .bag-left>.small:not(.hint){font-size:11px}.detail .close-detail{margin-left:auto}.touch .bag-left{z-index:20}.touch .bag-left .detail,.touch .panel .body .bag-left .detail{max-height:66vh}.skill.has-icon .nm{position:absolute;left:0;right:0;bottom:1px;font-size:10px;line-height:1;color:var(--bone);text-shadow:0 1px 2px #000,0 0 2px #000}.pc-hud .skill.has-icon{background:var(--icon) center 38% / 72% no-repeat,#1d1d22}.pc-hud .skill.mouse.has-icon,.pc-hud .skill.dodge.has-icon{background:var(--icon) center 38% / 72% no-repeat,var(--leather1)}.m-cluster .arc .skill.has-icon{background:var(--icon) center 44% / 58% no-repeat,url(../ui/round_button.png) center / 100% 100% no-repeat}.m-cluster .skill.atk.has-icon{background:var(--icon) center 42% / 56% no-repeat,var(--rust1)}.m-cluster .skill.has-icon .nm{bottom:6px}.m-cluster .skill.atk.has-icon .nm{bottom:12px;font-size:13px}.skill.has-icon{image-rendering:pixelated}.sk-icon{width:36px;height:36px;object-fit:contain;image-rendering:pixelated;flex:none}.sk-icon.sm{width:24px;height:24px}.skill-slot .sk-icon{align-self:center}.talent{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.talent .tal-icon{width:28px;height:28px;object-fit:contain;image-rendering:pixelated}.talent.locked .tal-icon{filter:grayscale(1) opacity(.55)}.talent .tal-name{font-size:11px;line-height:1.1}.skill-opt,.skill-slot{padding:8px 14px}.skill-opt .row>.small{white-space:nowrap}.var-tag{font-size:10px;font-weight:700;color:var(--bone);background:var(--leather2);border-radius:2px;padding:0 4px;line-height:16px;letter-spacing:1px}.tal-head{line-height:1.7;margin-bottom:4px}.tal-notice{background:var(--amber2);color:var(--ink);padding:6px 10px;border-radius:3px;font-size:12px;margin-bottom:8px;font-weight:700}.tal-tabs button{font-size:12px}.tal-tabs button .pts{font-weight:700}.tal-tabs button.soon{opacity:.75}.tal-lore{margin:4px 0 6px;line-height:1.6}.talent .rank{font-size:10px;color:var(--g2)}.talent.partial{box-shadow:inset 0 0 0 2px var(--amber2)}.core-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.core-row.two{grid-template-columns:repeat(2,minmax(0,1fr))}.core-card{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;min-height:70px;padding:8px 12px}.core-card .small{line-height:1.45}.core-card.chosen{border-image-source:url(../ui/button_primary.png);border-image-slice:21 31 20 28 fill}.core-card.other,.core-card.locked{filter:grayscale(.85) brightness(.97)}.core-card.keystone b{color:var(--rust1)}.touch .core-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.touch .core-card{padding:6px 8px;min-height:64px}.touch .core-card .small{font-size:11px}.core-card.chosen{filter:none;box-shadow:0 0 0 2px var(--amber1)}.touch .tal-tabs .ttl{display:none}.touch .tal-tabs button{font-size:12px;padding:0 6px;min-height:36px}.tbuffs{position:absolute;left:14px;bottom:150px;display:flex;gap:4px;pointer-events:none}.touch .tbuffs{left:calc(10px + env(safe-area-inset-left));bottom:auto;top:calc(max(10px,env(safe-area-inset-top)) + 100px)}.tbuff{position:relative;width:30px;height:30px;border-radius:4px;background:#16161abf;border:1px solid var(--amber1);display:flex;align-items:center;justify-content:center}.tbuff .tb-icon{width:24px;height:24px;image-rendering:pixelated}.tbuff .tb-txt{font-size:10px;color:var(--bone)}.tbuff b{position:absolute;right:-3px;bottom:-4px;font-size:10px;color:var(--amber2);text-shadow:0 1px 2px #000,0 0 2px #000}.tbuff.tb-ambush,.tbuff.tb-guard{animation:tbpulse .8s ease-in-out infinite alternate}@keyframes tbpulse{0%{box-shadow:0 0 #f2b85a00}to{box-shadow:0 0 6px 2px #f2b85acc}}.skill[data-charges]:after{content:attr(data-charges);position:absolute;right:3px;top:2px;font-size:11px;font-weight:700;color:var(--amber2);text-shadow:0 1px 2px #000}.god-icon{width:20px;height:20px;image-rendering:pixelated;vertical-align:middle;margin-right:2px}.god-big{width:44px;height:44px;image-rendering:pixelated;flex:none}.core-icon{width:28px;height:28px;image-rendering:pixelated;flex:none}.core-card.locked .core-icon,.core-card.other .core-icon{filter:grayscale(1) opacity(.6)}.skill.has-icon:before{content:"";position:absolute;inset:0;background:var(--icon) center 40% / 72% no-repeat;image-rendering:pixelated;pointer-events:none}.m-cluster .skill.has-icon:before{background-size:56%;background-position:center 44%}.skill.has-icon .cd,.skill.has-icon .cdt,.skill.has-icon .nm,.skill.has-icon .k{z-index:1}.pc-hud .skill.has-icon,.pc-hud .skill.mouse.has-icon,.pc-hud .skill.dodge.has-icon{background:#1d1d22}.m-cluster .arc .skill.has-icon{background:url(../ui/round_button.png) center / 100% 100% no-repeat}.m-cluster .skill.atk.has-icon{background:var(--rust1)}.m-cluster .skill[data-charges]:after{right:0;left:0;top:4px;text-align:center;font-size:12px;z-index:2}.tree-scroll{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;padding-bottom:6px}.tree{position:relative;margin:0 auto}.tree-lines{position:absolute;left:0;top:0;pointer-events:none}.tree-lines line{stroke-width:3}.tree-lines line.on{stroke:var(--amber1)}.tree-lines line.open{stroke:var(--ink);stroke-width:2}.tree-lines line.off{stroke:var(--g3);stroke-width:2;stroke-dasharray:4 4;opacity:.6}.col-head{position:absolute;top:0;text-align:center;font-size:11px;color:var(--g3)}.col-head.met{color:var(--leather1);font-weight:700}.col-head.core{color:var(--rust1)}.tnode{position:absolute;padding:2px;border-width:6px;border-image-width:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;line-height:1.1}.tnode .tal-icon{width:26px;height:26px;image-rendering:pixelated}.tnode .tal-name{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.tnode .rank{font-size:10px;color:var(--g2)}.tnode.k-medium{box-shadow:0 0 0 2px var(--bronze)}.tnode.k-core{border-image-source:url(../ui/plate.png);border-image-slice:12 20 12 19 fill;color:var(--bone)}.tnode.k-core .tal-name{font-weight:700}.tnode.learned{filter:none;box-shadow:0 0 0 3px var(--amber1)}.tnode.k-core.learned{box-shadow:0 0 0 3px var(--amber2),0 0 10px var(--amber1)}.tnode.partial{box-shadow:0 0 0 2px var(--amber2)}.tnode.avail{filter:none}.tnode.locked,.tnode.other{filter:grayscale(1) brightness(.9);opacity:.7}.tnode.sel{outline:3px solid var(--blue2);outline-offset:1px}.touch .tnode{border-width:4px;border-image-width:4px}.touch .tnode .tal-icon{width:20px;height:20px}.touch .tnode .tal-name{font-size:10px}.touch .tnode .rank{font-size:9px}.touch .col-head{font-size:10px}.touch .talents-v2>.detail{position:fixed;left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));z-index:20;margin:0;padding:6px 10px;font-size:12px;box-shadow:0 -6px 18px #0000008c}.touch .talents-v2>.detail .name{font-size:14px}.tree-lines rect.gate{fill:#7a2e1f14;stroke:var(--rust1);stroke-width:2;stroke-dasharray:5 3}.tree-lines rect.gate.on{fill:#d98a2b26;stroke:var(--amber1);stroke-dasharray:none;stroke-width:3}.tnode.k-core.learned{border-image-source:url(../ui/button_primary.png);border-image-slice:21 31 20 28 fill;color:var(--ink)}.tier{display:inline-block;min-width:20px;padding:0 3px;border-radius:2px;font-size:11px;font-weight:700;line-height:15px;text-align:center;color:#16161a;vertical-align:1px}.tier.t1{background:#f0a030}.tier.t2{background:#e06a4a}.tier.t3{background:#b07ee0}.tier.t4{background:#5aa0e0}.tier.t5{background:#7ec850}.tier.t6{background:#b8b0a0}.tier.t7{background:#77716a;color:#eee8da}.tier.none{background:transparent;color:var(--muted, #8a8478)}.detail ul.lines{list-style:none;padding-left:0}.detail ul.lines li.head{color:var(--muted, #8a8478);font-size:12px}.detail ul.lines li.base{font-weight:700}.detail ul.lines li.affix .rng{color:var(--muted, #8a8478);font-size:11px;white-space:nowrap}.detail ul.lines li.unique{color:#e6873a}.detail ul.lines li.flavor{color:var(--muted, #8a8478);font-style:italic;font-size:12px}.detail ul.lines li.meta{color:var(--muted, #8a8478);font-size:12px}.cell:not(.empty):after{content:"";position:absolute;inset:-2px;border:2px solid var(--rc, transparent);border-radius:2px;box-shadow:inset 0 0 14px color-mix(in srgb,var(--rc, transparent) 75%,transparent),0 0 6px color-mix(in srgb,var(--rc, transparent) 60%,transparent);pointer-events:none}.bar-picker{display:grid;gap:6px;margin-top:8px}.bar-picker button{text-align:left}.bar-picker button.on{outline:3px solid var(--amber2, #e6873a)}.keycap{min-width:64px;font-family:inherit;font-weight:700}.portal-btn{background:linear-gradient(#3b5b9a,#22375f)!important;color:#e8f0ff!important;border-color:#8fb8ff!important;box-shadow:0 0 10px #78aaff99}.sb-row .skill{cursor:pointer}.modal-bg.inv-panel{justify-content:flex-end;align-items:stretch;background:transparent;pointer-events:none}.modal-bg.inv-panel>.panel{pointer-events:auto;width:min(500px,100%);max-height:none;height:100%}.inv{display:flex;flex-direction:column;gap:10px}.inv .stats{font-size:11px;line-height:1.5}.inv-grid{grid-template-columns:repeat(10,minmax(0,1fr))!important;gap:3px!important}.inv-grid .cell{min-height:0}.inv .hint{margin:4px 0 0}.inv-left .detail{margin-top:6px}.doll{display:grid;grid-template-columns:72px 92px 72px;grid-template-rows:72px 52px 72px 64px 56px;gap:6px;justify-content:center;grid-template-areas:"weapon helm charm" "weapon chest amulet" "gloves chest boots" "ring1 belt ring2" "rune1 quiver rune2";padding:8px 0 4px}.doll .s-ring1{grid-area:ring1}.doll .s-ring2{grid-area:ring2}.doll .s-amulet{grid-area:amulet}.doll .s-belt{grid-area:belt}.doll .s-quiver{grid-area:quiver}.doll-slot.inactive{opacity:.45;filter:grayscale(.8)}.doll .s-weapon{grid-area:weapon}.doll .s-helm{grid-area:helm}.doll .s-chest{grid-area:chest}.doll .s-gloves{grid-area:gloves}.doll .s-boots{grid-area:boots}.doll .s-charm{grid-area:charm}.doll .s-rune1{grid-area:rune1}.doll .s-rune2{grid-area:rune2}.doll-slot{position:relative;min-width:0;min-height:0}.doll-slot .cell{width:100%;height:100%;aspect-ratio:auto;min-height:0;font-size:26px}.doll-slot .cell .slot-icon{max-width:70%;max-height:70%}.doll-slot .lbl{position:absolute;left:0;right:0;bottom:3px;text-align:center;font-size:10px;color:var(--g2);pointer-events:none;display:none}.doll-slot:has(.cell.empty) .lbl{display:block}.doll-slot.rune-slot .lbl{color:var(--amber2)}.doll-hero{display:none}.inv-tip{position:fixed;width:290px;z-index:1000;pointer-events:none;display:flex;flex-direction:column;gap:6px}.inv-tip .detail{margin:0;box-shadow:0 6px 18px #0000008c;font-size:12px}.inv-tip-cmp .detail{opacity:.92;border-color:var(--g3)}.touch .modal-bg.inv-panel{justify-content:center;background:#0a0a0c73;pointer-events:auto}.touch .modal-bg.inv-panel>.panel{width:100%}.touch .inv{display:grid;grid-template-columns:minmax(230px,44%) minmax(0,1fr);gap:10px;align-items:start;height:100%}.touch .inv-right{overflow-y:auto;max-height:calc(100vh - 90px)}.touch .inv-grid{grid-template-columns:repeat(auto-fill,minmax(44px,1fr))!important}.touch .doll{grid-template-columns:1fr 1.25fr 1fr;grid-template-rows:repeat(3,auto) auto;gap:6px;grid-template-areas:"helm weapon hero charm amulet" "chest gloves hero boots belt" "ring1 ring2 hero quiver ." "rune1 rune2 hero . ."}.touch .doll-slot .cell{aspect-ratio:1;height:auto;font-size:20px}.touch .doll-hero{display:block;grid-area:hero;align-self:center;width:100%;background-repeat:no-repeat;background-position:0 0;image-rendering:pixelated;filter:drop-shadow(0 6px 8px rgba(0,0,0,.5))}.touch .inv-left .detail,.touch .panel .body .inv-left .detail{position:fixed;left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));max-height:66vh;overflow-y:auto;z-index:20;margin:0;box-shadow:0 -6px 18px #0000008c;font-size:12px}.detail .cmp{margin-top:6px;padding-top:6px;border-top:1px dashed var(--g3);font-size:12px}.detail .cmp ul.lines{margin:2px 0;line-height:1.4}.touch .detail:has(.cmp){display:grid;grid-template-columns:1fr 1fr;column-gap:10px}.touch .detail:has(.cmp)>.name,.touch .detail:has(.cmp)>ul.lines{grid-column:1}.touch .detail:has(.cmp)>.cmp{grid-column:2;grid-row:1 / span 2;margin-top:0;padding-top:0;border-top:0;border-left:1px dashed var(--g3);padding-left:8px}.touch .detail:has(.cmp)>.row{grid-column:1 / -1}.modal-bg.inv-panel{z-index:60}.touch .doll{grid-template-columns:50px 50px minmax(0,1fr) 50px 50px;grid-template-rows:50px 50px 50px 50px;gap:5px;padding-top:2px}.touch .doll-slot .cell{width:50px;height:50px;aspect-ratio:auto}.touch .doll-hero{max-height:186px;height:100%;width:auto;justify-self:center;background-size:auto 100%!important}.touch .inv-left{overflow-y:auto;max-height:calc(100vh - 90px)}*{scrollbar-width:thin;scrollbar-color:#8a5a32 rgba(22,22,26,.18)}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:#16161a1f;border-radius:0}*::-webkit-scrollbar-thumb{background:linear-gradient(90deg,#a8703c,#7a4a26);border:1px solid #3a2414;border-radius:0;box-shadow:inset 1px 1px #ffd29659}*::-webkit-scrollbar-thumb:hover{background:linear-gradient(90deg,#c4843f,#8f5628)}*::-webkit-scrollbar-corner{background:transparent}*::-webkit-scrollbar-button{display:none;height:0;width:0}.doll-slot .cell.locked{font-size:13px;color:var(--g2)}body:not(.touch) .town-btns{gap:4px;align-items:center}body:not(.touch) .town-btns>.icon-btn:not(.keep),body:not(.touch) .menu-row>.icon-btn{width:42px;height:42px;min-height:42px;padding:0;justify-content:center;position:relative}body:not(.touch) .town-btns>.icon-btn:not(.keep)>span,body:not(.touch) .menu-row>.icon-btn>span{display:none}body:not(.touch) .town-btns>.icon-btn:not(.keep) img,body:not(.touch) .menu-row>.icon-btn img{width:28px;height:28px}body:not(.touch) .town-btns.collapsed>.icon-btn:not(.keep){display:none}body:not(.touch) .pc-menu-toggle{width:42px;height:42px;min-height:42px;padding:0;font-size:20px;position:relative}body:not(.touch) [data-tip]:hover:after{content:attr(data-tip);position:absolute;top:calc(100% + 6px);right:0;white-space:nowrap;background:#101014eb;color:var(--bone, #d8d2c4);border:1px solid var(--iron, #555);padding:3px 8px;font-size:12px;z-index:30;pointer-events:none}body:not(.touch) .menu-row{gap:4px}body:not(.touch) [data-tip]{position:relative}.orb.mana>i{background:linear-gradient(180deg,#6aa8ff,#2f5fb8 60%,#142a5c)}.bar.mana{height:11px;border-width:1px;margin-top:3px;position:relative}.bar.mana>i{background:linear-gradient(90deg,#2f5fb8,#6aa8ff)}.bar.mana>span{position:absolute;inset:0;font-size:9px;line-height:11px;text-align:center;color:#e8f0ff;text-shadow:0 1px 1px #000}.pc-focus{display:flex;align-items:center;gap:6px;margin:2px 0 4px}.pc-focus .bar.focus{flex:1;height:6px}.pc-focus .focus-txt{font-size:11px;color:var(--bone, #d8d2c4);text-shadow:0 1px 2px #000;white-space:nowrap}.skill .mp{position:absolute;right:5px;top:4px;font-size:10px;font-weight:700;color:#8fc0ff;text-shadow:0 1px 2px #000,0 0 2px #000;pointer-events:none;z-index:3;line-height:1}.skill.no-mana{filter:grayscale(.7) brightness(.6)}.joy-zone{display:none}.touch .joy-zone{display:block;position:absolute;left:0;top:0;bottom:0;width:36%;touch-action:none}.touch .joy.floating{transform:none}.touch .joy{background:radial-gradient(circle at 50% 50%,#16161a8c 0 58%,#16161a59 70%,#16161a00 72%)!important;border:2px solid rgba(216,210,196,.55)!important;border-radius:50%;box-shadow:0 0 0 1px #00000080,0 0 14px #e6873a40,inset 0 0 18px #0009;opacity:.55}.touch .joy>b.ar{position:absolute;width:0;height:0;border:6px solid transparent;pointer-events:none;opacity:.7}.touch .joy>b.ar.u{left:calc(50% - 6px);top:6px;border-bottom:8px solid rgba(216,210,196,.8);border-top:0}.touch .joy>b.ar.d{left:calc(50% - 6px);bottom:6px;border-top:8px solid rgba(216,210,196,.8);border-bottom:0}.touch .joy>b.ar.l{top:calc(50% - 6px);left:6px;border-right:8px solid rgba(216,210,196,.8);border-left:0}.touch .joy>b.ar.r{top:calc(50% - 6px);right:6px;border-left:8px solid rgba(216,210,196,.8);border-right:0}.touch .joy i{background:radial-gradient(circle at 38% 32%,#8a8478 0,#4a4640 45%,#26241f)!important;border:2px solid rgba(230,135,58,.85)!important;border-radius:50%;box-shadow:0 3px 6px #0009,inset 0 1px #ffe6be59}.touch .joy.held{opacity:.9;box-shadow:0 0 0 1px #00000080,0 0 18px #e6873a73,inset 0 0 18px #0009}.skill .sup{position:absolute;left:3px;top:22px;padding:0 3px;font-size:9px;line-height:13px;font-weight:700;color:#16161a;background:#8fc0ff;border-radius:2px;pointer-events:none;z-index:4;white-space:nowrap}.skill .sup:empty{display:none}.sock-rows{display:flex;flex-direction:column;gap:8px;margin:10px 0}.sock-row{display:grid;grid-template-columns:minmax(104px,170px) minmax(0,1fr);gap:10px;align-items:center}.sock-row .skill-slot{min-height:72px;width:100%}.sock-chain{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;align-items:center;max-width:352px}.sock-chain:before{content:"";position:absolute;left:-10px;right:10%;top:50%;height:3px;background:var(--rust1, #8a5a2b);opacity:.55;pointer-events:none}.cell.sock{position:relative;z-index:1;min-height:0;width:100%;opacity:1;background:var(--charcoal)}.cell.sock img{width:80%;height:80%;image-rendering:pixelated;object-fit:contain}.cell.sock.add{color:var(--ink, #2a2622);font-size:24px;font-weight:700;cursor:pointer}.cell.sock.add:hover:not(:disabled){color:var(--rust1, #8a5a2b)}.cell.sock.add:disabled{opacity:.6;cursor:default}.cell.sock.locked{font-size:12px;font-weight:700;color:#4a463e;border-style:solid;filter:grayscale(1) brightness(.92);opacity:1}.sock-none{padding-left:2px}.sock-picker{border:2px solid var(--rust1, #8a5a2b);padding:8px 10px;display:flex;flex-direction:column;gap:6px}.sock-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px;max-height:300px;overflow-y:auto}.sock-opt{display:flex;gap:8px;align-items:center;text-align:left;padding:6px 8px}.sock-opt>div{flex:1;min-width:0}.sock-opt.current{border:1px solid var(--amber1, #d98a2b)}@media(max-height:560px),(max-width:560px){.sock-row{grid-template-columns:96px minmax(0,1fr);gap:6px}.sock-row .skill-slot{min-height:52px;padding:4px 8px;display:grid;grid-template-columns:28px minmax(0,1fr);column-gap:4px;align-items:center}.sock-row .skill-slot .sk-icon{grid-row:span 2;width:28px;height:28px;align-self:center}.sock-row .skill-slot .small{display:none}.sock-row .skill-slot .k{font-size:10px}.sock-row .skill-slot b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sock-chain{max-width:300px}.cell.sock{max-height:52px;aspect-ratio:auto;height:52px}.sock-chain{gap:4px}.cell.sock.locked{font-size:9px}.sock-list{grid-template-columns:1fr}}.shop-list{display:flex;flex-direction:column;gap:8px}.shop-row{display:grid;grid-template-columns:minmax(200px,1fr) minmax(0,1.5fr);gap:10px;align-items:stretch;border-bottom:1px solid var(--g3);padding-bottom:8px}.shop-head{display:flex;gap:8px;align-items:flex-start;min-width:0}.shop-tiers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.shop-tier{display:flex;flex-direction:column;gap:1px;align-items:flex-start;text-align:left;padding:8px 16px;min-height:76px}.shop-tier:disabled{opacity:.72}.shop-tier .warn{color:var(--blood);font-weight:700}@media(max-height:560px),(max-width:700px){.shop-row{grid-template-columns:1fr}.shop-tier{min-height:60px;padding:6px 14px}}.sock-body{min-width:0;display:flex;flex-direction:column;gap:3px}.sock-sum{font-weight:700;color:var(--rust1, #8a5a2b)}.panel.refine-panel{width:min(980px,100%)}.ref{display:grid;grid-template-columns:196px minmax(0,1fr) 300px;gap:14px;align-items:start}.ref-list{max-height:480px;overflow-y:auto;padding-right:4px}.ref-group{font-size:12px;color:var(--muted, #8a8478);margin:6px 0 4px}.ref-group:first-child{margin-top:0}.ref-cells{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.ref-center{display:flex;flex-direction:column;align-items:center;min-width:0}.ref-altar{position:relative;width:190px;height:170px;margin-bottom:4px}.ref-altar-img{position:absolute;left:0;right:0;bottom:0;width:100%;height:130px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 4px 6px rgba(0,0,0,.45))}.ref-altar-item{position:absolute;left:50%;top:0;width:64px;transform:translate(-50%)}.ref-altar-item .cell{width:64px;height:64px;pointer-events:none}.ref-name{font-size:17px;font-weight:700;margin-bottom:8px;text-align:center}.ref-rows{width:100%;display:flex;flex-direction:column;gap:6px}button.ref-row{display:flex;align-items:flex-start;gap:8px;width:100%;min-height:44px;padding:7px 10px;text-align:left;font-size:14px;font-weight:400;color:var(--ink);background:#0000000d;border:2px solid var(--g3);border-image:none;border-radius:3px}button.ref-row:hover{background:#d98a2b1f}button.ref-row.on{border-color:var(--accent);background:#d98a2b2e}.ref-row .tier{flex:none;margin-top:2px}.ref-row-txt{min-width:0}.ref-row .rng{color:var(--muted, #8a8478);font-size:11px;margin-left:4px;white-space:nowrap}.ref-was{display:block;font-size:11px;color:var(--muted, #8a8478);margin-top:1px}button.ref-row.changed{animation:ref-flash .7s ease-out}@keyframes ref-flash{0%{background:#f0a030bf}to{background:#d98a2b2e}}@media(prefers-reduced-motion:reduce){button.ref-row.changed{animation:none}}.ref-wallet{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;margin-bottom:8px}.ref-mat{display:inline-flex;align-items:center;gap:3px;white-space:nowrap}.ref-mat-ic{width:20px;height:20px;object-fit:contain;image-rendering:pixelated}.ref-ops{display:grid;grid-template-columns:1fr;gap:6px}button.ref-op{display:flex;align-items:center;gap:8px;width:100%;min-height:58px;padding:6px 10px;text-align:left;color:var(--ink);background:#0000000d;border:2px solid var(--g3);border-image:none;border-radius:3px}button.ref-op:hover{background:#d98a2b1f}button.ref-op.on{border-color:var(--accent);background:#d98a2b38}.ref-op-ic{width:40px;height:40px;flex:none;object-fit:contain;image-rendering:pixelated}.ref-op-txt{flex:1;min-width:0;display:flex;flex-direction:column}.ref-op-desc{font-size:11px;font-weight:400;color:var(--muted, #8a8478)}.ref-op-cost{display:inline-flex;align-items:center;gap:2px;font-weight:700;font-size:14px;flex:none}.ref-hint{min-height:36px;margin:8px 0;font-size:12px;line-height:1.45}.ref-hint.warn{color:var(--blood);font-weight:700}button.ref-go{width:100%;min-height:52px;font-size:16px;font-weight:700;color:#fff;background:#b4671f;border:2px solid #7a4210;border-image:none;border-radius:3px}button.ref-go:hover:not(:disabled){background:#c97a2c}button.ref-go.danger{background:#8f1d14;border-color:#5e120c}button.ref-go:disabled{color:#6f6a60;background:#bdb7a8;border-color:#9a9486}.touch .panel.refine-panel{width:100%}.touch .ref{grid-template-columns:138px minmax(0,1fr) 262px;gap:8px}.touch .ref-list{max-height:calc(100vh - 80px)}.touch .ref-altar{display:none}.touch .ref-name{font-size:14px;margin-bottom:4px}.touch .ref-rows{gap:4px}.touch button.ref-row{font-size:12px;padding:4px 6px;min-height:44px}.touch .ref-wallet{margin-bottom:4px;font-size:12px}.touch .ref-ops{grid-template-columns:1fr 1fr;gap:4px}.touch button.ref-op{min-height:48px;padding:3px 5px;gap:3px}.touch .ref-op-ic{width:26px;height:26px}.touch .ref-op-desc{display:none}.touch .ref-op-txt{font-size:12px}.touch .ref-hint{min-height:30px;margin:4px 0;font-size:11px}.touch button.ref-go{min-height:44px;font-size:14px}.touch .ref-rows{max-height:calc(100vh - 118px);overflow-y:auto}.panel .body .detail{max-height:62vh;overflow-y:auto}.panel .body .detail>.row:last-child{position:sticky;bottom:-10px;margin:6px -10px -10px;padding:8px 10px;background:var(--paper);border-top:1px dashed var(--g3)}.inv-tip{width:auto;flex-direction:row-reverse;align-items:flex-start}.inv-tip>*{width:290px;flex:none}
