html,body{margin:0;padding:0;overflow:hidden;background:#070b14;font-family:Segoe UI,Inter,system-ui,sans-serif;color:#dfe7f2;-webkit-user-select:none;user-select:none}#game-root{position:fixed;top:0;right:0;bottom:0;left:0}#scene{display:block;width:100vw;height:100vh}#floaters{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:6;overflow:hidden}.floater{position:absolute;top:0;left:0;font-weight:800;letter-spacing:.5px;text-shadow:0 2px 6px rgba(0,0,0,.9),0 0 2px #000;white-space:nowrap;will-change:transform,opacity}#enemy-bars{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5;overflow:hidden}.ebar{position:absolute;top:0;left:0;width:130px;text-align:center;will-change:transform}.ebar.boss{width:190px}.ebar-name{font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#ffd9d9;text-shadow:0 1px 4px #000;margin-bottom:2px}.ebar.boss .ebar-name{color:#ffb300;font-size:13px}.ebar.dead{opacity:.25}.bar{position:relative;height:13px;background:#131b2c;border:1px solid #2a3a55;overflow:hidden}.bar-fill{height:100%;transition:width .25s ease}.bar.hp .bar-fill{background:linear-gradient(180deg,#ff6b7a,#c22b3a)}.bar.mp .bar-fill{background:linear-gradient(180deg,#6ba8ff,#2f5fd0)}.bar-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:#fff;text-shadow:0 1px 2px #000}#topbar{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:10px 16px;z-index:10;background:linear-gradient(180deg,#070b14d9,#070b1400);pointer-events:none}#topbar>*{pointer-events:auto}.tb-left{display:flex;flex-direction:column;gap:2px}.tb-stage{font-weight:800;letter-spacing:2px;text-transform:uppercase;font-size:14px;color:#ffd24d}.tb-level{font-size:11px;color:#8fa3bd}.tb-mid{display:flex;gap:18px}.tb-currency{display:flex;align-items:center;gap:6px;font-size:14px;background:#0d1526cc;border:1px solid #2a3a55;padding:4px 12px}.tb-currency img{width:20px;height:20px;image-rendering:pixelated}.tb-right{display:flex;gap:8px}.tb-btn{background:#101a2e;border:1px solid #33456b;color:#cfd8e3;font-size:12px;font-weight:700;letter-spacing:1px;padding:7px 14px;cursor:pointer;transform:skew(-8deg);transition:background .15s,border-color .15s}.tb-btn>*{display:inline-block;transform:skew(8deg)}.tb-btn:hover{background:#1a2740;border-color:#ffd24d}#party-panel{position:fixed;left:12px;top:64px;display:flex;flex-direction:column;gap:8px;z-index:10}.pcard{display:flex;gap:10px;align-items:center;width:252px;padding:8px 10px;background:#0a101ed1;border:1px solid #26344e;border-left:3px solid #3d5a8a;transition:border-color .2s,box-shadow .2s}.pcard.active{border-color:#ffd24d;border-left-color:#ffd24d;box-shadow:0 0 14px #ffd24d40}.pcard.dead{opacity:.45;filter:grayscale(.8)}.pcard-face{width:52px;height:52px;image-rendering:pixelated;background:#0a101e;border:1px solid #2a3a55;object-fit:cover;object-position:top}.pcard-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.pcard-name{font-size:13px;font-weight:800}.pcard-role{font-size:10px;color:#8fa3bd;font-weight:600;margin-left:4px}.pcard-status{display:flex;gap:3px;min-height:14px}.pstat img{width:14px;height:14px;image-rendering:pixelated}.pcard-weapon{font-size:10px;color:#7d92ad;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#cam-hint{position:fixed;right:14px;bottom:14px;z-index:15;font-size:11px;letter-spacing:1px;color:#67788f;background:#0a101e99;border:1px solid #26344e;padding:4px 10px;border-radius:3px;pointer-events:none;-webkit-user-select:none;user-select:none}#log{position:fixed;left:12px;bottom:14px;width:330px;max-height:150px;overflow:hidden;z-index:9;pointer-events:none;display:flex;flex-direction:column-reverse;gap:2px}.log-line{font-size:11.5px;line-height:1.35;text-shadow:0 1px 3px #000;background:linear-gradient(90deg,#070b14bf,#070b1400);padding:1px 6px 1px 0}#action-bar{position:fixed;bottom:18px;left:50%;transform:translate(-50%);z-index:20;display:none;flex-direction:column;gap:8px;align-items:center;width:min(760px,94vw)}#action-bar.show{display:flex}.ab-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;align-items:center;width:100%;padding:10px 14px;background:#090e1aeb;border:1px solid #2a3a55}.ab-actor{width:100%;text-align:center;font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#ffd24d}.ab-note{font-size:12px;color:#8fa3bd;width:100%;text-align:center}.ab-back{cursor:pointer;color:#8fa3bd;font-size:16px;padding:4px 8px}.ab-back:hover{color:#fff}.ab-btn{display:flex;align-items:center;gap:8px;background:#101a2e;border:1px solid #33456b;color:#e8edf4;font-size:13px;font-weight:700;padding:10px 18px;cursor:pointer;transform:skew(-8deg);transition:background .15s,border-color .15s,transform .1s}.ab-btn>*{transform:skew(8deg);display:inline-block}.ab-btn img{width:26px;height:26px;image-rendering:pixelated}.ab-btn i{font-style:normal;font-size:10px;color:#7ab8ff}.ab-btn:hover:not(.disabled){background:#1c2c4a;border-color:#ffd24d}.ab-btn:active:not(.disabled){transform:skew(-8deg) scale(.97)}.ab-btn.disabled{opacity:.4;cursor:not-allowed}.ab-target img{width:24px;height:24px;object-fit:cover;object-position:top;image-rendering:pixelated}.ab-target i{color:#ff8f9c}#dialogue{position:fixed;bottom:26px;left:50%;transform:translate(-50%);z-index:30;display:none;width:min(700px,92vw);cursor:pointer}#dialogue.show{display:flex}.dlg-face{width:74px;height:74px;image-rendering:pixelated;border:2px solid #ffd24d;background:#0a101e;margin-right:14px;flex-shrink:0;object-fit:cover;object-position:top}.dlg-body{flex:1;background:#090e1af2;border:1px solid #33456b;border-left:3px solid #ffd24d;padding:14px 18px}.dlg-who{font-size:12px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:#ffd24d;margin-bottom:6px}.dlg-text{font-size:15px;line-height:1.5;color:#e8edf4}.dlg-next{margin-top:8px;font-size:11px;color:#7d92ad;animation:blink 1.2s infinite}@keyframes blink{50%{opacity:.3}}#overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:none;align-items:center;justify-content:center;background:#04070eb8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}#overlay.show{display:flex}.modal{width:min(560px,92vw);max-height:88vh;overflow-y:auto;background:linear-gradient(180deg,#0e1729,#0a1120);border:1px solid #33456b;box-shadow:0 20px 60px #0009;padding:26px 30px}.modal.wide{width:min(860px,94vw)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.modal-head h2{margin:0;letter-spacing:3px;color:#ffd24d}.modal-close{background:none;border:1px solid #33456b;color:#8fa3bd;font-size:14px;padding:4px 10px;cursor:pointer}.modal-close:hover{color:#fff;border-color:#ffd24d}.title-screen{text-align:center}.title-art{display:flex;justify-content:center;gap:10px;margin-bottom:18px}.title-char{width:84px;height:84px;image-rendering:pixelated;border:2px solid #33456b;background:#0a101e;object-fit:cover;object-position:top}.title-name{margin:0;font-size:52px;letter-spacing:14px;color:#ffd24d;text-shadow:0 0 30px rgba(255,179,0,.4),0 4px 0 #5a3c00}.title-sub{letter-spacing:3px;text-transform:uppercase;font-size:12px;color:#8fa3bd;margin-bottom:26px}.title-buttons{display:flex;flex-direction:column;gap:12px;align-items:center;margin-bottom:20px}.title-btn{min-width:240px;background-color:var(--gold-1, #c9972c);--hover-color: var(--gold-2, #e6b545);--top: var(--gold-2, #e6b545);--bottom: var(--gold-3, #8a6414)}.title-hint{font-size:12px;color:#67788f;max-width:400px;margin:0 auto;line-height:1.5}.loadout-members{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}.lo-member{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#101a2e;border:1px solid #33456b;cursor:pointer;min-width:170px}.lo-member img{width:44px;height:44px;image-rendering:pixelated;object-fit:cover;object-position:top}.lo-member b{display:block;font-size:13px}.lo-member span{font-size:10px;color:#8fa3bd}.lo-member.selected{border-color:#ffd24d;box-shadow:0 0 12px #ffd24d4d}.lo-member-weapon{font-size:10px;color:#7d92ad;margin-top:2px}.loadout-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px;max-height:46vh;overflow-y:auto;padding:4px}.loadout-note{grid-column:1 / -1;text-align:center;color:#67788f;padding:30px 0;font-size:13px}.lo-item{position:relative;padding:8px 6px;background:#0d1526;border:1px solid #26344e;cursor:pointer;text-align:center;transition:transform .1s}.lo-item:hover{transform:translateY(-2px)}.lo-item img{width:44px;height:44px;object-fit:contain}.lo-item-name{font-size:10.5px;font-weight:700;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lo-item-type{font-size:9px;color:#8fa3bd}.lo-item.equipped{outline:2px solid #ffd24d}.rarity-common{border-color:#4a5568}.rarity-rare{border-color:#3d9bff}.rarity-epic{border-color:#b44dff}.rarity-legendary{border-color:#ffb300;box-shadow:0 0 10px #ffb30040 inset}.rarity-tag{font-size:8px;font-weight:800;letter-spacing:1px;text-transform:uppercase;padding:1px 5px;border:1px solid currentColor}.rarity-common .rarity-tag{color:#9aa7b8}.rarity-rare .rarity-tag{color:#3d9bff}.rarity-epic .rarity-tag{color:#b44dff}.rarity-legendary .rarity-tag{color:#ffb300}.loadout-foot{display:flex;justify-content:space-between;align-items:center;margin-top:16px;font-size:12px;color:#8fa3bd}.lo-done{min-width:120px;background-color:#2c3e63;--hover-color: #3a5080}.shop-rows{display:flex;flex-direction:column;gap:8px;max-height:340px;overflow-y:auto;padding-right:4px}.shop-row{display:flex;align-items:center;gap:12px;padding:8px 10px;background:#0d1526;border:1px solid #26344e}.shop-row img{width:40px;height:40px;object-fit:contain}.shop-row.shop-mystery{border-color:#b44dff;box-shadow:0 0 10px #b44dff26 inset}.shop-name{font-size:12px;font-weight:700;white-space:nowrap}.shop-owned{color:#8fa3bd;font-weight:400;font-size:10px;margin-left:6px}.shop-desc{font-size:10px;color:#7d92ad;flex:1}.shop-buy{min-width:90px;font-size:11px;display:flex;align-items:center;gap:6px;justify-content:center}.shop-coin-img{width:14px;height:14px}.chest{text-align:center}.chest-img{width:170px;filter:drop-shadow(0 10px 20px rgba(0,0,0,.6))}.chest h2{letter-spacing:4px;color:#ffd24d;margin:10px 0 18px}.chest-rows{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.chest-row{display:flex;align-items:center;justify-content:center;gap:10px;padding:8px;background:#0d1526;border:1px solid #26344e;font-size:13px}.chest-row img{width:30px;height:30px;object-fit:contain}.chest-take{background-color:var(--gold-1, #c9972c);--hover-color: var(--gold-2, #e6b545);min-width:200px}.result{text-align:center}.result h2{letter-spacing:6px;font-size:34px;margin:0 0 18px}.result.victory h2{color:#ffd24d;text-shadow:0 0 24px rgba(255,210,77,.5)}.result.defeat h2{color:#ff4d5e;text-shadow:0 0 24px rgba(255,77,94,.4)}.result p{color:#8fa3bd;font-size:14px}.vrows{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.vrow{display:flex;align-items:center;justify-content:center;gap:10px;padding:8px;background:#0d1526;border:1px solid #26344e;font-size:13px}.vrow img{width:28px;height:28px;object-fit:contain}.v-next{min-width:200px;background-color:var(--gold-1, #c9972c);--hover-color: var(--gold-2, #e6b545)}.ending{text-align:center}.ending p{font-size:15px;line-height:2;color:#cfd8e3}.ending p:last-of-type{color:#ffd24d;letter-spacing:4px;font-weight:800}
