:root{--ui-font:"Pixelify Sans", ui-monospace, monospace;--title-font:"Press Start 2P", "Pixelify Sans", ui-monospace, monospace;--ui-ink:#2a160b;--ui-panel:#57341e;--ui-panel-light:#714528;--ui-panel-dark:#3c2314;--ui-text:#fbefd2;--ui-dim:#d4b68c;--ui-trim:#d9a441;--ui-gold:#f6c453;--parchment:#f0dbab;--parchment-light:#f8eacb;--parchment-dark:#e2c48f;--parchment-ink:#4a2a14;--parchment-dim:#8a6440;--ui-moss:#7fb85a;--ui-hp:#e0534a;--ui-stamina:#e8a93e;--ui-focus:#5b8de8;--ui-current:#b184ff;--pixel-border:0 -3px 0 0 var(--ui-ink), 0 3px 0 0 var(--ui-ink), -3px 0 0 0 var(--ui-ink), 3px 0 0 0 var(--ui-ink);--pixel-bevel:inset 0 0 0 2px var(--ui-trim), inset 0 -5px 0 0 #00000040, inset 0 5px 0 0 #ffffff0f}html,body{overscroll-behavior:none;background:#2b2f36;height:100%;margin:0;overflow:hidden}canvas{touch-action:none;display:block}:root{--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px)}body.touch .combat-hud{inset:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);transform:translateZ(0)}body.touch :is(.inventory-panel,.crafting-panel,.shop-window,.journal,.cardex,.trade-window,.help-panel,.party-panel,.dialogue,.trade-invite,.player-menu){margin:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left)}#hud{background:var(--ui-panel);box-shadow:var(--pixel-border), var(--pixel-bevel);color:var(--ui-text);font:14px/1.4 var(--ui-font);pointer-events:none;white-space:pre-line;padding:6px 12px;position:fixed;top:12px;left:50%;transform:translate(-50%)}#hud:empty{display:none}.pixel-panel{background:var(--ui-panel);box-shadow:var(--pixel-border), var(--pixel-bevel)}.pixel-button{background:var(--ui-panel-light);box-shadow:var(--pixel-border), var(--pixel-bevel);color:var(--ui-text);font:600 14px var(--ui-font);cursor:pointer;pointer-events:auto;border:0}.pixel-button:hover{background:#84553a}.pixel-button:active{transform:translateY(2px)}.icon{line-height:0;display:inline-flex}.pixel-icon{image-rendering:pixelated}.combat-hud{z-index:2;pointer-events:none;color:var(--ui-text);font:14px/1.2 var(--ui-font);position:fixed;inset:0}.hidden{display:none!important}.bar{background:var(--ui-panel-dark);height:12px;box-shadow:0 -2px 0 0 var(--ui-ink), 0 2px 0 0 var(--ui-ink), -2px 0 0 0 var(--ui-ink), 2px 0 0 0 var(--ui-ink);position:relative}.bar .fill{width:0;height:100%;transition:width .12s steps(4,end);box-shadow:inset 0 3px #ffffff47}.bar .label{text-align:center;text-shadow:1px 0 var(--ui-ink), -1px 0 var(--ui-ink), 0 1px var(--ui-ink), 0 -1px var(--ui-ink);font-size:11px;line-height:12px;position:absolute;inset:0}.bar.hp .fill{background:var(--ui-hp)}.bar.hp.shielded{box-shadow:0 -2px 0 0 var(--ui-ink), 0 2px 0 0 var(--ui-ink), -2px 0 0 0 var(--ui-ink), 2px 0 0 0 var(--ui-ink), 0 0 0 4px #bfe3ff}.bar.stamina .fill{background:var(--ui-stamina)}.bar.focus .fill{background:var(--ui-focus)}.bar.cast .fill{background:var(--ui-text)}.bar.big .label{font-size:13px;line-height:18px}.player-frame{gap:12px;padding:8px 12px 8px 8px;display:flex;position:absolute;top:14px;left:14px}.portrait{background:var(--ui-panel-light);width:64px;height:64px;box-shadow:0 -3px 0 0 var(--ui-ink), 0 3px 0 0 var(--ui-ink), -3px 0 0 0 var(--ui-ink), 3px 0 0 0 var(--ui-ink);flex:none;position:relative}.portrait canvas{width:64px;height:64px;image-rendering:pixelated}.level-badge{background:var(--ui-gold);min-width:22px;box-shadow:0 -2px 0 0 var(--ui-ink), 0 2px 0 0 var(--ui-ink), -2px 0 0 0 var(--ui-ink), 2px 0 0 0 var(--ui-ink);color:var(--ui-ink);text-align:center;pointer-events:auto;padding:1px 3px;font-size:14px;font-weight:700;position:absolute;bottom:-8px;right:-10px}.player-bars{flex-direction:column;justify-content:center;gap:7px;width:190px;display:flex}.player-bars .bar.hp{height:16px}.player-bars .bar.hp .label{font-size:12px;line-height:16px}.player-bars .bar.hp .icon{z-index:1;position:absolute;top:2px;left:-7px}.player-bars .bar.stamina .label,.player-bars .bar.focus .label{display:none}.souls,.frame-blessings{flex-wrap:wrap;gap:6px;display:flex}.frame-blessings:empty{display:none}.blessing{box-shadow:0 -2px 0 0 var(--ui-ink), 0 2px 0 0 var(--ui-ink), -2px 0 0 0 var(--ui-ink), 2px 0 0 0 var(--ui-ink);pointer-events:auto;background:#6a2c3a;align-items:center;gap:2px;padding:1px 6px;font-size:11px;display:inline-flex}.soul{box-shadow:0 -2px 0 0 var(--ui-ink), 0 2px 0 0 var(--ui-ink), -2px 0 0 0 var(--ui-ink), 2px 0 0 0 var(--ui-ink);pointer-events:auto;background:#2f4a2c;padding:1px 6px;font-size:11px}.event-feed{flex-direction:column;gap:8px;width:270px;display:flex;position:absolute;top:118px;left:14px}.feed-line{background:#1a2030e6;align-items:center;gap:8px;padding:4px 10px 4px 6px;font-size:13px;animation:.2s steps(3,end) feed-in;display:flex}.feed-line.leaving{opacity:0;transition:opacity .4s steps(4,end)}@keyframes feed-in{0%{opacity:0;transform:translate(-24px)}}.target-frame{width:min(380px, calc(100vw - 2 * var(--frame-right,334px) - 52px));align-items:center;gap:10px;min-width:240px;padding:6px 12px 6px 8px;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%)}.target-icon{background:var(--ui-hp);box-shadow:0 -2px 0 0 var(--ui-ink), 0 2px 0 0 var(--ui-ink), -2px 0 0 0 var(--ui-ink), 2px 0 0 0 var(--ui-ink);flex:none;padding:4px}.target-body{flex-direction:column;flex:1;gap:6px;display:flex}.target-name{text-align:center;font-size:16px;font-weight:700}.target-level{color:var(--ui-gold);margin-left:8px;font-size:12px;font-weight:400}.target-status{justify-content:center;gap:6px;min-height:0;display:flex}.target-status:empty{display:none}.status-chip{text-transform:capitalize;color:var(--ui-ink);background:var(--ui-text);padding:0 5px;font-size:11px}.status-chip.status-frozen{background:#9fd8ff}.status-chip.status-burning{background:#ff8a3d}.status-chip.status-charged{background:#ffe14d}.status-chip.status-stunned{background:#f2f2f2}.status-chip.status-armor-broken{background:#8c7a6b}.status-chip.status-chilled{background:#cdeeff}.status-chip.status-rooted{background:#9cb86a}.status-chip.status-off-balance{background:#bff0dc}.hud-menu{gap:12px;display:flex;position:absolute;top:16px;right:16px}.menu-button{justify-content:center;align-items:center;width:44px;height:44px;display:flex;position:relative}.menu-glyph{font-size:24px;line-height:1}.menu-key{background:var(--ui-ink);color:var(--ui-dim);padding:0 3px;font-size:10px;position:absolute;bottom:-6px;right:-4px}.hud-message{text-align:center;width:100%;color:var(--ui-gold);text-shadow:2px 0 var(--ui-ink), -2px 0 var(--ui-ink), 0 2px var(--ui-ink), 0 -2px var(--ui-ink);font-size:18px;font-weight:700;position:absolute;top:30%}.hud-bottom{flex-direction:column;gap:12px;width:min(840px,100vw - 32px);display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.bar.cast{width:min(300px,60%);height:14px;margin:0 auto}.bar.cast .label{line-height:14px}.action-bar{grid-template-columns:repeat(var(--slots,5), minmax(0, 64px));justify-content:center;gap:10px;display:grid}.slot{aspect-ratio:1;pointer-events:auto;background:var(--ui-panel);box-shadow:var(--pixel-border), var(--pixel-bevel);position:relative}.slot.body{background:linear-gradient(var(--ui-stamina) 0 5px, var(--ui-panel) 5px)}.slot.mind{background:linear-gradient(var(--ui-focus) 0 5px, var(--ui-panel) 5px)}.slot.empty{opacity:.45}.slot.unaffordable .name{opacity:.4}.slot .key{z-index:2;background:var(--ui-ink);min-width:14px;color:var(--ui-text);text-align:center;padding:0 2px;font-size:11px;position:absolute;top:-8px;left:-8px}.slot .cost{color:var(--ui-dim);font-size:11px;position:absolute;bottom:2px;right:4px}.slot .name{text-align:center;justify-content:center;align-items:center;font-size:12px;font-weight:600;line-height:1.05;display:flex;position:absolute;inset:8px 3px 12px}.slot .cooldown{background:#140f1eb3;height:0;position:absolute;bottom:0;left:0;right:0}.slot .cooldown-text{color:var(--ui-text);text-shadow:2px 0 var(--ui-ink), -2px 0 var(--ui-ink), 0 2px var(--ui-ink), 0 -2px var(--ui-ink);justify-content:center;align-items:center;font-size:20px;font-weight:700;display:flex;position:absolute;inset:0}.combat-text{font:700 18px var(--ui-font);text-shadow:2px 0 var(--ui-ink), -2px 0 var(--ui-ink), 0 2px var(--ui-ink), 0 -2px var(--ui-ink), 2px 2px var(--ui-ink);white-space:nowrap;pointer-events:none;position:fixed;top:0;left:0}.combat-text.damage{color:#fff}.combat-text.taken{color:#ff6b5b;font-size:22px}.combat-text.heal{color:#8ff08a}.combat-text.combo{color:var(--ui-gold);font-size:22px}.combat-text.crit{color:var(--ui-gold);font-size:26px}.nameplates{z-index:1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.nameplate{white-space:nowrap;text-shadow:2px 0 var(--ui-ink), -2px 0 var(--ui-ink), 0 2px var(--ui-ink), 0 -2px var(--ui-ink);flex-direction:column;align-items:center;gap:2px;display:flex;position:absolute;top:0;left:0}.nameplate .icon{filter:drop-shadow(0 2px #00000073);line-height:0;animation:1.6s steps(4,end) infinite nameplate-bob}.nameplate-label{flex-direction:column;align-items:center;line-height:1.05;display:flex}.nameplate-name{font:700 15px var(--ui-font);color:var(--ui-text)}.nameplate-role{font:600 12px var(--ui-font);color:var(--ui-gold)}.speech-bubble{white-space:normal;text-align:center;max-width:220px;font:600 13px/1.2 var(--ui-font);color:var(--parchment-ink);text-shadow:none;background:var(--parchment-light);box-shadow:0 0 0 2px var(--parchment-ink), 0 3px 0 2px #0000004d;margin-bottom:6px;padding:3px 8px 4px;animation:.18s steps(3,end) bubble-in;position:relative}.speech-bubble:after{content:"";background:var(--parchment-light);width:6px;height:6px;box-shadow:2px 2px 0 0 var(--parchment-ink);clip-path:polygon(0 0,100% 0,100% 100%);margin-left:-3px;position:absolute;bottom:-6px;left:50%;transform:rotate(45deg)}@keyframes bubble-in{0%{opacity:0;transform:translateY(4px)}}.nameplate[hidden],.nameplate-label[hidden],.speech-bubble[hidden]{display:none}@keyframes nameplate-bob{50%{transform:translateY(-2px)}}@media (prefers-reduced-motion:reduce){.nameplate .icon,.speech-bubble{animation:none}}.target-rare{color:var(--ui-gold)}.rarity-common{--rarity:#a7adb5}.rarity-uncommon{--rarity:#5cc26a}.rarity-rare{--rarity:#4f8ff0}.rarity-epic{--rarity:#b072f0}.rarity-legendary{--rarity:#f29a38}.slot.locked{opacity:.25;border-style:dashed}.power-zone-prompt{color:#fff;font:600 13px var(--ui-font);pointer-events:none;background:#7a5cd6d9;border-radius:14px;padding:6px 14px;position:fixed;bottom:150px;left:50%;transform:translate(-50%)}body.touch .power-zone-prompt{top:calc(50% + 48px);bottom:auto}.loot-toasts{pointer-events:none;z-index:2;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;top:110px;left:50%;transform:translate(-50%)}.loot-toast{box-shadow:0 -2px 0 0 var(--ui-ink), 0 2px 0 0 var(--ui-ink), -2px 0 0 0 var(--ui-ink), 2px 0 0 0 var(--ui-ink);color:var(--rarity,var(--ui-text));font:600 14px var(--ui-font);background:#241c30d1;align-items:center;gap:8px;padding:3px 12px 3px 6px;animation:.2s steps(3,end) toast-in;display:flex}.loot-toast .icon{color:var(--rarity,var(--ui-text))}.loot-toast small{color:var(--ui-dim);text-transform:capitalize;font-size:11px;font-weight:400}.loot-toast.loud{box-shadow:0 -2px 0 0 var(--rarity), 0 2px 0 0 var(--rarity), -2px 0 0 0 var(--rarity), 2px 0 0 0 var(--rarity);font-size:16px}.loot-toast.warning{color:#ff6b5b}@keyframes toast-in{0%{opacity:0;transform:translateY(-10px)}}.trade-invite,.trade-window{z-index:1;color:#e8e8e8;font:13px/1.35 var(--ui-font);background:#121418f0;border-radius:8px;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #00000080}.trade-invite{align-items:center;gap:14px;padding:10px 14px;display:flex;top:90px}.trade-window{width:min(620px,100vw - 32px);max-height:calc(100vh - 200px);max-height:calc(100dvh - 200px);padding:12px 14px;top:70px;overflow-y:auto}.trade-window h3{letter-spacing:.06em;text-transform:uppercase;color:#9aa3ad;margin:12px 0 6px;font-size:11px;font-weight:600}.trade-invite button,.trade-window button{font:inherit;color:inherit;cursor:pointer}.trade-buttons{gap:8px;margin-top:10px;display:flex}.trade-invite .trade-buttons{margin-top:0}.trade-buttons button,.trade-window .close{background:#ffffff0f;border:1px solid #3b4048;border-radius:5px;padding:5px 14px}.trade-buttons button.primary{background:#5cc26a33;border-color:#5cc26a}.trade-buttons button:disabled{opacity:.35;cursor:default}.trade-columns{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (max-width:560px){.trade-columns{grid-template-columns:1fr}}.trade-side{background:#ffffff0a;border-radius:6px;min-height:110px;padding:8px}.trade-side-header{justify-content:space-between;margin-bottom:6px;font-weight:600;display:flex}.trade-side-header .lock{color:#9aa3ad;font-size:11px;font-weight:400}.trade-side-header .lock.on{color:#5cc26a;font-weight:600}.trade-line{border-left:3px solid var(--rarity,#3b4048);background:#ffffff0d;border-radius:3px;margin-bottom:3px;padding:3px 6px}.trade-line.changed{animation:1.2s ease-out 3 trade-changed}@keyframes trade-changed{0%{background:#ffd34d80}to{background:#ffffff0d}}.trade-picker{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:4px;display:grid}.trade-picker .item:disabled{opacity:.5;cursor:default}.trade-shard{border:1px solid var(--rarity);border-radius:5px;grid-column:span 2;align-items:center;gap:6px;padding:3px 6px;font-size:11px;display:flex}.trade-shard span:first-child{flex:1}.trade-shard .step{background:0 0;border:1px solid #3b4048;border-radius:4px;width:22px}.trade-shard .step:disabled{opacity:.3}.trade-shard .amount{text-align:right;min-width:18px;font-weight:600}.trade-status{color:#ffd27a;margin-top:8px;font-size:12px}.player-menu{z-index:3;background:#121418f0;border-radius:8px;padding:4px;position:fixed;transform:translate(-50%,-130%)}.player-menu button{color:#e8e8e8;font:600 14px var(--ui-font);background:#5cc26a33;border:1px solid #5cc26a;border-radius:6px;padding:8px 18px}.touch-controls{z-index:2;pointer-events:none;position:fixed;inset:0}body:has(:is(.inventory-panel,.crafting-panel,.shop-window,.journal,.cardex,.trade-window,.help-panel,.party-panel,.dialogue):not(.hidden)) .touch-controls{display:none}.touch-controls button{pointer-events:auto;font:600 12px/1.1 var(--ui-font);color:var(--ui-text);touch-action:manipulation}.touch-stick{background:#ffffff0f;border:2px solid #ffffff40;border-radius:50%;width:110px;height:110px;position:fixed;transform:translate(-50%,-50%)}.touch-knob{background:#ffffff59;border-radius:50%;width:46px;height:46px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.touch-cluster{right:calc(62px + var(--safe-right));bottom:calc(70px + var(--safe-bottom));pointer-events:auto;touch-action:none;width:0;height:0;position:fixed}.touch-attack{clip-path:polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%);background:radial-gradient(circle, #6b5a94 0 55%, var(--ui-ink) 56% 62%, var(--ui-gold) 63% 72%, var(--ui-ink) 73%);border:0;justify-content:center;align-items:center;width:88px;height:88px;display:flex;position:absolute;transform:translate(-50%,-50%)}.touch-ring{position:absolute}.touch-ring.spin{animation:.25s steps(5,end) ring-turn}@keyframes ring-turn{0%{opacity:.3;transform:rotate(-60deg)}}.touch-card{clip-path:polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%);background:radial-gradient(circle, var(--ui-panel) 0 62%, var(--ui-ink) 63%);border:0;width:56px;height:56px;padding:4px;position:absolute;overflow:hidden;transform:translate(-50%,-50%)}.touch-card.body{background:radial-gradient(circle, var(--ui-panel) 0 54%, var(--ui-stamina) 55% 64%, var(--ui-ink) 65%)}.touch-card.mind{background:radial-gradient(circle, var(--ui-panel) 0 54%, var(--ui-focus) 55% 64%, var(--ui-ink) 65%)}.touch-card.empty{opacity:.45}.touch-card.hidden{display:none}.touch-card{flex-direction:column;justify-content:center;align-items:center;gap:1px;display:flex}.touch-card .art{z-index:1;line-height:0;position:relative}.touch-card .name{z-index:1;white-space:nowrap;text-overflow:ellipsis;max-width:46px;font-size:8px;line-height:1;position:relative;overflow:hidden}.touch-card.unaffordable .art,.touch-card.unaffordable .name{filter:grayscale()brightness(.6)}.touch-card:active,.touch-attack:active{transform:translate(-50%,-50%)scale(.88)}.touch-card.queued{animation:.5s step-end infinite touch-queued}@keyframes touch-queued{50%{filter:brightness(1.6)}}.touch-card .cooldown{background:conic-gradient(#140f1ebf calc(var(--left,0) * 360deg), transparent 0);position:absolute;inset:0}.touch-dots{gap:6px;display:flex;position:absolute;top:52px;left:-14px}.touch-dot{background:#f3ecdc59;width:8px;height:8px}.touch-dot.active{background:var(--ui-gold)}body.touch .action-bar{display:none}body.touch .hud-bottom{top:30%;bottom:auto}body.touch .player-frame{gap:10px;padding:6px 8px 6px 6px;top:8px;left:8px}body.touch .portrait,body.touch .portrait canvas{width:48px;height:48px}body.touch .player-bars{gap:6px;width:140px}body.touch .event-feed{width:220px;top:86px;left:8px}body.touch .feed-line{font-size:11px}body.touch .target-frame{width:min(300px,36vw);min-width:0;top:8px}body.touch .target-name{font-size:13px}body.touch .hud-menu{gap:10px;top:10px;right:10px}body.touch .menu-button{width:40px;height:40px}body.touch .hud-message{font-size:15px;top:22%}body.touch .loot-toasts{top:74px}@media (max-width:640px){.inventory-panel,.crafting-panel,.shop-window,.trade-window{width:auto;max-height:calc(100vh - 200px);max-height:calc(100dvh - 200px);top:8px;left:8px;right:8px;transform:none}}.chat-panel{z-index:10;width:310px;box-shadow:var(--pixel-border);font:13px var(--ui-font);color:var(--ui-text);background:#121826eb;flex-direction:column;display:flex;position:fixed;bottom:90px;left:14px}.chat-panel.hidden{display:none}.chat-messages{scrollbar-width:thin;scrollbar-color:var(--ui-panel) transparent;flex-direction:column;gap:2px;max-height:190px;padding:6px 8px;display:flex;overflow-y:auto}.chat-line{word-break:break-word;line-height:1.35}.chat-name{color:var(--ui-gold);font-weight:700}.chat-line.own .chat-name{color:var(--ui-moss)}.chat-text{color:var(--ui-text)}.chat-input-row{border-top:2px solid var(--ui-ink);background:#0e1420f2;display:flex}.chat-input{color:var(--ui-text);font:13px var(--ui-font);background:0 0;border:none;outline:none;flex:1;min-width:0;padding:5px 8px}.chat-input::placeholder{color:var(--ui-dim)}body.touch .chat-panel{width:calc(100vw - 100px);max-width:310px;bottom:8px;left:8px}#fade{opacity:0;pointer-events:none;z-index:40;background:#0d0b14;transition:opacity .45s;position:fixed;inset:0}#fade.shown{opacity:1}#zone-name{text-align:center;font:600 28px/1.2 var(--ui-font);letter-spacing:.12em;color:#f3ecff;text-shadow:0 2px #1b1526,0 0 12px #785ac899;opacity:0;pointer-events:none;z-index:41;transition:opacity .6s;position:fixed;top:18%;left:0;right:0}#zone-name.shown{opacity:1}#hud{z-index:42}body.touch #zone-name{font-size:20px;top:12%}.inventory-panel,.crafting-panel,.trade-window,.trade-invite,.player-menu,.help-panel,.party-panel{background:var(--ui-panel);box-shadow:var(--pixel-border), var(--pixel-bevel), 0 10px 0 0 #00000040;color:var(--ui-text);border-radius:0}.power-zone-prompt{box-shadow:var(--pixel-border);background:#5a3fa8;border-radius:0}.help-panel{z-index:3;box-sizing:border-box;width:min(360px,100vw - 32px);font:14px/1.4 var(--ui-font);cursor:pointer;padding:12px 14px;position:fixed;top:76px;right:16px}.help-panel .panel-title{align-items:center;gap:8px;display:flex}.help-row{border-bottom:2px solid var(--ui-panel-dark);justify-content:space-between;gap:16px;padding:3px 0;display:flex}.help-input{color:var(--ui-gold)}.inventory-panel{max-height:calc(100vh - 190px);max-height:calc(100dvh - 190px);top:76px;transform:none}.fps-meter{text-align:right;z-index:50;color:#8ff08a;font:12px/1.35 var(--ui-font);white-space:pre;pointer-events:none;background:#140f1ed9;padding:4px 8px;position:fixed;top:112px;right:8px;font-size:10px!important}.fps-meter.slow{color:#ff8a7a}@media (orientation:portrait){body.touch .player-frame{gap:8px;padding:5px 7px 5px 5px}body.touch .portrait,body.touch .portrait canvas{width:40px;height:40px}body.touch .level-badge{font-size:12px;bottom:-6px;right:-8px}body.touch .player-bars{width:110px}body.touch .souls{display:none}body.touch .hud-menu{gap:4px}body.touch .menu-button{width:30px;height:30px}body.touch .menu-button .pixel-icon{width:18px;height:18px}body.touch .menu-glyph{font-size:18px}body.touch .target-frame{width:auto;padding:4px 10px 4px 6px;top:70px;left:8px;right:8px;transform:none}body.touch .target-icon .pixel-icon{width:18px;height:18px}body.touch .event-feed{gap:6px;width:56vw;top:128px}body.touch .feed-line{padding:3px 8px 3px 4px;font-size:11px}body.touch .loot-toasts{align-items:flex-end;top:128px;left:auto;right:8px;transform:none}body.touch .loot-toast{font-size:12px}body.touch .hud-message{top:40%}}#loader{width:min(420px,100vw - 48px);color:var(--ui-text);font:14px/1.4 var(--ui-font);text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#loader.finished{opacity:0;transition:opacity .3s steps(3,end)}.loader-game{letter-spacing:.4em;color:var(--ui-dim);text-transform:uppercase;font-size:13px}.loader-title{letter-spacing:.06em;text-shadow:3px 3px 0 var(--ui-ink);font-size:30px;font-weight:700}.loader-bar{background:var(--ui-panel-dark);width:100%;height:16px;box-shadow:var(--pixel-border);margin-top:6px}.loader-fill{background:var(--ui-current);width:0;height:100%;transition:width .25s steps(5,end);box-shadow:inset 0 4px #ffffff4d}.loader-status{color:var(--ui-dim);min-height:20px}.loader-tip{max-width:360px;color:var(--ui-gold);margin-top:10px;font-size:13px}.loader-tip:before{content:"Tip: ";color:var(--ui-dim)}#loader.failed .loader-status{color:#ff8a7a}#loader.failed .loader-fill{background:var(--ui-hp)}.minimap{z-index:3;cursor:pointer;pointer-events:auto;flex-direction:column;align-items:center;gap:6px;display:flex;position:fixed;top:16px;right:16px}.minimap canvas{width:168px;height:168px;image-rendering:pixelated;box-shadow:0 0 0 3px #3b2414, 0 0 0 5px var(--ui-trim,#d9a441), 0 0 0 8px #2a1810, 0 6px 0 6px #0000004d;background:#16100c;border-radius:50%;display:block}.minimap.whole canvas{width:300px;height:300px}body:not(.touch):has(.minimap.whole) .tutorial-panel{top:360px}.minimap-name{background:var(--ui-panel);box-shadow:var(--pixel-border);font:600 11px var(--ui-font);color:var(--ui-text);white-space:nowrap;padding:2px 8px}body.touch .minimap{top:60px;right:12px}body.touch .minimap canvas{width:120px;height:120px}body.touch .minimap.whole canvas{width:220px;height:220px}body.touch .minimap-name{display:none}@media (orientation:portrait){body.touch .minimap{top:calc(8px + var(--safe-top,0px));right:calc(58px + var(--safe-right,0px))}body.touch .minimap canvas{width:80px;height:80px}body.touch .minimap.whole canvas{width:200px;height:200px}}@media (orientation:landscape) and (max-height:500px){body.touch .minimap canvas{width:96px;height:96px}body.touch .minimap{top:56px}}.fps-meter{top:270px}body.touch .fps-meter{top:210px}@media (orientation:portrait){body.touch .fps-meter{top:160px}body.touch .target-frame{right:116px}body.touch .loot-toasts{top:160px}}body:has(:is(.inventory-panel,.crafting-panel,.shop-window,.journal,.cardex,.trade-window,.help-panel,.party-panel,.dialogue):not(.hidden)) .minimap{display:none}.window{z-index:43;width:min(940px,100vw - 32px);height:min(660px,100vh - 120px);height:min(660px,100dvh - 120px);max-height:none;font:14px/1.35 var(--ui-font);color:var(--ui-text);flex-direction:column;padding:0;display:flex;position:fixed;top:92px;left:50%;right:auto;overflow:hidden;transform:translate(-50%)}.window.hidden{display:none}.window.on-top{z-index:44!important}.window{--ui-panel:var(--parchment);--ui-panel-light:var(--parchment-light);--ui-panel-dark:var(--parchment-dark);--ui-text:var(--parchment-ink);--ui-dim:var(--parchment-dim);--ui-gold:#a96d0e;--ui-trim:#b5822c;--ui-moss:#4c8a2c;--ui-hp:#b8382e;background:var(--ui-panel);box-shadow:inset 0 0 0 3px #c99a4a, 0 0 0 3px var(--ui-ink), 0 0 0 6px #d9a441, 0 0 0 11px #57341e, 0 0 0 14px var(--ui-ink), 0 14px 0 4px #0000004d}.window-header{--ui-panel:#57341e;--ui-panel-dark:#3c2314;--ui-text:#fbefd2;--ui-dim:#d4b68c;--ui-gold:#f6c453;background:var(--ui-panel-dark);box-shadow:inset 0 -3px 0 0 var(--ui-ink);align-items:flex-end;gap:14px;padding:10px 12px 0;display:flex}.window-title{color:var(--ui-gold);text-shadow:2px 2px 0 var(--ui-ink);padding-bottom:10px;font-size:20px;font-weight:700}.window-tabs{scrollbar-width:none;flex:0 auto;gap:8px;min-width:0;display:flex;overflow-x:auto}.window-tabs::-webkit-scrollbar{display:none}.window-tabs>*{white-space:nowrap;flex:none}.window-tab{background:var(--ui-panel-dark);box-shadow:0 -3px 0 0 var(--ui-ink), -3px 0 0 0 var(--ui-ink), 3px 0 0 0 var(--ui-ink);color:var(--ui-dim);font:700 15px var(--ui-font);cursor:pointer;border:0;padding:6px 16px 8px}.window-tab.active{background:var(--parchment);color:var(--parchment-ink);box-shadow:0 -3px 0 0 var(--ui-ink), -3px 0 0 0 var(--ui-ink), 3px 0 0 0 var(--ui-ink), 0 3px 0 0 var(--parchment), inset 0 3px 0 0 var(--ui-trim)}.window-close{width:32px;height:32px;box-shadow:var(--pixel-border), var(--pixel-bevel);color:var(--ui-text);font:700 22px/1 var(--ui-font);cursor:pointer;background:#8a3a44;border:0;flex:none;margin:0 0 10px auto;padding:0}.window-close:active{transform:translateY(2px)}.window-body{flex:1;grid-template-columns:1fr 270px;min-height:0;display:grid}.crafting-panel .window-body{grid-template-columns:1fr}.window-main{min-height:0;padding:12px 16px 16px;overflow-y:auto}.window-hint{color:var(--ui-gold);background:var(--ui-panel-dark);padding:6px 16px 8px;font-size:13px}.window-hint:empty{display:none}.section-header{justify-content:space-between;align-items:baseline;margin:16px 3px 8px;display:flex}.section-header:first-child{margin-top:0}.section-header h3{font:700 13px var(--ui-font);letter-spacing:.08em;text-transform:uppercase;color:var(--ui-dim);margin:0}.section-extra{font-size:13px}.empty-note{color:var(--ui-dim);grid-column:1/-1;padding:6px 0;font-size:13px}.dim{color:var(--ui-dim)}.chips{flex-wrap:wrap;gap:10px;margin:2px 3px 12px;display:flex}.chip{background:var(--ui-panel-dark);box-shadow:var(--pixel-border);color:var(--ui-dim);font:600 13px var(--ui-font);cursor:pointer;border:0;padding:4px 10px}.chip.active{background:var(--ui-gold);color:var(--ui-ink)}.btn{background:var(--ui-panel-light);box-shadow:var(--pixel-border), var(--pixel-bevel);color:var(--ui-text);font:700 14px var(--ui-font);cursor:pointer;border:0;padding:6px 14px}.btn.primary{background:#4f8a3e}.btn:disabled{opacity:.4;cursor:default}.btn:not(:disabled):active{transform:translateY(2px)}.tile-grid{grid-template-columns:repeat(auto-fill,76px);gap:14px;padding:3px;display:grid}.part-body{--part:var(--ui-stamina)}.part-mind{--part:var(--ui-focus)}.part-soul{--part:var(--ui-moss)}.card-tile,.gear-tile{background:var(--ui-panel-dark);width:76px;box-shadow:inset 0 0 0 3px var(--rarity), var(--pixel-border);color:var(--ui-text);font:600 12px/1.05 var(--ui-font);cursor:pointer;border:0;padding:0;position:relative}.card-tile{flex-direction:column;height:106px;display:flex}.card-tile:hover,.gear-tile:hover{transform:translateY(-2px)}.card-tile:disabled,.gear-tile:disabled{opacity:.5;cursor:default;transform:none}.card-tile.selected,.gear-tile.selected{outline:3px solid var(--ui-gold);outline-offset:3px}.card-tile.in-use,.gear-tile.in-use{filter:brightness(.7)}.card-tile.overflow,.gear-tile.overflow{--rarity:var(--ui-hp)}.card-band{background:var(--part);height:17px;color:var(--ui-ink);text-transform:uppercase;justify-content:space-between;align-items:center;margin:3px 3px 0;padding:0 0 0 5px;font-size:10px;font-weight:700;display:flex}.card-cost{background:var(--ui-ink);min-width:18px;height:100%;color:var(--parchment-light);text-align:center;padding:0 2px;line-height:17px}.card-art{background:radial-gradient(circle,#ffffff24 30%,#0000 70%),#3c2314;flex:1;justify-content:center;align-items:center;margin:0 3px;display:flex;box-shadow:inset 0 0 0 2px #00000059}.card-name{text-align:center;justify-content:center;align-items:center;height:26px;padding:0 4px;display:flex}.card-foot{color:var(--ui-dim);text-align:center;padding-bottom:6px;font-size:10px}.gear-tile{flex-direction:column;align-items:center;gap:4px;height:96px;padding:8px 4px 6px;display:flex}.gear-art{background:radial-gradient(circle,#ffffff24 30%,#0000 70%),#3c2314;justify-content:center;align-items:center;width:52px;height:44px;display:flex;box-shadow:inset 0 0 0 2px #00000059}.gear-name{text-align:center;flex:1;align-items:center;display:flex}.tile-badge{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute}.in-use-badge{background:var(--ui-moss);width:15px;height:15px;box-shadow:0 0 0 2px var(--ui-ink);color:var(--ui-ink);font:700 11px/15px var(--ui-font);top:23px;left:5px}.tile-badge.bound{background:var(--ui-ink);box-shadow:0 0 0 1px var(--ui-gold);padding:2px;top:23px;right:5px}.gear-tile .tile-badge.bound,.gear-tile .in-use-badge{top:5px}.new-badge{background:var(--ui-gold);width:10px;height:10px;box-shadow:0 0 0 2px var(--ui-ink);animation:1.2s step-end infinite new-blink;top:-4px;left:-4px}@keyframes new-blink{50%{background:#fff4c8}}.card-cost{cursor:help}.card-socket,.gear-socket{width:76px;height:106px;color:var(--ui-dim);font:700 18px var(--ui-font);cursor:pointer;background:#0003;border:0;justify-content:center;align-items:center;padding:0;display:flex;box-shadow:inset 0 0 0 3px #ffffff1f}.gear-socket{height:96px}.gear-socket .pixel-icon{opacity:.3}.card-socket.locked{opacity:.45;cursor:default}.card-socket.result{cursor:default;color:var(--ui-gold)}.fits{animation:.8s step-end infinite socket-fits}@keyframes socket-fits{50%{outline:3px solid var(--ui-gold);outline-offset:3px}}.deck-row{flex-wrap:wrap;gap:14px;padding:3px;display:flex}.unlock-strip{background:#00000026;align-items:center;gap:12px;margin:16px 3px 4px;padding:8px 12px;font-size:13px;display:flex;box-shadow:inset 0 0 0 3px #b184ff40}.unlock-strip.in-zone{box-shadow:inset 0 0 0 3px var(--ui-current)}.unlock-icon{display:flex}.unlock-text{flex:1}.unlock-text .dim{font-size:12px}.paperdoll{background:#00000026;grid-template-columns:auto auto auto;grid-template-areas:"main figure off""chest figure trinket""stats stats stats";justify-content:center;align-items:center;gap:12px 28px;margin:0 3px 8px;padding:14px;display:grid;box-shadow:inset 0 0 0 3px #ffffff0f}.socket-main_hand{grid-area:main}.socket-off_hand{grid-area:off}.socket-chest{grid-area:chest}.socket-trinket{grid-area:trinket}.doll-socket{flex-direction:column;align-items:center;gap:6px;display:flex}.socket-label{color:var(--ui-dim);letter-spacing:.06em;text-transform:uppercase;font-size:11px}.doll-figure{grid-area:figure}.doll-figure canvas{width:176px;height:176px;image-rendering:pixelated;box-shadow:var(--pixel-border)}.doll-stats{grid-area:stats;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:4px 18px;width:100%;margin-top:4px;display:grid}.stat-row{border-bottom:2px solid var(--ui-panel-dark);justify-content:space-between;gap:8px;padding:2px 0;font-size:13px;display:flex}.stat-row span{color:var(--ui-dim);text-transform:capitalize}.stat-row.wide{grid-column:1/-1}.stat-list{flex-direction:column;gap:6px;padding:3px;display:flex}.stat-line{background:var(--ui-panel-light);box-shadow:inset 0 0 0 2px var(--ui-panel-dark);grid-template-columns:28px 1fr auto auto auto;align-items:center;gap:8px;padding:6px 8px;display:grid}.stat-icon{display:flex}.stat-text{min-width:0}.stat-name{font-weight:700}.stat-about{color:var(--ui-dim);font-size:12px}.stat-value{text-align:right;min-width:56px;font:700 16px var(--ui-font)}.stat-adding{color:var(--ui-moss);margin-left:4px}.stat-step{min-width:32px;padding:2px 8px}.stat-step:disabled{opacity:.4}.stat-summary{margin:10px 3px 0}.stat-actions{flex-wrap:wrap;align-items:center;gap:8px;margin:12px 3px 0;display:flex}.stat-actions .warn{flex-basis:100%}@media (max-width:520px){.stat-line{grid-template-columns:24px 1fr auto auto auto;gap:6px;padding:5px 6px}.stat-about{font-size:11px}}.shard-table{flex-direction:column;gap:8px;padding:3px;display:flex}.shard-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.shard-rarity{width:90px;color:var(--rarity);text-transform:uppercase;font-size:12px;font-weight:700}.shard-gem{background:var(--ui-panel-dark);box-shadow:inset 0 0 0 2px var(--rarity);align-items:center;gap:4px;padding:2px 10px 2px 4px;font-weight:700;display:flex}.gem-icon{display:flex}.detail-pane{background:var(--ui-panel-dark);min-height:0;box-shadow:inset 3px 0 0 0 var(--ui-ink);padding:16px 14px;position:relative;overflow-y:auto}.detail-close{display:none}.detail-guide{flex-direction:column;gap:8px;font-size:13px;line-height:1.35;display:flex}.detail-guide h4{color:var(--ui-gold);font:12px var(--title-font);margin:0 0 2px}.detail-guide p{margin:0}.detail-guide .dim{color:var(--ui-dim)}.detail-guide .gold{color:var(--ui-gold)}.guide-legend{color:var(--ui-dim);flex-direction:column;gap:7px;margin-top:8px;padding-top:12px;font-size:12px;display:flex;box-shadow:inset 0 2px #ffffff14}.legend-row{align-items:center;gap:10px;display:flex}.legend-badge{flex:none;justify-content:center;align-items:center;width:20px;height:15px;display:flex}.legend-badge.new:before{content:"";background:var(--ui-gold);width:10px;height:10px;box-shadow:0 0 0 2px var(--ui-ink)}.legend-badge.in-use{background:var(--ui-moss);width:15px;color:var(--ui-ink);font:700 11px/15px var(--ui-font);margin:0 2px 0 3px}.legend-badge.bound{background:var(--ui-ink);width:16px;height:16px;box-shadow:0 0 0 1px var(--ui-gold);margin:0 2px}.legend-badge.cost{background:var(--ui-ink);width:20px;height:15px;color:var(--parchment-light);font-size:10px}.detail-compare{text-align:left;background:#0003;margin-top:10px;padding:8px 10px;box-shadow:inset 0 0 0 2px #ffffff14}.compare-title{color:var(--ui-dim);margin-bottom:4px;font-size:12px}.compare-row{font-size:13px}.compare-row.up{color:var(--ui-moss)}.compare-row.down{color:var(--ui-hp)}.detail-top{flex-direction:column;align-items:center;gap:12px;display:flex}.detail-top>button{pointer-events:none;margin:16px 0 14px;transform:scale(1.35)}.detail-text{text-align:center}.detail-name{color:var(--rarity);margin-bottom:6px;font-size:18px;font-weight:700}.detail-line{margin-top:4px;font-size:13px}.detail-line:first-of-type:first-letter{text-transform:uppercase}.detail-line.dim{color:var(--ui-dim)}.detail-line.warn{color:var(--ui-hp)}.detail-actions{justify-content:center;gap:10px;margin-top:16px;display:flex}.detail-tip{color:var(--ui-dim);text-align:center;margin-top:8px;font-size:12px}.crafting-body{flex-direction:column;gap:12px;display:flex}.crafting-note{color:var(--ui-dim);font-size:13px}.fuse-slots{align-items:center;gap:16px;padding:3px;display:flex}.fuse-sign{color:var(--ui-gold);font:700 24px var(--ui-font)}.fuse-options{flex-direction:column;gap:8px;display:flex}.fuse-option{background:#00000026;align-items:center;gap:12px;padding:8px 12px;font-size:13px;display:flex;box-shadow:inset 0 0 0 2px #ffffff1a}.fuse-option span{flex:1}.fuse-option small{color:var(--ui-dim)}.fuse-option.signature{box-shadow:inset 0 0 0 2px #f29a38}.craft-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;padding:3px;display:grid}.craft-option{background:var(--ui-panel-dark);box-shadow:inset 0 0 0 3px var(--rarity), var(--pixel-border);color:var(--ui-text);font:13px/1.25 var(--ui-font);text-align:left;cursor:pointer;border:0;grid-template-columns:28px 1fr;gap:2px 8px;padding:8px 10px;display:grid}.craft-option .craft-icon{grid-row:span 3;align-items:center;display:flex}.craft-option strong{text-transform:capitalize}.craft-option small{color:var(--ui-dim);font-size:11px}.craft-option:disabled{opacity:.45;cursor:default}.crafting-footer{justify-content:space-between;align-items:center;gap:12px;font-size:13px;display:flex}.panel-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.panel-title{font-size:16px;font-weight:700}.trade-picker.tile-grid{grid-template-columns:repeat(auto-fill,76px);gap:14px;padding:3px}.trade-offer .tile-grid{margin-bottom:6px}.trade-offer .changed{animation:.6s step-end 4 socket-fits}body.touch .window{z-index:43;width:auto;height:auto;inset:8px;transform:none}@media (max-width:700px){.window{z-index:43;width:auto;height:auto;inset:8px;transform:none}.window-title{display:none}.window-header{gap:8px;padding:8px 8px 0}.window-tab{padding:6px 12px 8px}.window-body{grid-template-rows:1fr auto;grid-template-columns:1fr}.window-main{padding:10px 10px 14px}.tile-grid,.deck-row{justify-content:center}.detail-pane{max-height:55vh;box-shadow:0 -3px 0 0 var(--ui-ink), 0 -3px 0 3px var(--ui-gold-dark,#8a6a2a), 0 -12px 24px #00000080;padding:14px 12px 12px;animation:.18s ease-out sheet-up}.detail-pane.empty{display:none}.detail-close{background:var(--ui-ink);width:32px;height:32px;color:var(--parchment-light);font:700 18px var(--ui-font);cursor:pointer;border:0;justify-content:center;align-items:center;display:flex;position:absolute;top:6px;right:6px}.detail-text{padding-right:34px}.detail-actions .btn{flex:1;min-height:44px;font-size:15px}.detail-top{flex-direction:row;align-items:flex-start}.detail-top>button{flex:none;margin:0;transform:none}.detail-text{text-align:left}.detail-actions{justify-content:flex-start;margin-top:10px}.detail-tip{text-align:left}.paperdoll{gap:10px 12px;padding:10px 6px}.doll-figure canvas{width:112px;height:112px}}body:has(.window:not(.hidden)) .hud-bottom{display:none}.socket-more{color:var(--ui-dim);align-self:center;font-size:12px}.cardex .window-body{grid-template-columns:1fr 290px}.cardex-progress{flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 3px 12px;display:flex}.cardex-count{font-size:16px;font-weight:700}.cardex-bar{background:var(--ui-ink);min-width:160px;height:12px;box-shadow:var(--pixel-border);flex:1}.cardex-fill{background:var(--ui-gold);height:100%}.cardex-rarities{flex-wrap:wrap;flex-basis:100%;gap:6px 14px;display:flex}.cardex-rarity{color:var(--rarity);text-transform:uppercase;font-size:12px;font-weight:700}.card-tile.unknown,.gear-tile.unknown{color:var(--ui-dim);background:#0e121b}.card-tile.unknown .card-band{background:#ffffff14}.unknown .card-art,.unknown .gear-art{color:var(--rarity);font:700 30px var(--ui-font);opacity:.7;justify-content:center}.cardex-where{margin-top:18px}.cardex-where h3{color:var(--ui-dim);font:700 12px var(--ui-font);letter-spacing:.08em;text-transform:uppercase;margin:0 0 6px}@media (max-width:700px){.cardex .window-body{grid-template-columns:1fr}.cardex-where{margin-top:8px}}.cardex-source{text-align:left;flex-direction:column;display:flex}.cardex-source span{color:var(--ui-dim)}.cardex-where .detail-line{text-align:left}.player-frame{grid-template-columns:auto 1fr;align-items:center;gap:10px 14px;padding:10px 14px 10px 10px;display:grid}.portrait,.portrait canvas{width:72px;height:72px}.portrait{box-shadow:inset 0 0 0 2px var(--ui-trim), var(--pixel-border)}.portrait canvas{box-sizing:border-box;padding:2px}.player-bars{gap:6px;width:210px}.frame-title{flex-wrap:wrap;align-items:baseline;gap:3px 8px;line-height:1;display:flex}.frame-name{text-shadow:2px 2px 0 var(--ui-ink);font-size:18px;font-weight:700}.frame-class{color:var(--ui-dim);text-shadow:1px 1px 0 var(--ui-ink);flex-basis:100%;order:3;font-size:12px}.frame-level{white-space:nowrap;color:var(--ui-gold);text-shadow:2px 2px 0 var(--ui-ink);font-size:13px;font-weight:700}.bar.xp{height:4px}.bar.xp .label{display:none}.player-bars .bar.stamina,.player-bars .bar.focus{height:13px}.player-bars .bar.stamina .label,.player-bars .bar.focus .label{font-size:10px;line-height:13px;display:block}.frame-wealth{grid-column:1/-1;gap:20px;padding-top:8px;display:flex;box-shadow:0 -2px #c9a24c4d}.wealth{align-items:center;gap:6px;font-size:15px;font-weight:700;display:flex}.wealth:first-child{color:#7fd6ff}.wealth .pixel-icon{width:20px;height:20px}.soul{background:#2f4a2c}body:not(.touch) .event-feed{background:var(--ui-panel);width:320px;box-shadow:var(--pixel-border), var(--pixel-bevel);gap:2px;padding:10px 12px;top:auto;bottom:18px;left:14px}body:not(.touch) .event-feed:empty{display:none}body:not(.touch) .feed-line{box-shadow:none;background:0 0;padding:2px 0;font-size:13px}body:not(.touch) .feed-line:nth-child(n+3){opacity:.65}body:not(.touch) .feed-line .pixel-icon{width:18px;height:18px}body:not(.touch) .hud-menu{background:var(--ui-panel);box-shadow:var(--pixel-border), var(--pixel-bevel);grid-template-columns:repeat(2,84px);gap:10px;padding:10px;display:grid;top:auto;bottom:18px;right:16px}body:not(.touch) .menu-button{flex-direction:column;gap:4px;width:84px;height:62px}.menu-label{letter-spacing:.04em;text-transform:uppercase;font-size:11px}body.touch .menu-label{display:none}body:not(.touch) .menu-key{background:0 0;top:4px;bottom:auto;right:4px}.action-bar{grid-template-columns:repeat(var(--slots,5), 64px);background:var(--ui-panel);width:-moz-fit-content;width:fit-content;box-shadow:var(--pixel-border), var(--pixel-bevel);gap:12px;margin:0 auto;padding:12px 16px 26px}.slot{background:var(--ui-panel-dark);box-shadow:inset 0 0 0 2px var(--part,#c9a24c80), var(--pixel-border)}.slot.body{--part:var(--ui-stamina);background:var(--ui-panel-dark)}.slot.mind{--part:var(--ui-focus);background:var(--ui-panel-dark)}.slot .art{justify-content:center;align-items:center;display:flex;position:absolute;inset:3px 0 15px}.slot .name{white-space:nowrap;text-overflow:ellipsis;height:11px;font-size:9px;line-height:11px;display:block;inset:auto 3px 3px;overflow:hidden}.slot .key{color:var(--ui-dim);background:0 0;font-size:12px;top:auto;bottom:-21px;left:50%;transform:translate(-50%)}.slot .cost{font-size:10px;top:3px;bottom:auto;right:5px}.slot.unaffordable .art{opacity:.4}.slot.queued{animation:.5s step-end infinite card-queued}@keyframes card-queued{50%{box-shadow:inset 0 0 0 3px var(--ui-gold), var(--pixel-border)}}@media (max-width:1240px){body:not(.touch) .event-feed{width:280px;bottom:130px}body:not(.touch) .hud-menu{bottom:130px}}body.touch .event-feed{top:calc(var(--frame-bottom,120px) + var(--party-height,0px) + 10px)}body.touch .frame-wealth{gap:14px;padding-top:5px}body.touch .wealth{font-size:12px}body.touch .wealth .pixel-icon{width:14px;height:14px}body.touch .frame-name{font-size:15px}.tutorial-panel{z-index:2;width:280px;font-family:var(--ui-font);color:var(--ui-text);pointer-events:auto;flex-direction:column;gap:6px;padding:12px 14px;display:flex;position:fixed;top:228px;right:16px}.tutorial-head{letter-spacing:.04em;text-transform:uppercase;color:var(--ui-gold);align-items:center;gap:6px;font-size:11px;display:flex}.tutorial-title{font-size:16px;font-weight:700}.tutorial-hint{color:var(--ui-gold);font-size:12px}.tutorial-skip{color:var(--ui-text);opacity:.6;font:12px var(--ui-font);cursor:pointer;background:0 0;border:0;align-self:flex-end;text-decoration:underline}.tutorial-skip:hover{opacity:1}.tutorial-panel.fresh{animation:.9s steps(6,end) tutorial-fresh}@keyframes tutorial-fresh{0%{box-shadow:var(--pixel-border), var(--pixel-bevel), 0 0 0 4px var(--ui-gold)}to{box-shadow:var(--pixel-border), var(--pixel-bevel), 0 0 0 4px transparent}}body.touch .tutorial-panel{width:220px;padding:8px 10px;top:196px;right:8px}body.touch .tutorial-text{font-size:11px}@media (orientation:portrait){body.touch .tutorial-panel{top:calc(48px + var(--safe-top));width:190px}body.touch:has(.target-frame:not(.hidden)) .tutorial-panel{top:calc(126px + var(--safe-top))}}@media (orientation:landscape) and (max-height:500px){body.touch .tutorial-panel{flex-flow:wrap;align-items:baseline;gap:2px 10px;width:min(300px,38vw);padding:6px 12px;inset:auto auto 8px 50%;transform:translate(-50%)}body.touch :is(.tutorial-text,.tutorial-skip,.tutorial-head){display:none}body.touch .tutorial-title{font-size:14px}}body:has(:is(.inventory-panel,.crafting-panel,.shop-window,.journal,.cardex,.trade-window,.help-panel,.party-panel,.dialogue):not(.hidden)) .tutorial-panel{width:min(460px, calc(100vw - 2 * var(--frame-right,334px) - 52px));z-index:30;flex-flow:wrap;align-items:baseline;gap:2px 10px;padding:6px 12px;top:8px;left:50%;right:auto;transform:translate(-50%)}body:has(:is(.inventory-panel,.crafting-panel,.shop-window,.journal,.cardex,.trade-window,.help-panel,.party-panel,.dialogue):not(.hidden)) :is(.tutorial-text,.tutorial-skip,.tutorial-head){display:none}body.touch:has(:is(.inventory-panel,.crafting-panel,.shop-window,.journal,.cardex,.trade-window,.help-panel,.party-panel,.dialogue):not(.hidden)) .tutorial-panel{display:none}.party-frames{top:calc(var(--frame-bottom,120px) + 8px);width:230px;font-family:var(--ui-font);pointer-events:auto;flex-direction:column;gap:4px;display:flex;position:absolute;left:14px}.party-list{flex-direction:column;gap:4px;display:flex}.party-member{background:var(--ui-panel);box-shadow:var(--pixel-border);cursor:pointer;align-items:center;gap:6px;padding:3px 8px 3px 4px;display:flex}.party-member.targeted{box-shadow:var(--pixel-border), 0 0 0 4px var(--ui-moss)}.party-member.far{opacity:.6}.party-role{background:var(--ui-panel-dark);padding:2px;display:flex}.party-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.party-name{color:var(--ui-text);text-shadow:1px 1px 0 var(--ui-ink);font-size:13px;font-weight:700}.bar.party-hp{height:10px}.bar.party-hp .label{font-size:9px;line-height:10px}.target-frame.friendly .target-icon{background:var(--ui-moss)}.target-frame.friendly{box-shadow:var(--pixel-border), var(--pixel-bevel), 0 0 0 4px var(--ui-moss)}.party-panel{z-index:3;width:min(560px,100vw - 32px);max-height:calc(100vh - 120px);max-height:calc(100dvh - 120px);font:14px/1.4 var(--ui-font);padding:12px 14px;position:fixed;top:76px;left:50%;overflow-y:auto;transform:translate(-50%)}.party-panel .panel-title{align-items:center;gap:8px;display:flex}.party-intro{color:var(--ui-dim);margin:0 0 10px}.party-footer{justify-content:space-between;align-items:center;gap:12px;margin-top:12px;display:flex}.party-status{color:var(--ui-hp)}@media (max-width:640px){.party-panel{width:auto;top:8px;left:8px;right:8px;transform:none}}body.touch .party-frames{top:calc(var(--frame-bottom,100px) + 6px);width:170px;left:8px}body.touch .party-name{font-size:11px}@media (orientation:portrait){body.touch .party-frames{top:calc(var(--frame-bottom,100px) + 60px)}}.party-member.party-player .party-role{background:var(--ui-panel-light)}.party-member.leader .party-name:before{content:"★ ";color:var(--ui-gold)}.party-members{flex-direction:column;gap:6px;margin-bottom:12px;display:flex}.party-member-row{background:var(--ui-panel-dark);box-shadow:var(--pixel-border);align-items:center;gap:8px;padding:4px 8px;display:flex}.party-member-name{flex:1;font-weight:700}.party-member-where{color:var(--ui-dim);font-size:12px}.party-small,.party-leave{background:var(--ui-panel-light);box-shadow:var(--pixel-border);color:var(--ui-text);font:12px var(--ui-font);cursor:pointer;border:0;border-radius:0;padding:3px 8px}.party-leave{color:var(--ui-hp);align-self:flex-start}.npc-name{color:var(--ui-text);font:700 13px var(--ui-font);text-shadow:1px 0 var(--ui-ink), -1px 0 var(--ui-ink), 0 1px var(--ui-ink), 0 -1px var(--ui-ink);white-space:nowrap;pointer-events:none;position:fixed;top:0;left:0}.npc-name.hidden{display:none}.npc-name.wanted:before{content:"! ";color:var(--ui-gold);font-size:16px}.npc-name.wanted{color:var(--ui-gold)}.dialogue{z-index:3;width:min(720px,100vw - 32px);font:20px/1.45 var(--ui-font);color:var(--ui-text);align-items:flex-start;gap:16px;padding:12px 16px;display:flex;position:fixed;bottom:140px;left:50%;transform:translate(-50%)}.dialogue.hidden{display:none}.dialogue-portrait{background:var(--ui-panel-dark);width:96px;height:96px;box-shadow:var(--pixel-border);flex:none;justify-content:center;align-items:center;display:flex}.dialogue-portrait.hidden{display:none}.dialogue-portrait canvas{width:96px;height:96px;image-rendering:pixelated}.dialogue-body{flex:1;min-width:0}.dialogue-speaker{color:var(--ui-gold);margin-bottom:4px;font-size:22px;font-weight:700}.dialogue-text{margin-bottom:12px}.dialogue-buttons{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.dialogue-buttons button{background:var(--ui-panel-light);box-shadow:var(--pixel-border);color:var(--ui-text);font:17px var(--ui-font);cursor:pointer;border:0;border-radius:0;padding:5px 12px}.dialogue-buttons button:hover{color:var(--ui-gold)}body.touch .dialogue{gap:10px;font-size:16px;top:30%;bottom:auto}body.touch .dialogue-speaker{font-size:17px}body.touch .dialogue-buttons button{font-size:15px}body.touch :is(.dialogue-portrait,.dialogue-portrait canvas){width:64px;height:64px}.boss-bar{width:min(420px,100vw - 32px);font-family:var(--ui-font);text-align:center;position:absolute;top:78px;left:50%;transform:translate(-50%)}.boss-name{color:var(--ui-current);text-shadow:2px 2px 0 var(--ui-ink);margin-bottom:3px;font-size:15px;font-weight:700}body.touch .boss-bar{top:120px}.tutorial-head{cursor:pointer}.story-log{color:var(--ui-dim);margin:6px 0 0;padding-left:20px;font-size:12px}.story-log li.done{opacity:.7;text-decoration:line-through}.story-log li.current{color:var(--ui-gold)}.trade-window,.trade-invite,.player-menu,.help-panel,.party-panel{z-index:43}.duel-banner{z-index:44;font:700 18px/1.2 var(--ui-font);color:var(--ui-gold);text-shadow:2px 2px 0 var(--ui-ink);pointer-events:none;white-space:nowrap;padding:6px 16px;position:fixed;top:86px;left:50%;transform:translate(-50%)}.duel-banner.count{font-size:72px;top:34%}.duel-banner.result{font-size:26px;top:30%}@media (max-width:960px){body:not(.touch) .target-frame{left:max(calc(var(--frame-right,334px) + 12px), calc(100vw - 396px));width:auto;min-width:0;right:16px;transform:none}body:not(.touch) .loot-toasts{align-items:flex-end;top:96px;left:auto;right:16px;transform:none}body:not(.touch) .duel-banner:not(.count,.result){top:92px;left:auto;right:16px;transform:none}body:not(.touch) .power-zone-prompt{top:calc(50% + 48px);bottom:auto}:is(body:not(.touch) .tutorial-panel,body:not(.touch):has(:is(.inventory-panel,.crafting-panel,.shop-window,.journal,.cardex,.trade-window,.help-panel,.party-panel,.dialogue):not(.hidden)) .tutorial-panel){top:calc(var(--frame-bottom,181px) + var(--party-height,0px) + 16px);width:calc(var(--frame-right,334px) - 42px);left:14px;right:auto;transform:none}}#intro{z-index:100;color:var(--ui-text);font-family:var(--ui-font);background:#06070f;transition:opacity .7s steps(5,end);position:fixed;inset:0;overflow:hidden}#intro.leaving{opacity:0;pointer-events:none}.intro-picture{image-rendering:pixelated;position:absolute;top:0;left:0}.intro-caption{left:50%;bottom:calc(7% + var(--safe-bottom));box-sizing:border-box;text-align:left;width:min(720px,100vw - 32px);text-shadow:2px 2px 0 var(--ui-ink);box-shadow:var(--pixel-border), var(--pixel-bevel);opacity:0;background:#1a2030e0;padding:14px 20px;font-size:clamp(15px,2.2vw,22px);line-height:1.45;transition:opacity .4s steps(4,end);position:absolute;transform:translate(-50%)}.intro-caption.shown{opacity:1}.intro-title{text-align:center;opacity:0;transition:opacity .8s steps(5,end);position:absolute;top:30%;left:0;right:0}.intro-title.shown{opacity:1}.intro-name{letter-spacing:.2em;color:var(--ui-gold);text-shadow:4px 4px 0 var(--ui-ink), 0 0 24px #b184ff8c;padding-left:.2em;font-size:clamp(56px,12vw,120px);font-weight:700}.intro-line{text-shadow:2px 2px 0 var(--ui-ink);margin-top:8px;font-size:clamp(16px,2.6vw,26px)}.intro-skip{right:calc(16px + var(--safe-right));top:calc(16px + var(--safe-top));opacity:0;padding:6px 12px;transition:opacity .4s steps(3,end);position:absolute}.intro-skip.shown{opacity:.75}.intro-skip.shown:hover{opacity:1}.help-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.help-actions .pixel-button{flex:auto;padding:8px}.help-note{color:var(--ui-dim);margin:10px 0 0;font-size:13px}#front-door{z-index:90;color:var(--ui-text);font:15px/1.45 var(--ui-font);background:#06070f;transition:opacity .5s steps(4,end);position:fixed;inset:0;overflow:hidden}#front-door.leaving{opacity:0;pointer-events:none}.door-sky{image-rendering:pixelated;position:absolute;top:0;left:0}.door-panel{width:min(380px,100vw - 32px);max-height:calc(100vh - 32px);box-sizing:border-box;max-height:calc(100dvh - 32px);padding:20px;position:absolute;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}@media (min-width:900px){.door-panel{left:auto;right:max(6vw,32px);transform:translateY(-50%)}}.door-panel.door-select{width:min(460px,100vw - 32px)}.door-panel.door-create{width:min(720px,100vw - 32px)}@media (min-width:900px){.door-panel.door-create{left:50%;right:auto;transform:translate(-50%,-50%)}}.door-game{text-align:center;letter-spacing:.2em;color:var(--ui-gold);text-shadow:3px 3px 0 var(--ui-ink), 0 0 18px #b184ff80;margin-bottom:12px;padding-left:.2em;font-size:54px;font-weight:700}.door-tabs{gap:8px;margin-bottom:14px;display:flex}.door-tab,.door-choice{background:var(--ui-panel-dark);color:var(--ui-dim);font:600 14px var(--ui-font);cursor:pointer;box-shadow:inset 0 0 0 2px var(--ui-panel-light);border:0;flex:1;padding:7px 10px}.door-tab.active,.door-choice.active{color:var(--ui-text);background:var(--ui-panel-light);box-shadow:inset 0 0 0 2px var(--ui-trim)}.door-choice:disabled{opacity:.4;cursor:default}.door-form{flex-direction:column;gap:10px;display:flex}.door-form label{color:var(--ui-dim);flex-direction:column;gap:4px;font-size:13px;display:flex}.door-form input{background:var(--ui-ink);color:var(--ui-text);font:16px var(--ui-font);box-shadow:inset 0 0 0 2px var(--ui-panel-light);border:0;outline:none;padding:8px 10px}.door-form input:focus{box-shadow:inset 0 0 0 2px var(--ui-trim)}.door-primary{padding:10px;font-size:16px}.door-primary:disabled{opacity:.6}.door-error{color:#ff8a7a;min-height:1.2em;margin:0;font-size:13px}.door-error:empty{min-height:0}.door-note{color:var(--ui-moss);margin:0;font-size:13px}.door-google{flex-direction:column;align-items:center;gap:10px;margin-top:12px;display:flex}.door-google[hidden]{display:none}.door-or{opacity:.75;align-items:center;gap:8px;width:100%;font-size:13px;display:flex}.door-or:before,.door-or:after{content:"";opacity:.4;border-top:1px solid;flex:1}.door-google-button{min-height:44px}.door-legal{text-align:center;opacity:.7;margin:12px 0 0;font-size:12px}.door-legal a{color:inherit}.door-heading{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px;font-size:18px;font-weight:700;display:flex}.door-heading .door-link{flex:none;align-self:center;padding:2px 0;line-height:1.6}.door-link{color:var(--ui-dim);font:13px var(--ui-font);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.door-link:hover{color:var(--ui-text)}.door-slots{flex-direction:column;gap:10px;display:flex}.door-slot{background:var(--ui-panel-dark);box-shadow:inset 0 0 0 2px var(--ui-panel-light);grid-template-rows:auto auto;grid-template-columns:auto 1fr auto;align-items:center;column-gap:12px;padding:8px 12px 8px 8px;display:grid}.door-portrait{background:var(--ui-ink);grid-row:1/3;place-items:center;width:68px;height:68px;display:grid;overflow:hidden}.door-portrait canvas{image-rendering:pixelated;width:68px;height:68px}.door-name{font-size:17px;font-weight:700}.door-meta{color:var(--ui-dim);font-size:13px}.door-play{padding:8px 16px}.door-delete{grid-column:3;justify-self:center;font-size:12px}.door-new{min-height:68px;color:var(--ui-dim);font:600 15px var(--ui-font);cursor:pointer;box-shadow:inset 0 0 0 2px var(--ui-panel-light);border:0;justify-content:center;align-items:center;gap:10px;display:flex}.door-new:hover{color:var(--ui-text);box-shadow:inset 0 0 0 2px var(--ui-trim)}.door-plus{color:var(--ui-gold);font-size:26px}.door-creator{grid-template-columns:minmax(180px,240px) 1fr;gap:18px;display:grid}.door-stage{flex-direction:column;align-items:center;gap:10px;display:flex}.door-turn{aspect-ratio:1;width:100%;box-shadow:inset 0 0 0 2px var(--ui-panel-light);background:radial-gradient(circle at 50% 70%,#2a2050 0,#11151f 70%);place-items:center;display:grid}.door-turn canvas{image-rendering:pixelated;width:100%;max-width:240px}.door-random{padding:6px 16px}.door-controls{flex-direction:column;gap:10px;display:flex}.door-row{flex-direction:column;gap:5px;display:flex}.door-label{color:var(--ui-dim);font-size:13px}.door-choices{flex-wrap:wrap;gap:6px;display:flex}.door-choices .door-choice{flex:0 auto}.door-blurb{color:var(--ui-dim);min-height:2.9em;margin:0;font-size:13px}.door-colours{flex-direction:column;gap:8px;display:flex}.door-swatches{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.door-swatch{cursor:pointer;border:0;width:24px;height:24px;padding:0;box-shadow:inset 0 0 0 2px #0006}.door-swatch.active{box-shadow:0 0 0 2px var(--ui-ink), 0 0 0 4px var(--ui-gold)}.door-custom{cursor:pointer;background:conic-gradient(#e0534a,#f2c94c,#7fb85a,#5b8de8,#b184ff,#e0534a);width:24px;height:24px;position:relative}.door-custom input{opacity:0;cursor:pointer;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.door-naming{margin-top:4px}@media (max-width:620px){#front-door .door-creator{grid-template-columns:1fr;gap:12px}#front-door .door-stage{z-index:1;background:var(--ui-panel);box-shadow:0 2px 0 0 var(--ui-panel-light);flex-direction:row;justify-content:center;gap:16px;margin:-20px -20px 0;padding:12px 20px;position:sticky;top:-20px}#front-door .door-turn{flex:none;width:128px}}@media (pointer:coarse){#front-door :is(.door-swatch,.door-custom){width:34px;height:34px}#front-door .door-swatches{gap:7px}#front-door :is(.door-choice,.door-tab){min-height:40px}}.story-fold{width:26px;height:22px;color:var(--ui-gold);font:700 14px var(--ui-font);cursor:pointer;opacity:.75;background:0 0;border:0;padding:0;position:absolute;top:6px;right:6px}.story-fold:hover{opacity:1}.tutorial-head{padding-right:24px}.tutorial-panel.folded{cursor:pointer;flex-flow:row;align-items:center;gap:8px;padding:6px 8px 6px 10px}.tutorial-panel.folded :is(.tutorial-text,.tutorial-hint,.story-log,.tutorial-progress,.tutorial-skip){display:none}.tutorial-panel.folded .tutorial-head{padding-right:0;display:flex}.tutorial-panel.folded .tutorial-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:14px;overflow:hidden}.tutorial-panel.folded .story-fold{flex:none;position:static}body:has(:is(.inventory-panel,.crafting-panel,.shop-window,.journal,.cardex,.trade-window,.help-panel,.party-panel,.dialogue):not(.hidden)) .story-fold{display:none}.frame-fold{width:24px;height:22px;color:var(--ui-gold);font:700 13px var(--ui-font);cursor:pointer;opacity:.7;pointer-events:auto;background:0 0;border:0;padding:0;position:absolute;top:4px;right:4px}.frame-fold:hover{opacity:1}.frame-title{padding-right:18px}.player-frame.folded{grid-template-columns:1fr;gap:6px;padding:6px 10px 8px}.player-frame.folded :is(.portrait,.frame-class,.bar.xp,.souls,.frame-wealth){display:none}.player-frame.folded .player-bars{gap:5px;width:150px}.player-frame.folded .frame-name{font-size:15px}.player-frame.folded .player-bars .bar.hp{height:13px}.player-frame.folded .player-bars .bar.hp .label{font-size:10px;line-height:13px}.player-frame.folded .player-bars :is(.bar.stamina,.bar.focus){height:7px}.player-frame.folded .player-bars :is(.bar.stamina,.bar.focus) .label{display:none}body.touch :is(.frame-fold,.story-fold){width:32px;height:28px;font-size:15px;top:2px;right:2px}body.touch .tutorial-panel.folded .story-fold{width:28px;height:24px}@media (orientation:portrait){body.touch .hud-menu{flex-direction:column;gap:6px;top:8px;right:8px}body.touch .menu-button{width:40px;height:40px}body.touch .menu-button .pixel-icon{width:22px;height:22px}body.touch .menu-glyph{font-size:20px}body.touch .target-frame{top:calc(var(--frame-bottom,72px) + 6px);right:58px}body.touch .loot-toasts{right:58px}body.touch .party-frames{top:calc(var(--frame-bottom,72px) + 6px)}body.touch:has(.target-frame:not(.hidden)) .party-frames{top:calc(var(--frame-bottom,72px) + 60px)}body.touch .tutorial-panel{top:calc(var(--frame-bottom,72px) + var(--party-height,0px) + 8px + var(--safe-top));left:calc(8px + var(--safe-left));width:min(260px,100vw - 74px);right:auto}body.touch:has(.target-frame:not(.hidden)) .tutorial-panel{top:calc(var(--frame-bottom,72px) + var(--party-height,0px) + 62px + var(--safe-top))}body.touch .event-feed{top:calc(var(--frame-bottom,72px) + var(--party-height,0px) + var(--story-height,0px) + 16px);width:min(56vw,100vw - 74px)}body.touch:has(.target-frame:not(.hidden)) .event-feed{top:calc(var(--frame-bottom,72px) + var(--party-height,0px) + var(--story-height,0px) + 70px)}}.touch-engaged{clip-path:polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%);background:var(--ui-gold);opacity:0;pointer-events:none;width:104px;height:104px;position:absolute;transform:translate(-50%,-50%)}.touch-cluster.engaged .touch-engaged{animation:.8s steps(4,end) infinite touch-engaged}@keyframes touch-engaged{0%,to{opacity:.15}50%{opacity:.65}}.touch-details{right:calc(12px + var(--safe-right));bottom:calc(290px + var(--safe-bottom));width:min(260px,100vw - 24px);color:var(--ui-text);font:12px/1.35 var(--ui-font);pointer-events:none;flex-direction:column;gap:4px;padding:10px 12px;display:flex;position:fixed}.touch-details.hidden{display:none}.touch-details-name{color:var(--ui-gold);font-size:15px;font-weight:700}.touch-details-line:nth-child(2){color:var(--ui-dim);text-transform:capitalize}body.left-handed .touch-cluster{right:auto;left:calc(62px + var(--safe-left))}body.left-handed .touch-dots{left:auto;right:-14px}body.left-handed .touch-details{right:auto;left:calc(12px + var(--safe-left))}.touch-card .cooldown{z-index:2;pointer-events:none}.untyped{visibility:hidden}.action-bar{transition:transform .25s steps(5,end),opacity .25s steps(5,end)}.hud-bottom.resting .action-bar{opacity:0;pointer-events:none;transform:translateY(calc(100% + 30px))}.hud-bottom.resting .action-bar .slot{pointer-events:none}.action-bar .slot:not(.empty,.locked){cursor:pointer}.touch-ring{transition:transform .25s steps(5,end),opacity .25s steps(5,end)}.touch-cluster.resting .touch-ring{opacity:0;pointer-events:none;transform:scale(.3)}.touch-cluster.resting .touch-ring .touch-card{pointer-events:none}.touch-cluster.resting .touch-dots{display:none}.intro-name{font-family:var(--title-font);letter-spacing:.1em;padding-left:.1em;font-size:clamp(40px,9vw,96px);font-weight:400}.door-game{font-family:var(--title-font);letter-spacing:.1em;margin-bottom:18px;padding-left:.1em;font-size:40px;font-weight:400}.loader-game{font-family:var(--title-font);letter-spacing:.3em;font-size:8px}.loader-title{font-family:var(--title-font);letter-spacing:.04em;font-size:24px;font-weight:400;line-height:1.3}#zone-name{font-family:var(--title-font);letter-spacing:.06em;font-size:24px;font-weight:400;line-height:1.4}body.touch #zone-name{font-size:16px}.window-title{font-family:var(--title-font);font-size:16px;font-weight:400;line-height:1.3}.panel-title{font-family:var(--title-font);font-size:12px;font-weight:400;line-height:1.4}.tutorial-title{font-family:var(--title-font);font-size:12px;font-weight:400;line-height:1.5}.tutorial-panel.folded .tutorial-title,body.touch .tutorial-title{font-size:10px}.door-heading{font-family:var(--title-font);font-size:12px;font-weight:400;line-height:1.5}.door-heading .door-link{font-family:var(--ui-font)}.boss-name{font-family:var(--title-font);font-size:12px;font-weight:400}.duel-banner{font-family:var(--title-font);font-size:16px;font-weight:400}.duel-banner.count{font-size:64px}.duel-banner.result{font-size:20px}body:has(:is(.inventory-panel,.crafting-panel,.shop-window,.journal,.cardex,.trade-window,.help-panel,.party-panel,.dialogue):not(.hidden)) .tutorial-title{font-size:11px}.vfx-flash{z-index:3;pointer-events:none;opacity:0;background:radial-gradient(circle at 50% 50%, transparent 30%, var(--flash,#fff) 140%);position:fixed;inset:0}.vfx-flash.on{animation:1.1s steps(6,end) forwards vfx-flash}@keyframes vfx-flash{0%{opacity:.55}25%{opacity:.35}to{opacity:0}}@media (prefers-reduced-motion:reduce){.vfx-flash.on{animation:none}}.window-tab{position:relative}.window-tab.has-new:after{content:"";background:var(--ui-gold);width:7px;height:7px;box-shadow:0 0 0 2px var(--ui-ink);position:absolute;top:4px;right:4px}.menu-button{position:relative}.menu-badge{background:var(--ui-gold);min-width:18px;height:18px;box-shadow:0 0 0 2px var(--ui-ink);color:var(--ui-ink);font:700 11px/18px var(--ui-font);text-align:center;pointer-events:none;padding:0 4px;position:absolute;top:-6px;left:-6px}@keyframes sheet-up{0%{opacity:0;transform:translateY(40px)}}@media (prefers-reduced-motion:reduce){.new-badge,.detail-pane{animation:none}}.window{box-sizing:border-box;image-rendering:pixelated;background:var(--parchment) padding-box;border:24px solid #0000;border-image:url(/ui/frame-parchment.png) 24 fill/24px round;box-shadow:0 12px #0000004d}.window-header{box-shadow:inset 0 -3px 0 0 var(--ui-trim);--ui-text:var(--parchment-ink);--ui-dim:var(--parchment-dim);--ui-gold:#8a4f12;background:0 0;padding-top:2px}.window-title{color:#7a3f10;text-shadow:1px 1px #f8eacb}.window-tab{background:var(--parchment-dark);box-shadow:0 -3px #57341e,-3px 0 #57341e,3px 0 #57341e}.window-tab.active{box-shadow:0 -3px 0 0 #57341e, -3px 0 0 0 #57341e, 3px 0 0 0 #57341e, 0 3px 0 0 var(--parchment), inset 0 3px 0 0 var(--ui-trim)}:is(.help-panel,.party-panel,.dialogue,.door-panel,.tutorial-panel,.player-frame,.target-frame).pixel-panel{image-rendering:pixelated;background:0 0;border:16px solid #0000;border-image:url(/ui/frame-wood.png) 16 fill/16px round;box-shadow:0 6px #0000004d}body.touch :is(.help-panel,.party-panel,.dialogue,.door-panel,.tutorial-panel,.player-frame,.target-frame).pixel-panel{border-width:8px;border-image-width:8px}body.touch .window{border-width:12px;border-image-width:12px}.btn,.chip{image-rendering:pixelated;box-shadow:none;color:#fbefd2;text-shadow:1px 1px #00000073;background:0 0;border:10px solid #0000;border-image:url(/ui/btn-wood.png) 10 fill/10px;min-height:30px;padding:0 8px}.btn:not(:disabled):active{border-image-source:url(/ui/btn-wood-down.png);transform:none}.btn.primary{background:0 0;border-image-source:url(/ui/btn-green.png)}.btn.primary:not(:disabled):active{border-image-source:url(/ui/btn-green-down.png)}.btn.danger{border-image-source:url(/ui/btn-red.png)}.chip{min-height:26px;padding:0 4px;font-size:13px}.chip.active{color:#3c2314;text-shadow:0 1px #ffffff4d;background:0 0;border-image-source:url(/ui/btn-gold.png)}.window-tab{image-rendering:pixelated;box-shadow:none;color:#d4b68c;background:0 0;border:12px solid #0000;border-width:10px 12px 8px;border-image:url(/ui/tab-dark.png) 10 12 8 fill/10px 12px 8px;padding:0 4px}.window-tab.active{box-shadow:none;color:#fbefd2;background:0 0;border-image-source:url(/ui/tab.png)}.window-tab:hover{color:#fbefd2}.window-title{image-rendering:pixelated;color:#5a3010;text-shadow:1px 1px #f8eacb;border:10px solid #0000;border-width:10px 36px;border-image:url(/ui/ribbon.png) 10 36 fill/10px 36px;margin-bottom:8px;padding:0 4px 2px;font-size:16px}.window-close{width:32px;height:30px;image-rendering:pixelated;box-shadow:none;color:#0000;background:url(/ui/close.png) 50%/32px 30px no-repeat;overflow:hidden}.bar{box-sizing:border-box;image-rendering:pixelated;box-shadow:none;background:0 0;border:3px solid #0000;border-width:3px 5px;border-image:url(/ui/bar-frame.png) 3 5 fill/3px 5px;min-height:10px}.bar.big{height:18px}.bar .label{inset:-3px -5px}.menu-art{object-fit:contain;width:30px;height:30px;image-rendering:pixelated}body.touch .menu-art{width:26px;height:26px}.card-picture{image-rendering:pixelated;display:block}.action-row{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;column-gap:18px;display:grid}.action-row .action-bar{grid-column:2;margin:0}.beside-bar{grid-column:3;place-self:start;transition:transform .25s steps(5,end),opacity .25s steps(5,end)}.beside-bar:empty{display:none}.hud-bottom.resting .beside-bar{opacity:0;pointer-events:none;transform:translateY(calc(100% + 30px))}.potion-bar{pointer-events:auto;gap:10px;display:flex}.potion-button{background:var(--ui-panel);width:52px;height:52px;box-shadow:var(--pixel-border), var(--pixel-bevel);cursor:pointer;border:0;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.potion-button.empty .pixel-icon{filter:grayscale()brightness(.6)}.potion-button:active{transform:scale(.92)}.potion-button .key{background:var(--ui-ink);min-width:14px;color:var(--ui-text);text-align:center;padding:0 2px;font-size:11px;position:absolute;top:-8px;left:-8px}.potion-count{color:var(--ui-text);text-shadow:1px 0 var(--ui-ink), -1px 0 var(--ui-ink), 0 1px var(--ui-ink), 0 -1px var(--ui-ink);font-size:12px;font-weight:700;position:absolute;bottom:0;right:2px}.potion-shade{background:#140f1eb3;height:0;position:absolute;top:0;left:0;right:0}.touch-potions{z-index:3;right:calc(12px + var(--safe-right));bottom:calc(300px + var(--safe-bottom));flex-direction:column;position:fixed}.touch-potions .potion-button{width:46px;height:46px}body:has(:is(.inventory-panel,.crafting-panel,.shop-window,.journal,.cardex,.trade-window,.help-panel,.party-panel,.dialogue):not(.hidden)) .touch-potions{display:none}.shop-window{width:min(620px,100vw - 32px);height:auto;max-height:min(660px,100dvh - 120px)}.shop-window .window-body{min-height:0;display:block;overflow-y:auto}.shop-body{flex-direction:column;gap:12px;display:flex}.board-window{width:min(520px,100vw - 32px)}.board-body{flex-direction:column;gap:10px;display:flex}.board-note{color:var(--ui-dim);margin:0;font-size:13px;line-height:1.45}.board-bounties{flex-direction:column;gap:10px;display:flex}.board-bounty{background:var(--ui-panel);box-shadow:var(--pixel-border);flex-direction:column;gap:6px;padding:10px 12px;display:flex}.board-bounty.claimed{opacity:.6}.board-bounty-head{align-items:center;gap:8px;display:flex}.board-bounty-title{font-weight:700}.board-tier{color:var(--ui-text);background:var(--ui-panel-dark);padding:1px 6px;font-size:11px}.board-tier.tier-2{color:var(--ui-gold)}.board-tier.tier-3{color:#e0805a}.board-bounty-text{font-size:13px;line-height:1.4}.board-bounty-goal{color:var(--ui-dim);font-size:13px}.board-bar{background:var(--ui-panel-dark);height:14px;box-shadow:var(--pixel-border);position:relative}.board-bar-fill{background:var(--ui-gold);position:absolute;inset:0 auto 0 0}.board-bounty.done .board-bar-fill{background:#6fae5a}.board-bar-text{color:var(--ui-text);text-shadow:1px 1px #0008;justify-content:center;align-items:center;font-size:11px;display:flex;position:absolute;inset:0}.board-bounty-foot{justify-content:space-between;align-items:center;gap:8px;display:flex}.board-reward{align-items:center;gap:4px;font-size:13px;display:inline-flex}.board-claimed{color:var(--ui-dim);font-size:13px}.shop-wallet{justify-content:space-between;align-items:center;gap:12px;display:flex}.shop-keeper{color:var(--ui-dim);font-size:13px}.shop-purse{align-items:center;gap:4px;font-weight:700;display:inline-flex}.shop-wares{flex-direction:column;gap:10px;display:flex}.shop-ware{grid-template-columns:auto 1fr auto;align-items:center;gap:12px;display:grid}.shop-ware .gear-tile{cursor:default}.shop-ware-name{font-weight:700}.shop-ware-line{color:var(--ui-dim);font-size:13px}.shop-buy{justify-content:center;align-items:center;gap:4px;min-width:64px;display:inline-flex}.shop-restyle{grid-template-columns:auto 1fr;align-items:start;gap:16px;display:grid}.shop-mirror{background:var(--ui-panel-dark);width:96px;min-height:96px;box-shadow:var(--pixel-border);justify-content:center;align-items:center;display:flex}.shop-mirror canvas{width:96px;height:auto;image-rendering:pixelated}.shop-dyes{flex-direction:column;gap:8px;display:flex}.shop-dyes .door-row{grid-template-columns:7em 1fr;align-items:center;gap:8px;display:grid}body.touch .shop-window{max-height:calc(100dvh - 16px);bottom:auto}@media (max-width:700px){.shop-window{max-height:calc(100dvh - 16px);bottom:auto}.shop-window .window-title{display:block}}.coach-pulse{outline:3px solid var(--ui-gold,#f2c94c);outline-offset:3px;animation:.9s step-end infinite coach-blink}@keyframes coach-blink{50%{outline-color:#0000}}.speech-box{z-index:3;width:min(680px,100vw - 32px);font:19px/1.45 var(--ui-font);color:var(--ui-text);cursor:pointer;align-items:center;gap:14px;padding:10px 14px;display:flex;position:fixed;bottom:150px;left:50%;transform:translate(-50%)}.speech-box.hidden{display:none}.speech-portrait{background:var(--ui-panel-dark);width:72px;height:72px;box-shadow:var(--pixel-border);flex:none;justify-content:center;align-items:center;display:flex}.speech-portrait canvas{width:72px;height:72px;image-rendering:pixelated}.speech-name{color:var(--ui-gold);font-weight:700}body.touch .speech-box{font-size:16px;top:30%;bottom:auto}body.touch :is(.speech-portrait,.speech-portrait canvas){width:48px;height:48px}body:has(.dialogue:not(.hidden)) .speech-box{display:none}.skip-offer{z-index:50;width:min(420px,100vw - 32px);font:15px/1.45 var(--ui-font);color:var(--ui-text);padding:16px 18px;position:fixed;top:30%;left:50%;transform:translate(-50%)}.skip-offer-title{font-family:var(--title-font);color:var(--ui-gold);margin-bottom:8px;font-size:14px}.skip-offer p{margin:0 0 14px}.skip-offer-buttons{justify-content:flex-end;gap:10px;display:flex}.tip-card{z-index:3;width:min(300px,100vw - 32px);font:14px/1.4 var(--ui-font);color:var(--ui-text);padding:10px 12px;position:fixed;top:38%;left:16px}.tip-card.hidden{display:none}.tip-head{align-items:center;gap:6px;margin-bottom:4px;display:flex}.tip-title{color:var(--ui-gold);flex:1;font-weight:700}.tip-close{color:var(--ui-dim);font:700 16px var(--ui-font);cursor:pointer;background:0 0;border:0;padding:0 2px}.tip-text{margin:0}body.touch .tip-card{width:min(240px,100vw - 120px);font-size:12px;top:34%;left:8px}body:has(:is(.inventory-panel,.crafting-panel,.shop-window,.journal,.cardex,.trade-window,.help-panel,.party-panel,.dialogue):not(.hidden)).touch .tip-card{display:none}.journal .window-body.journal-body{grid-template-columns:minmax(200px,260px) 1fr;display:grid}.journal-list{border-right:3px solid var(--ui-panel-dark);flex-direction:column;gap:4px;display:flex}.journal-count{color:var(--ui-dim);margin:0 4px 6px;font-size:12px}.journal-row{color:var(--ui-text);font:14px var(--ui-font);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:5px 8px;display:flex}.journal-row:hover:not(:disabled){background:var(--ui-panel-light)}.journal-row.active{background:var(--ui-panel-dark);box-shadow:inset 3px 0 0 var(--ui-gold)}.journal-row.locked{color:var(--ui-dim);cursor:default}.journal-row-label{flex:1}.journal-row-extra{color:var(--ui-dim);font-size:12px}.journal-row-icon{line-height:0}.journal-page{min-height:0;padding:14px 18px 18px;overflow-y:auto}.journal-heading{align-items:center;gap:10px;margin-bottom:10px;display:flex}.journal-heading h3{font:400 16px var(--title-font);color:var(--ui-gold);margin:0}.journal-text{margin:0 0 10px}.journal-subheading{margin:12px 0 4px;font-size:14px}.journal-list-text{margin:0 0 10px;padding-left:20px}.journal-quote{border-left:3px solid var(--ui-gold);margin:0 0 10px;padding:6px 12px;font-style:italic}.journal-portrait{float:right;background:var(--ui-panel-dark);box-shadow:var(--pixel-border);margin:0 0 8px 12px;line-height:0}.journal-portrait canvas{width:72px;height:72px;image-rendering:pixelated}.journal-controls{flex-direction:column;gap:4px;display:flex}@media (max-width:700px){.journal .window-body.journal-body{grid-template-rows:auto 1fr;grid-template-columns:1fr}.journal-list{border-right:0;border-bottom:3px solid var(--ui-panel-dark);max-height:34vh}}.ghost-hand{z-index:80;pointer-events:none;transform-origin:18px 2px;filter:drop-shadow(0 0 #fff)drop-shadow(2px 0 #fff)drop-shadow(-2px 0 #fff)drop-shadow(0 2px #fff)drop-shadow(0 4px 2px #00000073);line-height:0;position:fixed;top:0;left:0}.ghost-hand.hidden,.ghost-tap.hidden{display:none}.ghost-tap{z-index:79;pointer-events:none;width:0;height:0;position:fixed;top:0;left:0}.ghost-tap:after{content:"";border:3px solid var(--ui-gold,#f2c94c);opacity:0;border-radius:50%;width:36px;height:36px;position:absolute;top:-18px;left:-18px}.ghost-tap.go:after{animation:.45s ease-out ghost-tap}@keyframes ghost-tap{0%{opacity:1;transform:scale(.3)}to{opacity:0;transform:scale(1.4)}}.minimap-time{color:var(--ui-gold)}@media (max-width:700px){.window-tab{border-width:10px 8px 8px;padding:0 2px}}.window-tab.has-new{padding-right:12px}.window-tab.has-new:after{top:2px;right:0}.dialogue-backdrop{z-index:3;position:fixed;inset:0}.dialogue-backdrop.hidden{display:none}.dialogue-close{width:30px;height:30px;image-rendering:pixelated;color:#0000;cursor:pointer;background:url(/ui/close.png) 50%/30px 28px no-repeat;border:0;padding:0;position:absolute;top:-6px;right:-6px;overflow:hidden}body:not(.touch) .speech-box{left:16px;top:calc(var(--frame-bottom,190px) + var(--party-height,0px) + 12px);align-items:flex-start;width:min(440px,50vw - 40px);bottom:auto;transform:none}.moment{z-index:45;text-align:center;min-width:min(300px,100vw - 32px);max-width:min(440px,100vw - 32px);color:var(--ui-text);font-family:var(--ui-font);cursor:pointer;flex-direction:column;align-items:center;gap:6px;padding:14px 22px 16px;animation:.35s steps(5,end) moment-in;display:flex;position:fixed;top:22%;left:50%;transform:translate(-50%)}.moment.leaving{opacity:0;transition:opacity .3s steps(3,end)}.moment-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--ui-gold);font-size:13px}.moment-title{font-family:var(--title-font);color:var(--ui-gold);text-shadow:2px 2px 0 var(--ui-ink);font-size:22px;line-height:1.3}.moment-text{font-size:16px;line-height:1.4}.moment-art{pointer-events:none;margin:16px 0 24px;transform:scale(1.4)}@keyframes moment-in{0%{opacity:0;transform:translate(-50%)scale(.6)}to{opacity:1;transform:translate(-50%)scale(1)}}@media (prefers-reduced-motion:reduce){.moment{animation:none}}body.touch .moment{top:30%}body.touch .moment-title{font-size:18px}.window{font-size:16px}.window-hint,.section-extra,.empty-note,.detail-line,.crafting-note,.crafting-footer,.chip,.stat-row,.board-note,.help-note{font-size:15px}.section-header h3{font-size:14px}.detail-guide{font-size:15px}.detail-guide h4{font-size:13px}.guide-legend,.detail-tip,.stat-about,.unlock-text .dim,.journal-count,.journal-row-extra{font-size:14px}.craft-option small{font-size:13px}.tutorial-panel{width:340px}body:not(.touch) .tutorial-skip{position:absolute;top:10px;right:40px}@media (max-height:820px){body:not(.touch) .tutorial-panel{top:214px}}.tutorial-text{font-size:14px;line-height:1.35}.tutorial-hint{font-size:14px}.tutorial-skip,body.touch .tutorial-text,body.touch .tutorial-hint{font-size:13px}body.touch .hud-menu:not(.open)>.menu-button:not(.menu-toggle,.coach-pulse){display:none}body.touch .hud-menu.open .menu-toggle{filter:brightness(1.25)}body.touch .player-frame.folded{grid-template-columns:auto 1fr;gap:8px}body.touch .player-frame.folded .portrait{width:34px;height:34px;display:block}body.touch .player-frame.folded .player-bars{width:128px}body.touch :is(.tutorial-panel,.speech-box).pixel-panel{box-shadow:none;text-shadow:1px 1px #000c;background:linear-gradient(90deg,#1a0f08d1,#1a0f0899 75%,#1a0f0800);border:0;border-image:}body.touch .tutorial-panel:not(.expanded) :is(.tutorial-text,.tutorial-skip){display:none}body.touch .tutorial-panel.fresh{animation:none}@media (orientation:portrait){body.touch .tutorial-panel{width:min(290px,76vw);padding:6px 30px 7px calc(10px + var(--safe-left,0px));gap:3px;left:0}body.touch .speech-box{width:min(300px,80vw);padding:6px 12px 7px calc(10px + var(--safe-left,0px));align-items:flex-start;gap:8px;font-size:14px;line-height:1.35;left:0;transform:none}body.touch :is(.speech-portrait,.speech-portrait canvas){width:34px;height:34px}}body.touch .dialogue{border-width:8px 0 0;width:auto;padding:12px 14px calc(14px + var(--safe-bottom,0px));border-image-width:8px 0 0;inset:auto 0 0;transform:none}body.touch .dialogue-close{top:6px;right:8px}@media (max-width:700px){.door-create .door-naming{z-index:1;background:var(--ui-panel);box-shadow:0 -3px 0 0 var(--ui-ink), 0 -10px 16px #00000059;margin:0 -20px -20px;padding:10px 20px 14px;position:sticky;bottom:-20px}}body.touch .target-frame.pixel-panel{box-shadow:none;text-shadow:1px 1px #000c;background:#1a0f08b8;border:0;border-image:}body.touch .target-frame.friendly.pixel-panel{box-shadow:inset 0 0 0 2px var(--ui-moss)}@media (orientation:portrait){body.touch .target-frame{gap:8px;padding:4px 10px}body.touch .target-icon{display:none}body.touch .target-body{gap:3px}body.touch .target-hp,body.touch .target-frame .bar.hp.big{height:12px}}@media (orientation:landscape) and (max-height:500px){body.touch .touch-potions{bottom:auto;top:calc(56px + var(--safe-top,0px));right:calc(112px + var(--safe-right,0px))}}#notice{font:16px/1.3 var(--ui-font);color:var(--ui-text,#f3ecff);box-shadow:var(--pixel-border);opacity:0;pointer-events:none;z-index:41;white-space:nowrap;background:#140e0ad1;padding:8px 14px;transition:opacity .3s;position:fixed;bottom:16%;left:50%;transform:translate(-50%)}#notice.shown{opacity:1}.fight-button{z-index:20;position:fixed;top:12px;left:12px}body.in-battle :is(.fight-button,.minimap,.nameplates,#notice){display:none}.battle-transition{z-index:36;pointer-events:none;opacity:0;background:#0d0b14;position:fixed;inset:0}.battle-transition.in{animation:.52s steps(8,end) forwards battle-in}.battle-transition.out{animation:.4s ease-out forwards battle-out}@keyframes battle-in{0%{opacity:0;background:#fff}15%{opacity:.85;background:#fff}30%{opacity:0;background:#fff}45%{opacity:.85;background:#fff}60%{opacity:.6;background:#0d0b14}to{opacity:1;background:#0d0b14}}@keyframes battle-out{0%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.battle-transition.in{animation:.3s reverse forwards battle-out}}.party-hud{z-index:20;width:190px;color:var(--ui-text);font:13px/1.2 var(--ui-font);font-variant-ligatures:none;box-shadow:var(--pixel-border), inset 0 0 0 2px var(--ui-trim);pointer-events:none;background:#2b1a0fd1;flex-direction:column;gap:5px;padding:6px 8px;display:flex;position:fixed;top:12px;left:12px}.party-hud-row{grid-template-columns:1fr auto;gap:1px 6px;display:grid}.party-hud-row.low .party-hud-name{color:#ff9a8a}.party-hud-level{color:var(--ui-dim);align-self:end;font-size:11px}.party-hud-bars{flex-direction:column;grid-column:1/-1;gap:2px;display:flex}.party-hud-bars .bar{height:11px}.party-hud-bars .bar .label{font-size:9px;line-height:9px}.party-hud-thin{background:#00000073;height:3px}.party-hud-thin i{height:100%;display:block}.party-hud-thin i.stamina{background:var(--ui-stamina)}.party-hud-thin i.mana{background:var(--ui-focus)}.party-hud-shards{color:var(--ui-dim);font-size:11px}.party-hud-shards:empty,body.in-battle .party-hud{display:none}.fight-button{top:auto;bottom:12px}@media (max-width:600px){.party-hud{width:150px;top:6px;left:6px}}.party-tab-level{opacity:.75;font-size:11px}.member-head{align-items:center;gap:14px;margin:2px 3px 12px;display:flex}.party-face{width:72px;height:72px;box-shadow:var(--pixel-border);background:#3c2314;flex:none}.party-face canvas{width:72px;height:72px;image-rendering:pixelated}.party-who{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.member-name{font:14px var(--title-font);color:#7a3f10;align-items:baseline;gap:10px;display:flex}.party-place{font:12px var(--ui-font);color:var(--ui-dim)}.member-role{color:var(--ui-dim);font-size:13px}.party-level{align-items:center;gap:10px;max-width:360px;display:flex}.party-level-number{white-space:nowrap;font-weight:700}.party-level .bar{flex:1;height:14px}.party-level .bar .label{font-size:10px;line-height:14px}.bar.xp .fill{background:var(--ui-trim)}.party-stats{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:4px 8px;margin:0 3px 6px;display:grid}.party-stat{background:#00000014;justify-content:space-between;gap:8px;padding:3px 8px;font-size:13px;display:flex}.party-stat.wide{grid-column:1/-1}.party-stat-name{color:var(--ui-dim)}.party-stat-value{text-align:right;font-weight:700}.party-uses{color:var(--ui-dim);margin:0 3px 4px;font-size:12px}.party-socket{flex-direction:column;align-items:center;gap:4px;display:flex}.party-socket-label{color:var(--ui-dim);font-size:11px}.party-screen .card-socket.locked{flex-direction:column;gap:6px;font-size:12px}.party-screen .card-art img.card-picture{width:44px;height:44px;image-rendering:pixelated}.party-costs{justify-content:center;gap:3px;display:flex}.party-costs .cost{min-width:16px;padding:0 2px;font-size:10px}.party-shards{color:var(--ui-dim);margin:10px 3px 0;font-size:13px}.party-shards:empty{display:none}.party-screen .detail-text .detail-line:not(.dim){text-align:left}.party-screen .detail-actions .btn:disabled{opacity:.6}.party-button{z-index:20;position:fixed;bottom:56px;left:12px}.party-button .party-new{background:var(--ui-gold);color:var(--ui-ink);margin-left:6px;padding:0 5px;font-size:11px}.party-button .party-new:empty,body.in-battle .party-button{display:none}.party-hud{cursor:pointer}.party-screen .section-header{gap:12px}.party-screen .section-extra{text-align:right}@media (max-width:700px){.party-screen .section-extra{display:none}}.title-screen{z-index:70;font:16px/1.35 var(--ui-font);color:var(--parchment-ink);background:radial-gradient(circle at 50% 35%,#2a1d3d 0%,#0d0b14 70%);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.title-panel{box-sizing:border-box;width:min(620px,100%);max-height:100%;image-rendering:pixelated;background:var(--parchment) padding-box;border:24px solid #0000;border-image:url(/ui/frame-parchment.png) 24 fill/24px round;padding:6px 10px 10px;overflow-y:auto}.title-name{text-align:center;font:26px var(--title-font);color:#7a3f10;text-shadow:2px 2px #f8eacb;margin:6px 0 4px}.title-sub{text-align:center;color:var(--parchment-dim);margin-bottom:14px}.title-files{flex-direction:column;gap:10px;display:flex}.title-file{background:#0000000f;align-items:center;gap:12px;padding:10px 12px;display:flex;box-shadow:inset 0 0 0 2px #57341e59}.title-file.latest{box-shadow:inset 0 0 0 3px #b5822c}.title-info{flex:1;min-width:0}.title-file-name{color:#7a3f10;font-weight:700}.title-line{font-size:14px}.title-line.dim{color:var(--parchment-dim)}.title-line.bad,.title-message.bad{color:#a8322a}.title-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px 10px;max-width:220px;display:flex}.title-link{color:#7a3f10;font:13px var(--ui-font);cursor:pointer;background:0 0;border:0;padding:2px 0;text-decoration:underline}.title-link.armed{color:#a8322a;font-weight:700}.title-message{text-align:center;min-height:1.3em;margin-top:10px;font-size:14px}@media (max-width:560px){.title-file{flex-direction:column;align-items:stretch}.title-actions{justify-content:flex-start;max-width:none}.title-actions .btn{flex:1;min-height:40px}}.game-menu{z-index:45;box-sizing:border-box;width:min(300px,100vw - 32px);image-rendering:pixelated;background:var(--parchment) padding-box;font:15px var(--ui-font);color:var(--parchment-ink);border:24px solid #0000;border-image:url(/ui/frame-parchment.png) 24 fill/24px round;flex-direction:column;gap:8px;padding:2px 6px 6px;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.game-menu.hidden{display:none}.game-menu-title{text-align:center;font:14px var(--title-font);color:#7a3f10;margin-bottom:2px}.game-menu-status{text-align:center;color:var(--parchment-dim);margin-bottom:4px;font-size:13px}.game-menu .btn[hidden]{display:none}.menu-button{z-index:20;position:fixed;bottom:100px;left:12px}body.in-battle .menu-button{display:none}.sight-button{z-index:20;color:#f3eaff;background:#4b3a78;position:fixed;bottom:144px;left:12px}body.in-battle .sight-button{display:none}.member-field{color:#5a3fa0;font-size:13px}.story-goal{z-index:20;max-width:min(520px,100vw - 440px);box-shadow:var(--pixel-border);color:#fbefd2;font:14px/1.3 var(--ui-font);text-align:center;background:#1a120cd1;padding:6px 14px;position:fixed;top:12px;left:50%;transform:translate(-50%)}.story-goal[hidden],body.in-battle .story-goal{display:none}@media (max-width:700px){.story-goal{max-width:calc(100vw - 32px);font-size:13px;top:auto;bottom:150px}}.end-card{z-index:60;box-sizing:border-box;width:min(460px,100vw - 32px);image-rendering:pixelated;background:var(--parchment) padding-box;color:var(--parchment-ink);font:16px/1.4 var(--ui-font);text-align:center;border:24px solid #0000;border-image:url(/ui/frame-parchment.png) 24 fill/24px round;flex-direction:column;align-items:center;gap:10px;padding:8px 10px 10px;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.end-title{font:22px var(--title-font);color:#7a3f10}.end-sub{color:var(--parchment-dim)}.tip-card{z-index:46;width:min(420px,100vw - 32px);box-shadow:var(--pixel-border), 0 0 0 2px var(--ui-gold);color:#fbefd2;background:#1a120cf0;flex-direction:column;gap:6px;display:flex;top:52px;left:50%;transform:translate(-50%)}.tip-card .tip-text{font-size:14px;line-height:1.45}.tip-card .tip-close{background:var(--ui-gold);color:#2a1d14;font:700 13px var(--ui-font);box-shadow:var(--pixel-border);align-self:flex-end;padding:4px 12px}.tip-card.in-battle{top:64px}@media (max-width:700px){.tip-card{top:8px}.tip-card.in-battle{top:48px}}.battle{z-index:30;pointer-events:none;color:var(--ui-text);font:14px/1.25 var(--ui-font);font-variant-ligatures:none;opacity:0;transition:opacity .35s;position:fixed;inset:0}.battle.shown{opacity:1}.battle button{font-family:var(--ui-font);font-variant-ligatures:none}.battle .bar .label{font-size:10px}.battle-outline,.battle-plate-name,.battle-line,.battle-float{text-shadow:1px 0 var(--ui-ink), -1px 0 var(--ui-ink), 0 1px var(--ui-ink), 0 -1px var(--ui-ink), 1px 1px var(--ui-ink)}.battle-fighters{pointer-events:none;position:absolute;inset:0}.battle-fighter{pointer-events:none;position:absolute;top:0;left:0}.battle-fighter.fallen .battle-plate{opacity:.35}.battle-hitbox{pointer-events:auto;cursor:pointer;position:absolute;top:0}.battle-plate{pointer-events:none;flex-direction:column;align-items:center;gap:2px;width:140px;padding-bottom:4px;display:flex;position:absolute;bottom:100%;left:0;transform:translate(-50%)}.battle-plate-name{white-space:nowrap;font-size:12px}.battle-fighter.enemy .battle-plate-name{color:#ffd2c4}.battle-plate .bar{width:64px;height:9px}.battle-arrow{color:var(--ui-gold);visibility:hidden;font-size:12px;animation:.8s ease-in-out infinite alternate battle-bob}.battle-arrow.shown{visibility:visible}@keyframes battle-bob{to{translate:0 3px}}.battle-warn{color:#fff;box-shadow:0 0 0 2px var(--ui-ink);background:#b0302a;padding:1px 5px;font-size:11px;animation:.6s ease-in-out infinite alternate battle-pulse}@keyframes battle-pulse{to{background:#e0534a}}.battle-statuses{flex-wrap:wrap;justify-content:center;gap:2px;display:flex}.battle-status{color:#fff;box-shadow:0 0 0 1px var(--ui-ink);white-space:nowrap;background:#3a3f4a;padding:0 4px;font-size:10px;line-height:14px}.battle-status.frozen,.battle-status.chilled{background:#3f78b0}.battle-status.burning{background:#c0551e}.battle-status.charged{background:#8a7a1e}.battle-status.armor_broken{background:#7a4a2e}.battle-status.stunned{background:#7a3f9a}.battle-status.rooted{background:#4f7a3e}.battle-status.off_balance{background:#3e7a7a}.battle-status.shield{background:#5a8ab0}.battle-status.guard{background:#8a6a2e}.battle-order{pointer-events:none;gap:5px;max-width:calc(100vw - 180px);display:flex;position:absolute;top:12px;left:50%;overflow:hidden;transform:translate(-50%)}.battle-turn{white-space:nowrap;background:var(--ui-panel);box-shadow:var(--pixel-border), inset 0 0 0 2px var(--ui-trim);flex:none;padding:4px 8px;font-size:12px}.battle-turn.enemy{box-shadow:var(--pixel-border), inset 0 0 0 2px #c0604a;background:#6e2c22}.battle-turn.now{padding:6px 10px;font-size:14px}.battle-turn.next{background:var(--ui-gold);color:#3c2314}.battle-turn-label{color:var(--ui-gold);margin-right:5px;font-size:10px}.battle-turn.next .battle-turn-label{color:#3c2314}.battle-toggles{pointer-events:auto;gap:4px;display:flex;position:absolute;top:10px;right:12px}.battle-dock{pointer-events:none;align-items:flex-end;gap:12px;display:flex;position:absolute;bottom:12px;left:12px;right:12px}.battle-panel{box-sizing:border-box;image-rendering:pixelated;background:var(--ui-panel) padding-box;pointer-events:auto;border:16px solid #0000;border-image:url(/ui/frame-wood.png) 16 fill/16px round;box-shadow:0 6px #0000004d}.battle-party{flex-direction:column;flex:0 320px;gap:6px;width:320px;min-width:230px;display:flex}.battle-member{align-items:center;gap:8px;padding:2px 4px;display:flex}.battle-member.current{box-shadow:inset 2px 0 0 var(--ui-gold);background:#f6c45333}.battle-member.down{opacity:.5}.battle-face{background:var(--ui-panel-dark);width:40px;height:40px;box-shadow:0 0 0 2px var(--ui-ink);flex:none}.battle-face canvas{width:40px;height:40px;image-rendering:pixelated}.battle-member-info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.battle-member-name{font-size:13px}.battle-member-bars{gap:6px;display:flex}.battle-member-bars .bar{flex:1;height:10px}.battle-member .battle-statuses{justify-content:flex-start}.battle-bench{color:var(--ui-dim);font-size:12px}.battle-bench:empty{display:none}.battle-middle{flex-direction:column;flex:1 1 0;align-items:center;gap:8px;min-width:0;display:flex}.battle-log{pointer-events:none;flex-direction:column;align-items:center;gap:2px;display:flex}.battle-line{opacity:.65;font-size:14px}.battle-line:last-child{opacity:1}.battle-tip{max-width:340px;color:var(--parchment-ink);background:var(--parchment);box-shadow:var(--pixel-border), inset 0 0 0 2px var(--parchment-dark);flex-direction:column;gap:3px;padding:8px 12px;font-size:13px;display:flex}.battle-menu{flex-direction:column;flex:0 400px;gap:6px;width:400px;min-width:300px;display:flex}.battle-menu-title{font-family:var(--title-font);color:var(--ui-gold);font-size:11px}.battle-menu-title.waiting{color:var(--ui-dim)}.battle-section{color:var(--ui-dim);margin-top:2px;font-size:12px}.battle-weapon{grid-template-columns:1fr 1fr;gap:6px;display:grid}.battle-weapon>:nth-child(3){grid-column:1/-1}.battle-weapon .battle-big{gap:6px;padding:4px 6px}.battle-weapon .battle-card-name{font-size:13px}.battle-hand{grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:6px;padding-top:4px;display:grid}.battle-tile{text-align:center;min-height:100px;color:var(--ui-text);background:var(--ui-panel-dark);box-shadow:var(--pixel-border), inset 0 0 0 2px #7a5030;cursor:pointer;border:none;flex-direction:column;align-items:center;gap:3px;padding:14px 3px 6px;font-size:12px;line-height:1.15;display:flex;position:relative}.battle-tile:hover,.battle-tile:focus-visible{box-shadow:var(--pixel-border), inset 0 0 0 2px var(--ui-gold);outline:none}.battle-tile .battle-key{position:absolute;top:3px;left:5px}.battle-tile .battle-card-cooldown{position:absolute;top:3px;right:4px}.battle-tile .battle-combo{position:absolute;top:-9px;left:50%;transform:translate(-50%)}.battle-tile-name{overflow-wrap:anywhere;justify-content:center;align-items:center;min-height:2.3em;display:flex}.battle-tile-effect{color:var(--ui-dim);white-space:nowrap}.battle-tile-costs{gap:3px;margin-top:auto;display:flex}.battle-tile-costs .cost{min-width:18px;padding:0 3px;font-size:12px}.battle-detail{color:var(--ui-dim);white-space:nowrap;text-overflow:ellipsis;min-height:1.3em;font-size:12px;overflow:hidden}.battle-weapon>*{min-width:0}.battle-cards{flex-direction:column;gap:5px;display:flex}.battle-commands{flex-wrap:wrap;gap:4px;display:flex}.battle-big,.battle-card{text-align:left;min-height:44px;color:var(--ui-text);background:var(--ui-panel-dark);box-shadow:var(--pixel-border), inset 0 0 0 2px #7a5030;cursor:pointer;border:none;align-items:center;gap:8px;padding:5px 10px 5px 8px;font-size:14px;display:flex}.battle-big .icon,.battle-card .icon{flex:none;display:inline-flex}.battle-big:hover,.battle-card:hover,.battle-big:focus-visible,.battle-card:focus-visible{box-shadow:var(--pixel-border), inset 0 0 0 2px var(--ui-gold);outline:none}.battle-big.echo{box-shadow:var(--pixel-border), inset 0 0 0 2px #b184ff}.unready{opacity:.5}.battle-card-text{flex-direction:column;flex:1;min-width:0;display:flex}.battle-card-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.battle-card-line{color:var(--ui-dim);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.battle-card-line.stamina{color:#f0c46a}.battle-card-costs{flex:none;align-items:center;gap:4px;display:flex}.battle-card-costs .icon{opacity:.8}.cost{text-align:center;color:#fff;min-width:22px;box-shadow:0 0 0 1px var(--ui-ink);padding:1px 4px;font-size:13px}.cost.stamina{background:#a8721e}.cost.mana{background:#3f68b8}.battle-card-cooldown{color:var(--ui-dim);background:#00000080;padding:0 4px;font-size:11px}.battle-card-cooldown:before{content:"⟳";margin-right:2px}.battle-links{justify-content:flex-end;gap:14px;margin-top:2px;display:flex}.battle-link{color:var(--ui-dim);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;padding:2px 0;font-size:13px;text-decoration:underline}.battle-link:hover{color:var(--ui-text)}.battle-key{min-width:10px;color:var(--ui-dim);font-size:10px;display:inline-block}.battle-hint{color:var(--ui-dim);font-size:13px}.bar.mana .fill{background:var(--ui-focus)}.battle-damage{color:#fff}.battle-combo{color:#3c2314;background:var(--ui-gold);box-shadow:0 0 0 1px var(--ui-ink);white-space:nowrap;flex:none;padding:1px 5px;font-size:11px;animation:.8s ease-in-out infinite alternate battle-pulse-gold}@keyframes battle-pulse-gold{to{background:#ffe08a}}.battle-plate-hint{color:#ffe0a8;white-space:nowrap;font-size:10px}.battle-plate-hint:empty{display:none}@media (hover:none){.battle-key{display:none}}.battle-float{font-family:var(--title-font);color:#fff;white-space:nowrap;pointer-events:none;font-size:12px;animation:1.2s ease-out forwards battle-float;position:absolute;transform:translate(-50%)}.battle-float.crit{color:#ffd34d;font-size:16px}.battle-float.heal{color:#8ff08a}.battle-float.combo{color:#ffb84d;font-size:14px;animation-duration:1.5s}.battle-float.burn{color:#ff9a4a}.battle-float.absorbed,.battle-float.shield{color:#bfe3ff;font-family:var(--ui-font);font-size:14px}.battle-float.warn{color:#ff6a5a;font-size:14px}.battle-float.status,.battle-float.buff,.battle-float.name,.battle-float.restore{font-family:var(--ui-font);font-size:14px}.battle-float.status{color:#cfe2ff}.battle-float.buff{color:#f0e09a}.battle-float.restore{color:#9ac8ff;font-size:12px}@keyframes battle-float{0%{opacity:0;translate:0 6px}12%{opacity:1}70%{opacity:1}to{opacity:0;translate:0 -40px}}.battle-banner{text-align:center;min-width:260px;color:var(--ui-text);background:var(--ui-panel);box-shadow:var(--pixel-border), var(--pixel-bevel), 0 8px 0 0 #0000004d;pointer-events:auto;flex-direction:column;align-items:center;gap:10px;padding:18px 28px;display:flex;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}.battle-banner-title{font-family:var(--title-font);color:var(--ui-gold);font-size:22px}.battle-banner.lost .battle-banner-title{color:#ff7a6a}.battle-banner-lines{color:var(--ui-dim);flex-direction:column;gap:3px;font-size:14px;display:flex}.battle-banner-lines div:first-child{color:var(--ui-text)}@media (max-width:600px){.battle-dock{flex-direction:column;align-items:stretch;gap:6px;bottom:6px;left:6px;right:6px}.battle-middle{order:-1}.battle-tip,.battle-line:not(:last-child){display:none}.battle-party,.battle-menu{flex:none;width:auto;min-width:0}.battle-panel{border-width:8px;border-image-width:8px}.battle-member .battle-statuses,.battle-plate-hint{display:none}.battle-cards{max-height:136px;margin:-3px;padding:3px;overflow-y:auto}.battle-member-bars{gap:3px}.battle-member-bars .bar{border-width:2px 3px;height:7px}.battle-member-bars .bar .label{display:none}.battle-big,.battle-card{min-height:40px;padding:4px 8px 4px 6px}.battle-party{flex-flow:wrap;gap:4px}.battle-member{flex:30%;padding:0}.battle-face{display:none}.battle-order{max-width:calc(100vw - 16px);left:8px;transform:none}.battle-toggles{top:52px;right:8px}.battle-turn:nth-child(n+7){display:none}}.battle-fighter.party .battle-plate .bar,.battle-menu:empty{display:none}.battle.over .battle-order{visibility:hidden}.battle-combo-banner{font-family:var(--title-font);color:#ffd27a;white-space:nowrap;pointer-events:none;text-shadow:2px 0 var(--ui-ink), -2px 0 var(--ui-ink), 0 2px var(--ui-ink), 0 -2px var(--ui-ink), 3px 3px var(--ui-ink);font-size:26px;animation:1.4s ease-out forwards battle-combo-banner;position:absolute;top:22%;left:50%;transform:translate(-50%)}@keyframes battle-combo-banner{0%{opacity:0;scale:1.8}12%{opacity:1;scale:1}75%{opacity:1;scale:1.04}to{opacity:0;translate:0 -10px;scale:1.1}}@media (max-width:600px){.battle-combo-banner{font-size:18px;top:18%}}@media (prefers-reduced-motion:reduce){.battle-combo-banner{animation-duration:10ms;animation-delay:1.2s;animation-fill-mode:both}}.battle-bench-list{flex-direction:column;gap:6px;display:flex}.battle-bench-row{text-align:left;color:var(--ui-text);background:var(--ui-panel-dark);box-shadow:var(--pixel-border), inset 0 0 0 2px #7a5030;cursor:pointer;border:none;align-items:center;gap:10px;padding:6px 10px 6px 6px;font-size:14px;display:flex}.battle-bench-row:hover,.battle-bench-row:focus-visible{box-shadow:var(--pixel-border), inset 0 0 0 2px var(--ui-gold);outline:none}.battle-bench-row .battle-face,.battle-bench-row .battle-face canvas{width:48px;height:48px}.battle-bench-row.compact .battle-face,.battle-bench-row.compact .battle-face canvas{width:32px;height:32px}.battle-bench-info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.battle-bench-head{justify-content:space-between;align-items:baseline;display:flex}.battle-bench-level{color:var(--ui-dim);font-size:11px}.battle-bench-role{color:var(--ui-dim);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.battle-bench-info .bar{height:10px}.battle-bench-cards{gap:4px;margin-top:2px;display:flex}
