@import"https://fonts.googleapis.com/css2?family=Tiny5&display=swap";@import"https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap";*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:#1a1a2e}canvas{display:block}.font-pixel{font-family:Tiny5,sans-serif;letter-spacing:1px}.font-pixel-2{font-family:"Press Start 2P",sans-serif;letter-spacing:1px}.online-map{display:flex;flex-direction:column;align-items:center;margin-top:0;width:100%}.online-map-sidebar{display:flex;flex-direction:column;align-items:center;gap:.8rem;font-family:"Press Start 2P",cursive;width:100%}.online-map-row{display:flex;flex-direction:column;align-items:center;gap:1.5rem;width:100%}.online-map-canvas{border:4px solid #1a100a;border-radius:0;background:#2b1b11;box-shadow:inset 4px 4px #0006;image-rendering:pixelated}.online-map-count{font-size:.6rem;color:#c4b09b;letter-spacing:.1em;text-transform:uppercase;text-shadow:2px 2px 0px #1a100a}.online-player-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;width:100%;max-height:120px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#497a44 #1a100a}.online-player-entry{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:6px;transition:background .1s ease}.online-player-entry:hover{background:#ffffff0d}.online-player-dot{width:8px;height:8px;border-radius:0;border:2px solid #1a100a;flex-shrink:0}.online-player-name{color:#f5eedc;font-size:.7rem;text-shadow:2px 2px 0px #1a100a}.online-player-level{color:#9c8a79;margin-left:auto;font-size:.6rem}.unified-shop-container{position:relative;width:700px;max-width:90vw;display:flex;align-items:center;justify-content:center}.unified-bg-image{width:100%;height:auto;display:block;pointer-events:none;image-rendering:pixelated;filter:drop-shadow(0 20px 40px rgba(0,0,0,.8))}.unified-overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column}.unified-tabs-row{position:absolute;top:6%;left:23%;width:54%;height:48px;display:flex;justify-content:space-evenly;align-items:center}.unified-tab{flex:none;width:78px;height:48px;display:flex;align-items:center;justify-content:center;background-image:url(/ui/windows/shop/shopinvent-btn.png);background-size:100% 100%;background-position:center;background-repeat:no-repeat;background-color:transparent;image-rendering:pixelated;border:none;color:#ffffffb3;font-family:Tiny5,sans-serif;font-size:1.1rem;letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:all .2s ease}.unified-tab:hover{color:#fff;filter:brightness(1.2);transform:translateY(-2px)}.unified-tab.active{color:#ffd54f;filter:brightness(1.3);text-shadow:1px 1px 0px #1a110a}.unified-tab.tab-sell{color:#ff8a80}.unified-tab.tab-sell.active{color:#ff5252}.unified-content-area{position:absolute;top:25%;left:8%;width:84%;height:62%;padding:10px;overflow:hidden}.unified-header-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding:0 12px}.unified-money{color:#ffd54f;font-family:Tiny5,sans-serif;font-size:1.4rem;letter-spacing:1px;text-transform:uppercase;text-shadow:2px 2px 0px #1a110a,0 0 4px rgba(0,0,0,.8)}.unified-error{color:#ff5252;font-family:Tiny5,sans-serif;font-size:1.1rem;text-shadow:1px 1px 0px #1a110a}.unified-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:8px}.unified-shop-container .shop-slot-wrapper,.unified-shop-container .inventory-bag-slot-wrapper{background-image:url(/ui/windows/shop/slot-bg.png);border:none;border-radius:0;background-color:#190f0abf;background-blend-mode:multiply;background-size:100% 100%;background-position:center;background-repeat:no-repeat;image-rendering:pixelated;aspect-ratio:1 / 1;width:100%;height:100%;display:flex;align-items:center;justify-content:center;transition:filter .2s ease,transform .1s ease}.unified-shop-container .shop-slot-wrapper:hover,.unified-shop-container .inventory-bag-slot-wrapper:hover{filter:brightness(1.3) drop-shadow(0 0 6px rgba(255,213,79,.4));transform:scale(1.05);cursor:pointer;z-index:2}.unified-shop-container .shop-slot-wrapper img,.unified-shop-container .inventory-bag-slot-wrapper img{width:65%;height:65%;object-fit:contain;filter:drop-shadow(2px 2px 0px rgba(0,0,0,.5))}.bag-slot-compare-icon{position:absolute;bottom:2px;right:2px;font-size:.7rem;font-weight:700}.bag-slot-compare-up{color:#4caf50}.bag-slot-compare-down{color:#f44336}.bag-slot-compare-blocked{color:#999}.unified-inventory-layout{display:flex;width:100%;height:calc(100% - 40px);gap:16px}.unified-inventory-left{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px}.vender-grid{display:grid;grid-template-columns:repeat(5,56px);justify-content:center;gap:12px}.slot-selection-wrapper{position:relative;width:56px;height:56px}.slot-selection-wrapper.selected:after{content:"";position:absolute;inset:-2px;border:2px solid #ffd54f;pointer-events:none;z-index:5;box-shadow:inset 0 0 8px #ffd54f66,0 0 8px #ffd54f66}.unified-action-panel{width:150px;display:flex;flex-direction:column;justify-content:center;border-left:2px solid rgba(194,151,110,.15);padding-left:16px}.action-panel-content{display:flex;flex-direction:column;align-items:center}.action-panel-title{color:#c2976e;font-family:Tiny5,sans-serif;font-size:1.2rem;letter-spacing:1px;margin-bottom:20px;text-shadow:1px 1px 0px #000}.action-buttons-col{display:flex;flex-direction:column;gap:12px;width:100%}.action-buttons-col button{background:#140f0a99;border:1px solid rgba(194,151,110,.3);color:#fffc;padding:10px 0;font-family:Tiny5,sans-serif;font-size:1.2rem;text-transform:uppercase;cursor:pointer;transition:all .2s ease;text-align:center;width:100%}.action-buttons-col button:hover{background:#ffd54f26;border-color:#ffd54f;color:#ffd54f;transform:scale(1.05)}.action-buttons-col .btn-sell:hover{background:#ff525226;border-color:#ff5252;color:#ff5252}.action-panel-empty{color:#c2976e66;text-align:center;font-family:Tiny5,sans-serif;font-size:1.1rem}.action-buttons-col button.btn-disabled{opacity:.5;color:#888;border-color:#ffffff1a;background:#0000004d}.action-buttons-col button.btn-disabled:hover{transform:none;color:#ff8a80;border-color:#ff8a80;background:#ff52521a}.chest-overlay-wrapper{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#0a0707bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;display:flex;justify-content:center;align-items:center;pointer-events:auto;animation:fadeInChest .2s ease-out}@keyframes fadeInChest{0%{opacity:0}to{opacity:1}}.chest-modal-container{display:flex;gap:30px;width:auto;max-width:90vw;max-height:85vh}.chest-panel-column{background-color:#1a100a;border:6px solid #5a4634;border-radius:4px;padding:25px;display:flex;flex-direction:column;width:400px;box-shadow:10px 10px #0009,inset 0 0 40px #00000080;image-rendering:pixelated;overflow-y:auto}.chest-panel-column::-webkit-scrollbar{display:none}.chest-panel-column>div{width:100%;display:flex;flex-direction:column;align-items:center}.chest-panel-column p{font-family:Tiny5,sans-serif;color:#a89f91;text-align:center;margin-bottom:20px;font-size:1.1rem;line-height:1.4;text-shadow:2px 2px 0px rgba(0,0,0,.5)}.chest-panel-column p.error-text{color:#d32f2f}.chest-panel-column button{background:#ffffff0d;border:2px solid #5a4634;color:#c2976e;font-family:Tiny5,sans-serif;font-size:1.2rem;padding:12px 15px;margin-top:20px;cursor:pointer;text-transform:uppercase;transition:all .1s ease;width:100%;box-shadow:2px 2px #00000080}.chest-panel-column button:active{transform:translateY(2px);box-shadow:0 0 #00000080}.chest-panel-column button:hover{background:#5a4634;color:#f5eedc}.chest-panel-column .bag-slot,.chest-panel-column .storage-slot,.chest-panel-column .item-slot{background-color:#0006;border:1px solid rgba(90,70,52,.502);border-radius:4px;box-shadow:inset 2px 2px 6px #000c;width:48px;height:48px;display:flex;justify-content:center;align-items:center;transition:all .15s ease}.chest-panel-column .bag-slot:hover,.chest-panel-column .storage-slot:hover,.chest-panel-column .item-slot:hover{background-color:#ffffff14;border-color:#c2976e}.chest-panel-column .bag-slot span,.chest-panel-column .storage-slot span{color:#c2976e4d;font-weight:700}.party-overlay-wrapper{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#0a0707d9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;display:flex;justify-content:center;align-items:center;pointer-events:auto;animation:fadeInParty .2s ease-out}@keyframes fadeInParty{0%{opacity:0}to{opacity:1}}.party-modal-container{background:#0a0a0c;border:1px solid rgba(194,151,110,.3);border-radius:4px;width:420px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 15px 35px #000c;overflow:hidden}.party-panel-title{color:#c2976e;font-family:Tiny5,sans-serif;font-size:1.6rem;letter-spacing:2px;text-transform:uppercase;text-align:center;margin:0;padding:16px;background:#c2976e0d;border-bottom:1px solid rgba(194,151,110,.15)}.party-panel-scroll{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column}.party-panel-scroll::-webkit-scrollbar{width:8px}.party-panel-scroll::-webkit-scrollbar-track{background:#0000004d;border-left:1px solid rgba(194,151,110,.1)}.party-panel-scroll::-webkit-scrollbar-thumb{background:#c2976e;border-radius:4px}.party-panel-scroll::-webkit-scrollbar-thumb:hover{background:#ffd54f}.party-members-label,.party-invites-label,.party-players-label{margin:0 0 10px;font-family:Tiny5,sans-serif;font-size:1.2rem;color:#ffd54f;text-transform:uppercase;letter-spacing:1px}.party-empty{margin:10px 0;font-family:Tiny5,sans-serif;font-size:1rem;color:#fff6;text-align:center}.party-hint{margin:20px 0 0;font-family:Tiny5,sans-serif;font-size:.9rem;color:#ffffff4d;text-align:center;text-transform:uppercase}.party-members-list,.party-invites-list,.party-players-list{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-direction:column;gap:8px}.party-member-row,.party-invite-row,.party-player-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:#ffffff08;border:1px solid rgba(255,255,255,.05);border-radius:4px}.party-member-row:hover,.party-invite-row:hover,.party-player-row:hover{background:#ffffff0f}.party-member-name,.party-player-name,.party-invite-name{font-family:Tiny5,sans-serif;font-size:1.1rem;color:#fff;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.party-leader-badge{color:#b8e986;font-size:.9rem}.party-player-class{color:#ffffff80;font-size:.9rem}.party-filter-input{width:100%;margin-bottom:12px;padding:10px 12px;border:1px solid rgba(194,151,110,.3);border-radius:4px;background:#00000080;color:#fff;font-family:Tiny5,sans-serif;font-size:1.1rem;box-sizing:border-box;outline:none;transition:border-color .2s}.party-filter-input:focus{border-color:#ffd54f}.party-filter-input::placeholder{color:#ffffff4d}.party-invite-actions{display:flex;gap:8px}.party-btn{background:#140f0acc;border:1px solid rgba(194,151,110,.4);color:#c2976e;font-family:Tiny5,sans-serif;font-size:1rem;padding:6px 12px;cursor:pointer;text-transform:uppercase;transition:all .2s ease;border-radius:2px}.party-btn:hover{transform:scale(1.05)}.party-btn-request,.party-btn-accept{color:#b8e986;border-color:#b8e98666}.party-btn-request:hover,.party-btn-accept:hover{background:#b8e98626;border-color:#b8e986}.party-btn-decline,.party-btn-kick{color:#ff5252;border-color:#ff525266}.party-btn-decline:hover,.party-btn-kick:hover{background:#ff525226;border-color:#ff5252}.party-btn-leave{width:100%;color:#ffb74d;border-color:#ffb74d66;padding:10px;margin-top:10px;font-size:1.2rem}.party-btn-leave:hover{background:#ffb74d26;border-color:#ffb74d}.party-invite-banner{position:fixed;top:80px;left:50%;transform:translate(-50%);z-index:1200;display:flex;align-items:center;gap:16px;padding:12px 20px;background:#0a0a0c;border:1px solid #ffd54f;border-radius:4px;box-shadow:0 8px 24px #000c,0 0 15px #ffd54f33;pointer-events:auto;animation:slideDownBanner .3s cubic-bezier(.175,.885,.32,1.275)}@keyframes slideDownBanner{0%{top:0;opacity:0}to{top:80px;opacity:1}}.party-invite-banner-text{color:#eee;font-family:Tiny5,sans-serif;font-size:1.2rem;letter-spacing:1px}.party-invite-banner-actions{display:flex;gap:8px;flex-shrink:0}.teleport-overlay-wrapper{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#0a0707d9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;display:flex;justify-content:center;align-items:center;pointer-events:auto;animation:fadeInTeleport .2s ease-out}@keyframes fadeInTeleport{0%{opacity:0}to{opacity:1}}.teleport-modal-container{background:#0a0a0c;border:1px solid rgba(194,151,110,.3);border-radius:4px;width:420px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 15px 35px #000c;overflow:hidden}.teleport-panel-title{color:#c2976e;font-family:Tiny5,sans-serif;font-size:1.6rem;letter-spacing:2px;text-transform:uppercase;text-align:center;margin:0;padding:16px;background:#c2976e0d;border-bottom:1px solid rgba(194,151,110,.15)}.teleport-panel-header{padding:16px;text-align:center}.teleport-panel-money{margin:0 0 6px;font-size:1rem;font-family:Tiny5,sans-serif;color:#ffd54f;text-transform:uppercase}.teleport-panel-hint{margin:0;font-size:.85rem;color:#ffffff80}.teleport-error{color:#ff5252;font-family:Tiny5,sans-serif;margin-top:10px;font-size:1.1rem}.teleport-panel-scroll{flex:1;overflow-y:auto;padding:0 16px 16px}.teleport-panel-scroll::-webkit-scrollbar{width:8px}.teleport-panel-scroll::-webkit-scrollbar-track{background:#0000004d;border-left:1px solid rgba(194,151,110,.1)}.teleport-panel-scroll::-webkit-scrollbar-thumb{background:#c2976e;border-radius:4px}.teleport-panel-scroll::-webkit-scrollbar-thumb:hover{background:#ffd54f}.teleport-level-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.teleport-level-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;background:#ffffff08;border:1px solid rgba(255,255,255,.05);border-radius:4px;transition:background .2s}.teleport-level-row:hover{background:#ffffff0f}.teleport-level-row.current-level{border-color:#ffd54f4d;background:#ffd54f0d}.teleport-level-info{display:flex;flex-direction:column;gap:4px;flex:1}.teleport-level-name{font-weight:700;color:#fff;font-family:Tiny5,sans-serif;font-size:1.1rem;letter-spacing:1px}.teleport-level-meta{font-size:.8rem;color:#fff9}.teleport-level-btn{background:#140f0acc;border:1px solid rgba(194,151,110,.4);color:#c2976e;font-family:Tiny5,sans-serif;font-size:1rem;padding:6px 12px;cursor:pointer;text-transform:uppercase;transition:all .2s ease;border-radius:2px}.teleport-level-btn:hover:not(:disabled){background:#ffd54f26;border-color:#ffd54f;color:#ffd54f;transform:scale(1.05)}.teleport-level-btn:disabled{opacity:.3;cursor:not-allowed;border-color:#ffffff1a;color:#ffffff4d}.game-ui{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1000}.game-ui{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:999999999}.game-ui-latency{position:fixed;bottom:10px;right:12px;text-align:right;font-size:.7rem;color:#ffffffbf;font-variant-numeric:tabular-nums;text-shadow:0 0 2px rgba(0,0,0,.8);pointer-events:none}.game-ui-map-coords-wrap{white-space:nowrap}.game-ui-map-coords{color:#b4dcffe6}.inventory-panel{width:300px;color:#eee}.storage-panel-hint{margin:0 0 10px;font-size:.72rem;color:#999;line-height:1.35}.storage-panel-error{margin:0 0 8px;font-size:.8rem;color:#f87171}.storage-panel-max{margin:10px 0 0;font-size:.75rem;color:#888}.item-slot-picked{outline:2px solid #f59e0b;outline-offset:-2px;box-shadow:inset 0 0 0 1px #f59e0b59}.storage-expand-btn{margin-top:12px;width:100%;padding:10px 12px;border:1px solid rgba(245,158,11,.45);border-radius:6px;background:#f59e0b1f;color:#fcd34d;font-size:.85rem;cursor:pointer}.storage-expand-btn:disabled{opacity:.45;cursor:not-allowed}.character-panel{width:280px}.character-unspent{margin:0 0 12px;font-size:.85rem;color:#a78bfa}.character-section{margin-bottom:16px}.character-section-title{margin:0 0 8px;font-size:.8rem;font-weight:600;color:#ffffffa6;text-transform:uppercase;letter-spacing:.04em}.character-stat-list,.character-combat-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.character-stat-row,.character-combat-row{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#ffffff0f;border-radius:6px;font-size:.9rem}.character-stat-label,.character-combat-label{flex:1;color:#ddd}.character-stat-value,.character-combat-value{font-weight:600;color:#fff;min-width:2ch;text-align:right}.character-stat-add-btn{width:28px;height:28px;padding:0;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;line-height:1;color:#fff;background:#4caf50;border:none;border-radius:6px;cursor:pointer;flex-shrink:0}.character-stat-add-btn:hover:not(:disabled){background:#43a047}.character-stat-add-btn:disabled{background:#4b5563;color:#9ca3af;cursor:not-allowed}.equipped-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.equipped-slot-wrapper{position:relative}.equipped-slot{aspect-ratio:1;position:relative;display:flex;align-items:center;justify-content:center;background:#ffffff14;border:1px solid rgba(255,255,255,.2);border-radius:8px;cursor:pointer;font-size:.7rem;min-height:48px}.equipped-slot:hover{background:#ffffff1f}.equipped-slot-icon{font-size:1.2rem}.equipped-slot-empty{color:#666;font-size:.65rem;text-align:center}.inventory-bag{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:12px}.bag-slot{aspect-ratio:1;position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer;width:56px;height:56px}.bag-slot:hover{background:#ffffff1a}.bag-slot .sprite-icon,.equipped-slot .sprite-icon{transition:scale .1s ease-out;filter:drop-shadow(0px 0px .3px black) drop-shadow(0px 0px .3px black);image-rendering:pixelated}.bag-slot:hover .sprite-icon,.equipped-slot:hover .sprite-icon{scale:1.1}.bag-slot-icon,.equipped-slot-icon{font-size:1rem;filter:drop-shadow(0 0 8px rgba(0,0,0,.4))}.item-slot-upgrade-mid{animation:item-slot-upgrade-pulse-mid .6s ease-out infinite alternate}@keyframes item-slot-upgrade-pulse-mid{0%{filter:brightness(1.2) saturate(1)}to{filter:brightness(1.5) saturate(1.2)}}.item-slot-upgrade-max{animation:item-slot-upgrade-pulse-max .6s linear infinite alternate}@keyframes item-slot-upgrade-pulse-max{0%{filter:brightness(1.8) saturate(1) contrast(1.2) hue-rotate(0deg)}to{filter:brightness(2) saturate(1.2) contrast(1.4) hue-rotate(-25deg)}}.bag-slot-affix-stars,.equipped-slot-affix-stars{position:absolute;bottom:-6px;text-align:center;font-size:7px;line-height:1;letter-spacing:-.5px;pointer-events:none;z-index:4;text-shadow:0 0 2px rgba(0,0,0,.9);background:#0009;padding:4px;display:inline-flex;border-radius:4px}.bag-slot-empty{color:#444;font-size:.8rem}.inventory-bag-slot-wrapper{position:relative}.bag-slot-compare-icon{position:absolute;top:-4px;right:0;width:16px;height:16px;align-items:center;justify-content:center;font-size:9px;font-weight:700;line-height:1;z-index:5;pointer-events:none;text-shadow:0 0 2px rgba(0,0,0,.8);background:#0009;padding:4px;display:inline-flex;border-radius:4px}.bag-slot-compare-up{color:#4ade80}.bag-slot-compare-down,.bag-slot-compare-blocked{color:#f87171}.item-context-menu-upgrade-pulse{animation:item-upgrade-pulse .5s ease-out}@keyframes item-upgrade-pulse{0%{background:#22c55e26;box-shadow:0 0 #22c55e99}50%{background:#22c55e73;box-shadow:0 0 8px 2px #22c55e80}to{background:transparent;box-shadow:none}}.item-context-menu{position:absolute;left:0;top:100%;margin-top:6px;z-index:10;display:flex;flex-direction:column;gap:2px;background:#0a0707;border:1px solid rgba(255,255,255,.08);border-radius:2px;padding:4px;min-width:130px;box-shadow:0 8px 24px #000c}.item-context-menu button{padding:8px 12px;font-size:.85rem;font-family:inherit;text-align:left;white-space:nowrap;background:transparent;border:none;border-radius:2px;color:#a3a3a3;cursor:pointer;transition:all .2s ease}.item-context-menu button:hover{background:#ffffff0d;color:#fff;transform:translate(2px)}.item-context-menu button:disabled{opacity:.45;cursor:not-allowed}.item-context-menu button:disabled:hover{background:#ffffff14}.item-context-menu-drop{color:#b8e0ff!important}.item-context-menu-drop:hover{background:#78b4ff2e!important}.item-confirm-overlay{position:fixed;inset:0;z-index:2500;display:flex;align-items:center;justify-content:center;background:#0000008c;pointer-events:auto}.item-confirm-card{width:min(90vw,340px);background:#181822fa;border:1px solid rgba(255,255,255,.2);border-radius:10px;padding:18px 20px;box-shadow:0 10px 32px #0009;color:#eee;text-align:center}.item-confirm-title{margin:0 0 10px;font-size:1rem;font-weight:700;color:#fff}.item-confirm-item{margin:0 0 8px;font-size:.95rem;color:#ffd54f;overflow:hidden;text-overflow:ellipsis}.item-confirm-reason{margin:0 0 6px;font-size:.8rem;color:#f4b860}.item-confirm-detail{margin:0 0 16px;font-size:.78rem;color:#bbb}.item-confirm-actions{display:flex;gap:10px}.item-confirm-actions button{flex:1;padding:9px 12px;font-size:.85rem;border-radius:6px;cursor:pointer;border:1px solid transparent;white-space:nowrap}.item-confirm-cancel{background:#ffffff1f;color:#eee;border-color:#fff3}.item-confirm-cancel:hover{background:#ffffff2e}.item-confirm-accept{background:#c6282880;color:#ffd9cf;border-color:#c62828b3}.item-confirm-accept:hover{background:#c62828b3}.shop-close-btn{padding:8px 16px;font-size:.85rem;background:#ffffff26;color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:6px;cursor:pointer;width:100%}.shop-close-btn:hover{background:#fff3}.item-tooltip-compare-group{position:fixed;z-index:2100;display:flex;flex-direction:row;align-items:flex-start;gap:8px;pointer-events:none}.item-tooltip-card,.item-tooltip-html{position:relative;min-width:160px;width:max-content;max-width:min(90vw,480px);padding:10px 12px;background:#e3cfaa;border:2px solid #5a4634;border-radius:2px;box-shadow:4px 4px #0000004d;color:#4a3525;font-family:"monospace",sans-serif;font-size:.8rem;line-height:1.4;pointer-events:none;image-rendering:pixelated}.item-tooltip-card--standalone{position:fixed;z-index:2100}.item-tooltip-card--equipped{border-color:#3b7d4f;background:#dce5ce}.item-tooltip-equipped-badge{position:absolute;top:0;left:50%;transform:translate(-50%,-50%);z-index:1;padding:2px 10px;background:#3b7d4f;border:2px solid #1e452a;border-radius:0;box-shadow:2px 2px #0000004d;color:#fff;font-size:.65rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;pointer-events:none}.item-tooltip-name{font-weight:800;font-size:.9rem;color:#7a2924;margin-bottom:4px;white-space:nowrap;border-bottom:1px solid rgba(90,70,52,.2);padding-bottom:2px}.item-tooltip-slot{color:#6d533e;font-size:.75rem;margin-bottom:6px;font-weight:700}.item-tooltip-class{color:#2b5c7a;font-size:.75rem;margin-bottom:6px;font-weight:700}.item-tooltip-stats{margin-bottom:4px;color:#4a3525}.item-tooltip-stats div{margin:2px 0}.item-tooltip-no-stats{color:#8c735d;font-style:italic}.item-tooltip-price{color:#9c6c19;font-weight:700;margin-top:6px;padding-top:6px;border-top:1px solid rgba(90,70,52,.2)}.item-tooltip-sell,.item-tooltip-upgrade-cost{color:#3b7d4f;font-size:.75rem;margin-top:2px}.damage-vignette{position:fixed;inset:0;pointer-events:none;z-index:2;opacity:0;animation:damage-vignette-pulse .58s ease-out forwards;background:linear-gradient(to right,rgba(190,10,10,.92) 0%,transparent 16%),linear-gradient(to left,rgba(190,10,10,.92) 0%,transparent 16%),linear-gradient(to bottom,rgba(190,10,10,.92) 0%,transparent 20%),linear-gradient(to top,rgba(190,10,10,.92) 0%,transparent 20%),radial-gradient(ellipse 92% 88% at 50% 50%,transparent var(--vignette-inner, 55%),rgba(160,0,0,.88) 100%)}@keyframes damage-vignette-pulse{0%{opacity:0}14%{opacity:var(--vignette-peak, .45)}to{opacity:0}}.respawn-overlay{position:fixed;inset:0;background:#00000040;display:flex;align-items:center;justify-content:center;z-index:3000;pointer-events:none;animation:respawn-overlay-fade .3s ease-out}@keyframes respawn-overlay-fade{0%{opacity:0}to{opacity:1}}.respawn-overlay-content{text-align:center;color:#fff}.respawn-overlay-title{font-size:2rem;font-weight:700;margin:0 0 12px;text-shadow:0 2px 8px rgba(0,0,0,.8);color:#e57373}.respawn-overlay-countdown{font-size:1.25rem;margin:0;opacity:.95}.respawn-overlay-number{font-size:2rem;font-weight:700;color:#fff;min-width:1.5ch;display:inline-block}.stats-panel-wrapper{position:absolute;top:20px;left:20px;display:flex;flex-direction:column;align-items:center;pointer-events:none;z-index:10}.stats-level-layer{position:relative;z-index:2;display:inline-block;margin-bottom:-25px}.img-level{display:block;width:160px;height:auto;filter:drop-shadow(0px 6px 8px rgba(0,0,0,.6))}.level-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-60%);font-size:1.15rem;font-weight:700;color:#fff;text-shadow:2px 2px 4px rgba(0,0,0,.9);white-space:nowrap}.stats-progress-layer{position:relative;z-index:1;display:inline-block}.img-progress{display:block;width:280px;height:auto;filter:drop-shadow(0px 8px 12px rgba(0,0,0,.7))}.xp-slot-container{position:absolute;left:50%;transform:translate(-50%);top:30px;width:230px;height:18px;border-radius:4px;overflow:hidden}.xp-bar-fill{height:100%;background:linear-gradient(90deg,#107902,#51f63b);transition:width .3s ease-out;box-shadow:inset 0 2px 4px #ffffff4d}.xp-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.75rem;font-weight:700;color:#fff;text-shadow:1px 1px 3px rgba(0,0,0,1);white-space:nowrap;z-index:2}.stats-info-container{position:absolute;top:61px;left:0;width:100%;display:flex;flex-direction:column;align-items:center;gap:10px}.stats-resources{display:flex;align-items:center;gap:40px}.money-display{font-size:1.1rem;font-weight:700;color:gold;text-shadow:1px 1px 2px rgba(0,0,0,.8)}.unspent-points{font-size:.9rem;color:#a78bfa;font-weight:700;text-shadow:1px 1px 2px rgba(0,0,0,.8)}.stats-combat{display:flex;align-items:center;gap:24px;font-size:.95rem;color:#fff;text-shadow:1px 1px 2px rgba(0,0,0,.8)}.stats-combat span{display:flex;align-items:center;gap:4px}.bottom-bar{position:absolute;bottom:0;left:50%;transform:translate(-50%);width:400px;pointer-events:none;z-index:10}.hud-frame{position:relative;width:100%;height:auto;display:block;z-index:2;filter:drop-shadow(0px 8px 10px rgba(0,0,0,.6))}.orb-container{position:absolute;width:80px;height:80px;z-index:1;background:#0a0707;border-radius:50%;box-shadow:inset 0 6px 12px #000000e6}.orb-hp-pos{top:59px;left:30px}.orb-mana-pos{top:59px;right:30px}.orb-fill{width:100%;height:100%;border-radius:50%;transition:clip-path .2s ease-out}.orb-hp-fill{background:radial-gradient(circle at 50% 65%,#e53935,#b71c1c 55%,#7f0000);box-shadow:inset 0 -4px 10px #0009}.orb-mana-fill{background:radial-gradient(circle at 50% 65%,#1e88e5,#1565c0 55%,#0d47a1);box-shadow:inset 0 -4px 10px #0009}.orb-value{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:15px;font-family:monospace;font-weight:700;color:#f8f9fa;text-shadow:2px 2px 0px rgba(0,0,0,.9);z-index:4}.skill-key-text{font-family:monospace;font-size:12px;font-weight:700;color:#ffb300;text-shadow:1px 1px 0px rgba(0,0,0,.8);text-transform:uppercase}.abilities-bar{--bar-offset-y: 5px;--bar-offset-x: 0px;--slot-gap: 25px;--slot-size: 50px;--icon-scale: 75%;--icon-offset-y: -4px;--icon-offset-x: 0px;--text-offset-y: 2px}.abilities-bar{position:absolute;top:calc(50% + var(--bar-offset-y));left:calc(50% + var(--bar-offset-x));transform:translate(-50%,-50%);display:flex;gap:var(--slot-gap);z-index:3}.ability-slot{width:var(--slot-size);height:var(--slot-size);flex-shrink:0;pointer-events:auto}.ability-slot-inner{position:relative;width:100%;height:100%;background:transparent;border:none;display:flex;align-items:center;justify-content:center;border-radius:4px;overflow:hidden;transition:transform .1s ease}.ability-slot-inner:hover{transform:scale(1.1)}.ability-icon{width:var(--icon-scale);height:var(--icon-scale);object-fit:contain;image-rendering:pixelated;z-index:1;transform:translate(var(--icon-offset-x),var(--icon-offset-y))}.ability-keybind{position:absolute;bottom:var(--text-offset-y);font-size:.75rem;color:#fc6;font-weight:700;z-index:3;text-shadow:1px 1px 0 #000,-1px 1px 0 #000,1px -1px 0 #000,-1px -1px 0 #000,0px 2px 3px rgba(0,0,0,.8)}.ability-cooldown-overlay{position:absolute;bottom:0;left:0;right:0;background:#000000b3;transition:height .05s linear;z-index:2}.ability-cooldown-sec{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.4rem;font-weight:700;color:#fff;text-shadow:2px 2px 0px #000;z-index:4}.chat-panel{position:absolute;bottom:30px;left:20px;width:400px;height:300px;display:flex;flex-direction:column;pointer-events:auto;z-index:10;box-sizing:border-box}.chat-bg{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:fill;z-index:-1;pointer-events:none;filter:drop-shadow(0px 10px 15px rgba(0,0,0,.5))}.chat-messages{flex:1;overflow-y:auto;margin:25px 30px -10px;padding-right:15px;padding-bottom:10px;font-size:.8rem;text-shadow:1px 1px 2px rgba(0,0,0,.85)}.chat-messages::-webkit-scrollbar{width:8px}.chat-messages::-webkit-scrollbar-track{background:#0003;border-radius:4px}.chat-messages::-webkit-scrollbar-thumb{background:#734022;border-radius:4px;border:1px solid rgba(0,0,0,.6)}.chat-messages::-webkit-scrollbar-thumb:hover{background:#a86539}.chat-message{margin-bottom:4px;word-wrap:break-word}.chat-time{color:#fff6;font-variant-numeric:tabular-nums;margin-right:4px}.server-message .chat-time{color:#ffffff4d}.chat-player{color:#fc6;font-weight:700;margin-right:4px}.chat-text{color:#fef0d4}.server-message .chat-text{color:#a86539;font-style:italic}.chat-input-form{display:flex;height:45px;margin:18px 30px 15px;align-items:center}.chat-input{flex:1;padding:4px;border:none;border-radius:4px;color:#fff;font-size:.85rem;pointer-events:none;cursor:default;transition:all .2s;font-family:inherit;margin-top:6px}.chat-input:disabled{opacity:.6;background:#00000026}.chat-input.active{background:#0000001a;color:#fef0d4;pointer-events:auto;cursor:text;outline:none}.chat-send{margin-top:8px;margin-right:8px;padding:6px 18px;background:#734022;color:#fef0d4;border:1px solid #3d1c04;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:700;transition:all .1s;box-shadow:inset 0 1px #ffffff1a,0 2px 4px #0006;text-shadow:1px 1px 2px rgba(0,0,0,.8)}.chat-send:hover{background:#8b502b}.chat-send:active{transform:translateY(2px);box-shadow:inset 0 1px 3px #0009}.chat-bg,.chat-input-form,.chat-messages{transition:opacity .4s ease-in-out,transform .3s ease-out}.chat-panel.is-inactive .chat-bg{opacity:0}.chat-panel.is-inactive .chat-input-form{opacity:0;pointer-events:none;transform:translateY(10px)}.chat-panel.is-inactive .chat-messages::-webkit-scrollbar-thumb,.chat-panel.is-inactive .chat-messages::-webkit-scrollbar-track{background:transparent;border-color:transparent}.chat-panel.is-inactive.not-recent .chat-messages{opacity:0}.chat-panel.is-active .chat-bg{opacity:.9}.chat-panel.is-active .chat-input-form{opacity:1;transform:translateY(0)}.chat-panel.is-active .chat-messages{opacity:1}.controls-hint{position:absolute;top:0;right:0;width:400px;pointer-events:auto;z-index:10}.controls-bg{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:fill;z-index:-1;pointer-events:none;filter:drop-shadow(0px 10px 15px rgba(0,0,0,.5))}.drop-modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#0a0707b3;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:2147483647;display:flex;justify-content:center;align-items:center;pointer-events:auto}.drop-modal-card{background-color:#2c221a;border:4px solid #c2976e;box-shadow:0 0 20px #000c,inset 0 0 15px #00000080;padding:24px;border-radius:0;text-align:center;font-family:Tiny5,sans-serif;max-width:400px;color:#f5eedc}.drop-modal-title{color:#ff5252;font-size:32px;margin:0 0 10px;text-shadow:2px 2px 0px #000}.drop-modal-text{font-size:22px;margin:0 0 15px;text-shadow:1px 1px 0px #000}.drop-modal-reason{color:#ffd54f;font-size:20px;margin:0 0 15px;text-shadow:1px 1px 0px #000}.drop-modal-warning{color:#aaa;font-size:16px;margin:0 0 25px}.drop-modal-actions{display:flex;gap:20px;justify-content:center}.drop-modal-btn{color:#fff;font-family:Tiny5,sans-serif;font-size:20px;padding:8px 24px;cursor:pointer;box-shadow:2px 2px #000;transition:transform .1s,box-shadow .1s}.drop-modal-btn:active{transform:translate(2px,2px);box-shadow:0 0 #000}.drop-modal-btn-cancel{background-color:#4a3f35;border:2px solid #2c221a}.drop-modal-btn-cancel:hover{background-color:#5c4e43}.drop-modal-btn-drop{background-color:#8b0000;border:2px solid #5a0000}.drop-modal-btn-drop:hover{background-color:#a80000}.auth-screen{width:380px;display:flex;flex-direction:column;align-items:center;background:#3e2819;border:4px solid #1a100a;border-radius:0;box-shadow:8px 8px #0009;color:#f5eedc;padding:2.5rem 2rem;z-index:2}.map-container{position:absolute;left:calc(100% + 2rem);bottom:0;width:380px;display:flex;flex-direction:column;align-items:center;background:#3e2819;border:4px solid #1a100a;border-radius:0;box-shadow:8px 8px #0009;color:#f5eedc;padding:2.5rem 2rem;z-index:1}.auth-tabs{display:flex;width:100%;gap:0;margin-bottom:1.5rem;border:4px solid #1a100a;background:#1a100a}.auth-tabs button{flex:1;padding:1rem .5rem;border:none;background:#2b1b11;color:#9c8a79;font-family:"Press Start 2P",cursive;font-size:.7rem;cursor:pointer;text-transform:uppercase;transition:background .1s ease}.auth-tabs button.active{background:#497a44;color:#fff}.auth-tabs button:hover:not(.active){background:#362316}.auth-form{display:flex;flex-direction:column;gap:1.2rem;width:100%}.auth-form input{width:100%;padding:.8rem 1rem;border:4px solid #1a100a;border-radius:0;background:#1a100a;color:#f5eedc;font-family:system-ui,-apple-system,sans-serif;font-size:1.1rem;font-weight:600;box-sizing:border-box}.auth-form input:focus{outline:none;background:#22150d;box-shadow:inset 0 0 0 4px #497a44}.password-wrapper{position:relative;width:100%}.password-wrapper input{padding-right:2.5rem}.password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:1.2rem;padding:0;color:#9c8a79;transition:transform .1s}.password-toggle:hover{transform:translateY(-50%) scale(1.1)}.auth-form button.submit-btn{margin-top:.5rem;padding:1rem;border:4px solid #1a100a;border-radius:0;background:#497a44;color:#fff;font-family:"Press Start 2P",cursive;font-size:.9rem;text-transform:uppercase;cursor:pointer;box-shadow:inset 4px 4px #ffffff40,inset -4px -4px #0000004d,6px 6px #1a100a;transition:transform .1s ease,box-shadow .1s ease}.auth-form button.submit-btn:hover:not(:disabled){background:#568f50}.auth-form button.submit-btn:active:not(:disabled){transform:translate(6px,6px);box-shadow:inset 4px 4px #0000004d,inset -4px -4px #ffffff40,0 0 #1a100a}.auth-form button.submit-btn:disabled{background:#4a423d;color:#9c8a79;cursor:not-allowed;box-shadow:none}.auth-error{margin:0;color:#ff6b6b;font-size:1.1rem;text-align:center;text-shadow:2px 2px 0px #1a100a}.map-toggle-btn{padding:.8rem 1.5rem;border:4px solid #1a100a;background:#2b1b11;color:#c4b09b;font-family:"Press Start 2P",cursive;font-size:.7rem;cursor:pointer;text-transform:uppercase;box-shadow:4px 4px #0009;transition:all .1s}.map-toggle-btn:hover{background:#3e2819;color:#f5eedc}.map-toggle-btn:active{transform:translate(4px,4px);box-shadow:0 0 #0009}.class-selection-floating{display:flex;flex-direction:column;align-items:center;width:100%;gap:1rem}.class-selection-floating .character-portrait-btn.floating.create-mode{transition:all .2s ease;opacity:.6;filter:grayscale(80%)}.class-selection-floating .character-portrait-btn.floating.create-mode:hover{opacity:.9;filter:grayscale(30%)}.class-selection-floating .character-portrait-btn.floating.create-mode.selected{opacity:1;filter:grayscale(0%);transform:translateY(-12px) scale(1.05)}.class-selection-floating .character-portrait-btn.floating.create-mode.selected .portrait-img-single{filter:drop-shadow(0px 0px 10px rgba(73,122,68,.8))}.creation-form{display:flex;flex-direction:column;align-items:center;gap:1.5rem;background:#1a100ad9;padding:2rem 3rem;border:4px solid #1a100a;box-shadow:8px 8px #0009}.hero-name-input{width:100%;min-width:320px;padding:1rem;border:4px solid #1a100a;border-radius:0;background:#1a100a;color:#f5eedc;font-family:system-ui,-apple-system,sans-serif;font-size:1.2rem;font-weight:700;text-align:center;box-sizing:border-box;transition:all .2s}.hero-name-input:focus{outline:none;background:#22150d;box-shadow:inset 0 0 0 4px #497a44}.hero-name-input::placeholder{color:#9c8a79}.gate-header{font-family:"Press Start 2P",cursive;font-size:1rem;color:#c4b09b;text-align:center;margin:0 0 1.5rem;text-shadow:2px 2px 0px #1a100a}.gate-header.giant{font-size:1.3rem;color:#f5eedc;margin-bottom:2rem}.gate-back-btn{background:none;border:none;color:#c4b09b;font-family:"Press Start 2P",cursive;font-size:.6rem;cursor:pointer;align-self:flex-start;margin-bottom:1.5rem;padding:0}.gate-back-btn:hover{color:#fff}.floating-gate{width:100%;align-items:center;padding-bottom:5vh}.floating-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:3rem;width:100%;max-width:1000px;margin-bottom:3.5rem;transition:filter .3s ease}.floating-grid:has(.character-card-wrapper:hover) .character-card-wrapper:not(:hover){filter:grayscale(100%);opacity:.6;transform:scale(.95)}.character-card-wrapper{position:relative;display:flex;flex-direction:column;transition:all .3s ease}.character-card-wrapper:hover{transform:translateY(-12px) scale(1.05);z-index:10}.character-portrait-btn.floating{background:transparent;border:none;padding:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:1.2rem;outline:none}.portrait-img-single{width:180px;height:auto;image-rendering:pixelated;filter:drop-shadow(10px 10px 0px rgba(0,0,0,.5))}.char-info-floating{display:flex;flex-direction:column;align-items:center;gap:.5rem;background:#1a100ad9;padding:.6rem 1.2rem;border:4px solid #1a100a;box-shadow:4px 4px #0009}.char-info-floating .char-name{font-family:system-ui,sans-serif;font-weight:800;font-size:1.25rem;color:#f5eedc}.char-info-floating .char-class{font-family:"Press Start 2P",cursive;font-size:.6rem;color:#9c8a79}.character-delete-icon.floating-delete{position:absolute;top:-10px;right:-10px;background:#c0392b;color:#fff;border:4px solid #1a100a;width:32px;height:32px;display:flex;justify-content:center;align-items:center;font-family:"Press Start 2P",cursive;font-size:.7rem;cursor:pointer;z-index:20;transition:transform .1s;box-shadow:4px 4px #0009}.character-delete-icon.floating-delete:hover{background:#e74c3c;transform:scale(1.15) rotate(5deg)}.action-buttons-floating{display:flex;gap:1.5rem;margin-top:1rem}.gate-btn{padding:1rem 1.5rem;border:4px solid #1a100a;border-radius:0;font-family:"Press Start 2P",cursive;font-size:.9rem;text-transform:uppercase;cursor:pointer;box-shadow:inset 4px 4px #ffffff40,inset -4px -4px #0000004d,6px 6px #1a100a;transition:transform .1s ease,box-shadow .1s ease}.gate-btn.primary{background:#497a44;color:#fff}.gate-btn.primary:hover:not(:disabled){background:#568f50}.gate-btn.secondary{background:#2b1b11;color:#fff}.gate-btn.secondary:hover:not(:disabled){background:#3e2819}.gate-btn:active:not(:disabled){transform:translate(6px,6px);box-shadow:inset 4px 4px #0000004d,inset -4px -4px #ffffff40,0 0 #1a100a}.App{width:100vw;height:100vh;overflow:hidden;position:relative}.reconnecting-overlay{position:fixed;inset:0;z-index:99999999;background:#0a0a15d9;display:flex;align-items:center;justify-content:center;pointer-events:auto}.reconnecting-content{text-align:center;color:#fff;padding:24px 32px;border-radius:12px;background:#1a1a2ef2;border:1px solid rgba(255,255,255,.12);box-shadow:0 8px 32px #00000080}.reconnecting-spinner{width:40px;height:40px;margin:0 auto 16px;border:3px solid rgba(255,255,255,.2);border-top-color:#7c8aff;border-radius:50%;animation:reconnecting-spin .8s linear infinite}.reconnecting-title{margin:0 0 4px;font-size:1.25rem;font-weight:600}.reconnecting-hint{margin:0;font-size:.85rem;color:#ffffffb3}@keyframes reconnecting-spin{to{transform:rotate(360deg)}}.auth-wrapper{position:relative;width:100vw;height:100vh;overflow:hidden;background-color:#87ceeb}.parallax-bg{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.parallax-layer{position:absolute;top:0;left:0;width:100%;height:100%;background-size:auto 100%;background-repeat:repeat-x;background-position:bottom left;image-rendering:pixelated}.layer-5{animation:scrollBg 120s linear infinite}.layer-4{animation:scrollBg 80s linear infinite}.layer-3{animation:scrollBg 45s linear infinite}.layer-2{animation:scrollBg 30s linear infinite}.layer-1{animation:scrollBg 15s linear infinite}@keyframes scrollBg{0%{background-position-x:0}to{background-position-x:-156.25vh}}.layer-sign{background-image:url(/login/sign/sign2.png);background-size:auto 25vh;background-repeat:no-repeat;background-position-y:100%;image-rendering:pixelated;animation:moveSign 30s linear infinite}@keyframes moveSign{0%,30%{background-position-x:120vw}to{background-position-x:-30vw}}.auth-content{position:relative;z-index:10;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding-bottom:19vh;width:100%;height:100%}.title-container{position:absolute;top:12vh;left:0;width:100%;display:flex;justify-content:center;animation:dropSign .4s cubic-bezier(.175,.885,.32,1.275) forwards;pointer-events:none}.title-container.exit{animation:liftSign .4s ease-in forwards}@keyframes dropSign{0%{transform:translateY(-150%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes liftSign{0%{transform:translateY(0);opacity:1}to{transform:translateY(-150%);opacity:0}}.title-sign{display:flex;flex-direction:column;align-items:center}.game-title{font-family:"Press Start 2P",cursive;font-size:4.1rem;color:#f5eedc;margin:0;text-shadow:6px 6px 0px #1a100a;display:flex;justify-content:center}.game-title span{display:inline-block;animation:floatLetter 2.5s infinite ease-in-out}@keyframes floatLetter{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.game-subtitle{font-family:"Press Start 2P",cursive;margin:20px 0 0;color:#c4b09b;font-size:1rem;letter-spacing:.1em;text-shadow:2px 2px 0px #1a100a}.interactive-area{display:flex;flex-direction:column;align-items:center;gap:1.5rem}.panels-wrapper{position:relative;display:flex;justify-content:center;font-family:Tiny5,sans-serif}.balance-sheet-embedded{color:#ececf0;font-family:system-ui,Segoe UI,sans-serif;font-size:14px;line-height:1.45}.balance-sheet-sub--embedded{margin:0 0 1rem;padding:0;color:#8b8b96;font-size:.85rem}.balance-sheet-embedded .balance-section{padding-left:0;padding-right:0}.balance-sheet-root{position:fixed;inset:0;z-index:100000;overflow:auto;background:#0e0e12;color:#ececf0;font-family:system-ui,Segoe UI,sans-serif;font-size:14px;line-height:1.45}.balance-sheet-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem 1.25rem .5rem;border-bottom:1px solid #2e2e38;position:sticky;top:0;background:#0e0e12;z-index:2}.balance-sheet-header h1{font-size:1.35rem;font-weight:650;margin:0 0 .35rem}.balance-sheet-sub{margin:0;color:#8b8b96;font-size:.85rem;max-width:42rem}.balance-sheet-sub code{font-size:.9em;color:#b8b8c4}.balance-sheet-actions{display:flex;flex-wrap:wrap;gap:.5rem}.balance-btn{padding:.45rem .75rem;border-radius:6px;border:1px solid #3d3d4a;background:#16161c;color:#ececf0;font-weight:600;cursor:pointer;font-size:.85rem}.balance-btn:hover{border-color:#5c7fd6;color:#fff}.balance-sheet-error{color:#ff6b6b;padding:1rem 1.25rem}.balance-sheet-loading{padding:1.5rem 1.25rem;color:#8b8b96}.balance-section{padding:1.25rem 1.25rem 0}.balance-section-fold{border:1px solid #2e2e38;border-radius:10px;background:#121218;margin-bottom:1rem;overflow:hidden}.balance-fold-summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem 1rem;padding:.85rem 1rem;cursor:pointer;list-style:none;background:#16161c;border-bottom:1px solid #2e2e38;-webkit-user-select:none;user-select:none}.balance-fold-summary::-webkit-details-marker{display:none}.balance-fold-summary:before{content:"▶";display:inline-block;width:1.1rem;color:#8b8b96;font-size:.65rem;transform:translateY(-.05em)}.balance-section-fold[open]>.balance-fold-summary:before{content:"▼"}.balance-fold-title{font-size:1.05rem;font-weight:600;color:#ececf0}.balance-fold-hint{font-size:.8rem;color:#6a6a78;flex:1 1 12rem;min-width:0}.balance-fold-body{padding:.75rem .75rem 1rem}.balance-fold-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.65rem}.balance-btn--sm{padding:.35rem .6rem;font-size:.8rem}.balance-details--nested{margin-top:.75rem;margin-bottom:0}.balance-details{margin-bottom:1rem}.balance-details summary{cursor:pointer;color:#8b8b96;font-size:.9rem;margin-bottom:.5rem}.balance-json{font-size:11px;line-height:1.4;overflow:auto;max-height:22rem;padding:.75rem;border-radius:8px;background:#121218;border:1px solid #2e2e38;color:#c8c8d4}.balance-leveling-note{margin:0 0 .65rem;font-size:.8rem;color:#8b8b96;max-width:52rem}.balance-table-wrap--leveling{max-height:min(70vh,900px)}.balance-table--leveling{min-width:max-content}.balance-table--leveling .balance-leveling-tiers-head{text-align:center;font-weight:600;border-bottom:1px solid #2e2e38}.balance-table--leveling .balance-tier-col{vertical-align:bottom;min-width:4.5rem;max-width:6.5rem;font-weight:500;line-height:1.25}.balance-table--leveling .balance-tier-key{display:block;font-size:.72rem;color:#b8b8c4}.balance-table--leveling .balance-tier-mob{display:block;font-size:.65rem;color:#6a6a78;word-break:break-all}.balance-table-wrap{overflow:auto;max-width:100%;border:1px solid #2e2e38;border-radius:8px;margin-bottom:0}.balance-section-fold .balance-table-wrap:last-child{margin-bottom:0}.balance-table{width:100%;border-collapse:collapse;font-size:12px}.balance-table th,.balance-table td{padding:.4rem .5rem;text-align:left;border-bottom:1px solid #24242c;vertical-align:top}.balance-table th{background:#16161c;color:#a8a8b4;font-weight:600;position:sticky;top:0;z-index:1}.balance-table tbody tr:hover .balance-row-main,.balance-table tbody tr:hover:not(.balance-row-nested){background:#14141a}.balance-row-main.is-open{background:#18181f}.col-expand{width:2.25rem}.balance-expand-btn{width:2rem;height:2rem;border:none;border-radius:4px;background:transparent;color:#8b8b96;cursor:pointer;font-size:.7rem;line-height:1}.balance-expand-btn:hover{color:#5c7fd6;background:#1a1a22}.balance-row-nested td{background:#0a0a0e;padding:.5rem .5rem .75rem;border-bottom:1px solid #2e2e38}.balance-nested{overflow:auto}.balance-table--nested{font-size:11px}.balance-table--nested th{top:0}.mono{font-family:ui-monospace,monospace;font-size:11px;word-break:break-all}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.balance-loot-cell{font-size:11px;max-width:28rem;word-break:break-word}.balance-missing .balance-missing-msg{color:#ff6b6b}.balance-list{margin:.5rem 0 0 1.25rem;color:#b0b0b8;font-size:.85rem}.balance-sheet-footer{padding:1.5rem 1.25rem 2rem;color:#6a6a78;font-size:.8rem}.balance-sheet-footer code{background:#16161c;padding:.1em .35em;border-radius:4px}.admin-maps h2{margin:0 0 .35rem;font-size:1.25rem}.admin-maps-intro{max-width:52rem;margin-bottom:1.25rem}.admin-maps-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem}.admin-maps-select-wrap{display:flex;flex-direction:column;gap:.35rem;min-width:280px}.admin-maps-label{font-size:.85rem;color:#a8b0c0;font-weight:600}.admin-maps-select,.admin-maps-field input,.admin-maps-field textarea{font:inherit;color:#e8eaef;border:1px solid rgba(255,255,255,.15);border-radius:8px;background:#00000040}.admin-maps-select{padding:.5rem .75rem}.admin-maps-toolbar-actions{display:flex;flex-wrap:wrap;gap:.5rem}.admin-maps-error{color:#ff8a8a;margin:0 0 1rem}.admin-maps-success{color:#9ee6b8;margin:0 0 1rem}.admin-maps-form{max-width:56rem;display:flex;flex-direction:column;gap:1rem}.admin-maps-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.admin-maps-field{display:flex;flex-direction:column;gap:.35rem}.admin-maps-field input{padding:.5rem .75rem}.admin-maps-field input:disabled{opacity:.65;cursor:not-allowed}.admin-maps-field--json textarea{width:100%;min-height:8rem;padding:.65rem .75rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88rem;line-height:1.45;resize:vertical}.admin-maps-hint{font-size:.8rem;color:#8b93a8}.admin-maps-form-actions{display:flex;gap:.75rem;padding-top:.25rem}.admin-button--primary{border-color:#9ecbff73;background:#9ecbff24;color:#d8ebff}.admin-users h2{margin:0 0 .35rem;font-size:1.25rem}.admin-users-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-bottom:1rem}.admin-users-search{display:flex;gap:.5rem;align-items:center}.admin-users-search input{min-width:220px;padding:.5rem .75rem;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:#00000040;color:#e8eaef;font:inherit}.admin-users-meta{margin-bottom:.75rem}.admin-users-error{color:#ff8a8a;margin:0 0 1rem}.admin-users-table-wrap{overflow-x:auto;border:1px solid rgba(255,255,255,.08);border-radius:10px}.admin-users-table{width:100%;border-collapse:collapse;font-size:.92rem}.admin-users-table th,.admin-users-table td{padding:.65rem .75rem;text-align:left;border-bottom:1px solid rgba(255,255,255,.06);vertical-align:top}.admin-users-table th{color:#a8b0c0;font-weight:600;background:#ffffff08}.admin-users-name{display:block;font-weight:600}.admin-users-id{display:block;font-size:.8rem;color:#8b93a8}.admin-users-characters{min-width:120px;max-width:200px}.admin-users-character-list{margin:0;padding:0;list-style:none;font-size:.88rem}.admin-users-character-list li{padding:.1rem 0}.admin-users-character-list--match{color:#9ecbff;font-weight:600}.admin-users-character-link{color:#9ec5ff;text-decoration:none}.admin-users-character-link:hover{text-decoration:underline}.admin-users-character-list--match .admin-users-character-link{color:inherit}.admin-users-num{text-align:center}.admin-users-select{font:inherit;padding:.35rem .5rem;border-radius:6px;border:1px solid rgba(255,255,255,.15);background:#1a1a24;color:#e8eaef}.admin-users-badge{display:inline-block;padding:.25rem .5rem;border-radius:6px;font-size:.85rem}.admin-users-badge--ok{background:#50c8781f;color:#9ee6b8}.admin-users-badge--ban{background:#dc505026;color:#ffb4b4;line-height:1.35}.admin-users-actions{display:flex;flex-wrap:wrap;gap:.35rem;max-width:320px}.admin-button--small{padding:.35rem .55rem;font-size:.8rem}.admin-button--danger{border-color:#ff787859;color:#ffc9c9}.admin-button:disabled{opacity:.5;cursor:not-allowed}.admin-users-pagination{display:flex;align-items:center;gap:1rem;margin-top:1rem}.admin-character h2{margin:0 0 .35rem;font-size:1.25rem}.admin-character-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem}.admin-character-breadcrumb{margin:0 0 .5rem;font-size:.9rem;color:#a8b0c0}.admin-character-breadcrumb a{color:#9ec5ff;text-decoration:none}.admin-character-breadcrumb a:hover{text-decoration:underline}.admin-character-toolbar-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.admin-character-notice{margin:0 0 1rem;padding:.85rem 1rem;border-radius:10px;border:1px solid rgba(255,196,120,.35);background:#ffc47814;color:#f0d9b8;font-size:.92rem;line-height:1.45}.admin-character-notice code{font-size:.88em}.admin-character-error{color:#ff8a8a;margin:0 0 1rem}.admin-character-success{color:#9ee6b8;margin:0 0 1rem}.admin-character-form{max-width:56rem;display:flex;flex-direction:column;gap:1.25rem}.admin-character-readonly{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem 1rem;padding:1rem;border-radius:10px;border:1px solid rgba(255,255,255,.08);background:#ffffff05}.admin-character-readonly>div{display:flex;flex-direction:column;gap:.2rem}.admin-character-label{font-size:.85rem;color:#a8b0c0;font-weight:600}.admin-character-id{font-size:.82rem;word-break:break-all}.admin-character-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.admin-character-field{display:flex;flex-direction:column;gap:.35rem}.admin-character-field input{font:inherit;color:#e8eaef;border:1px solid rgba(255,255,255,.15);border-radius:8px;background:#00000040;padding:.5rem .75rem}.admin-page{height:100%;min-height:100%;overflow-y:auto;background:#12121a;color:#e8eaef;padding:2rem clamp(1rem,4vw,3rem);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.admin-page--auth{display:flex;flex-direction:column;align-items:center;gap:1.5rem}.admin-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.08)}.admin-header h1{margin:0 0 .35rem;font-size:1.75rem}.admin-main{max-width:none}.admin-tabs{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:1.5rem;padding-bottom:.25rem;border-bottom:1px solid rgba(255,255,255,.08)}.admin-tab{display:inline-block;padding:.5rem 1rem;border-radius:8px 8px 0 0;color:#a8b0c0;text-decoration:none;font-size:.95rem;border:1px solid transparent;border-bottom:none;margin-bottom:-1px}.admin-tab:hover{color:#e8eaef;background:#ffffff0a}.admin-tab--active{color:#e8eaef;background:#ffffff0f;border-color:#ffffff1f;font-weight:600}.admin-placeholder{max-width:40rem;padding:1.5rem 0}.admin-placeholder h2{margin:0 0 .75rem;font-size:1.25rem;font-weight:600}.admin-muted{margin:0;color:#a8b0c0;line-height:1.5}.admin-muted code{color:#d4daf0}.admin-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.admin-link,.admin-button{font:inherit;font-size:.95rem;border-radius:8px;padding:.55rem 1rem;cursor:pointer;text-decoration:none}.admin-link{color:#9ecbff;border:1px solid rgba(158,203,255,.35);background:#9ecbff14}.admin-button{color:#e8eaef;border:1px solid rgba(255,255,255,.15);background:#ffffff0f}.admin-link:hover,.admin-button:hover{filter:brightness(1.08)}
