:root{--ink:#f3efe6;--panel:#12141ad1;--edge:#ffffff24;--accent:#d8a441;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;color:var(--ink);background:#10141c;margin:0;font:14px/1.45 system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}#app{width:100vw;height:100vh;position:relative}canvas.game{touch-action:none;width:100%;height:100%;display:block}.login{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;z-index:20;background:radial-gradient(circle at 50% 35%,#22304a,#0c0f16 70%);place-items:safe center center;padding:16px;display:grid;position:absolute;inset:0;overflow-y:auto}.login form{background:var(--panel);border:1px solid var(--edge);border-radius:12px;gap:12px;min-width:300px;padding:28px 32px;display:grid}.login h1{letter-spacing:.06em;color:var(--accent);margin:0;font-size:28px}.login p{opacity:.7;margin:0;font-size:12px}.login input{font:inherit;color:var(--ink);border:1px solid var(--edge);background:#00000059;border-radius:6px;padding:10px 12px}.login button{font:inherit;color:#1a1409;background:var(--accent);cursor:pointer;border:0;border-radius:6px;padding:10px 12px;font-weight:600}.login button[disabled]{opacity:.5;cursor:default}.login .error{color:#ff8b7a;min-height:1em;font-size:12px}.login form.front{min-width:320px;max-width:92vw}.login label{opacity:.85;gap:4px;font-size:12px;display:grid}.login .switch{opacity:.8;text-align:center;font-size:12px}.login .switch a{color:var(--accent)}.login form.create{grid-template-columns:minmax(220px,300px) 1fr;align-items:start;gap:18px 24px;max-width:min(920px,92vw);display:grid}.login form.create h1,.login form.create>button,.login form.create>.error{grid-column:1/-1}.login .stage{aspect-ratio:3/4;border:1px solid var(--edge);background:radial-gradient(circle at 50% 35%,#22304a,#0c0f16 70%);border-radius:12px;overflow:hidden}.login .stage canvas{width:100%;height:100%;display:block}.login .choices{align-content:start;gap:14px;display:grid}.login .row{gap:6px;display:grid}.login .row>label{letter-spacing:.08em;text-transform:uppercase;opacity:.7;font-size:11px}.login .row .opts{flex-wrap:wrap;gap:8px;display:flex}.login .opt{font:inherit;color:var(--ink);cursor:pointer;background:#00000059;border:2px solid #0000;border-radius:999px;padding:7px 12px;font-size:13px;font-weight:500}.login .dot{cursor:pointer;border:2px solid #0000;border-radius:8px;width:28px;height:28px;padding:0}.login .opt.on,.login .dot.on{border-color:var(--accent)}.login .opt:focus-visible,.login .dot:focus-visible{outline:2px solid var(--ink);outline-offset:2px}@media (width<=640px){.login{align-items:start}.login form.create{grid-template-columns:1fr;gap:14px}.login form.create h1,.login form.create>button,.login form.create>.error{grid-column:auto}.login .stage{justify-self:center;width:auto;height:40dvh;max-height:40dvh}}.hud{pointer-events:none;padding:14px;position:absolute;inset:0}.hud-area{letter-spacing:.04em;text-shadow:0 1px 3px #000c;font-size:18px;font-weight:600}.hud-hp{border:1px solid var(--edge);background:#0000008c;border-radius:4px;width:220px;height:18px;margin-top:6px;position:relative;overflow:hidden}.hud-hp-fill{background:linear-gradient(90deg,#b7332c,#e0584a);width:100%;height:100%;transition:width .18s ease-out}.hud-hp-text{font-variant-numeric:tabular-nums;text-shadow:0 1px 2px #000000e6;place-items:center;font-size:11px;display:grid;position:absolute;inset:0}.hud-rest{opacity:.75;text-shadow:0 1px 3px #000c;max-width:220px;margin-top:4px;font-size:12px}.hud-status{opacity:.85;text-shadow:0 1px 3px #000c;margin-top:8px;font-size:13px}.hud-toasts{justify-items:center;gap:6px;display:grid;position:absolute;bottom:48px;left:50%;transform:translate(-50%)}.hud-toast{background:var(--panel);border:1px solid var(--edge);border-radius:999px;padding:7px 14px;font-size:13px;animation:.18s ease-out toast-in}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.hud-prompt{color:var(--accent);opacity:0;text-shadow:0 1px 3px #000000d9;margin-top:6px;font-size:14px;font-weight:600;transition:opacity .12s ease-out}.hud-prompt.visible{opacity:1}.hud-quest{border:1px solid var(--edge);border-left:2px solid var(--accent);background:#00000073;border-radius:6px;max-width:260px;margin-top:10px;padding:7px 10px}.hud-quest-name{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:11px;font-weight:600}.hud-quest-step{opacity:.9;font-variant-numeric:tabular-nums;margin-top:3px;font-size:12px}.hud-quest.done .hud-quest-step{opacity:.7;font-style:italic}.hud-queue{border:1px solid var(--edge);border-left:2px solid var(--accent);font-variant-numeric:tabular-nums;background:#00000073;border-radius:6px;max-width:260px;margin-top:8px;padding:6px 10px;font-size:12px}.hud-cast{border:1px solid var(--edge);background:#0009;border-radius:4px;width:200px;height:12px;position:absolute;bottom:130px;left:50%;overflow:hidden;transform:translate(-50%)}.hud-cast-fill{background:linear-gradient(90deg, #a4642f, var(--accent));width:0;height:100%}.hud-death{letter-spacing:.04em;text-shadow:0 2px 6px #000000e6;z-index:10;background:#0804049e;place-items:center;font-size:22px;font-weight:600;display:grid;position:absolute;inset:0}.skillbar{pointer-events:auto;gap:10px;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.skill{width:64px;height:64px;color:var(--ink);font:inherit;background:var(--panel);border:1px solid var(--edge);cursor:pointer;border-radius:8px;padding:0;position:relative;overflow:hidden}.skill:hover{border-color:var(--accent)}.skill.cooling{cursor:default}.skill-sweep{pointer-events:none;background:#0000009e;width:100%;height:0;position:absolute;bottom:0;left:0}.skill-key{opacity:.65;font-size:11px;position:absolute;top:3px;left:6px}.skill-name{text-align:center;font-size:11px;font-weight:600;position:absolute;inset:auto 0 6px}.panel{background:var(--panel);border:1px solid var(--edge);pointer-events:auto;z-index:12;border-radius:10px;flex-direction:column;width:300px;max-height:calc(100vh - 140px);display:flex;position:absolute;top:64px;right:18px;box-shadow:0 12px 32px #00000073}.panel+.panel:not(.panel-npc):not(.panel-settings){top:300px}.panel+.panel+.panel:not(.panel-npc):not(.panel-settings){top:536px}.panel-npc{width:330px;top:150px;left:18px;right:auto}.panel-grip{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.panel.dragging{box-shadow:0 16px 40px #0009}.panel.dragging .panel-grip{cursor:grabbing}html[data-layout=mobile] .panel-grip{cursor:default}.panel-head{border-bottom:1px solid var(--edge);align-items:center;gap:8px;padding:9px 10px 9px 12px;display:flex}.panel-head h2{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);flex:1;margin:0;font-size:13px;font-weight:600}.panel-extra{font-variant-numeric:tabular-nums;color:var(--accent);opacity:.9;font-size:12px}.panel-key{opacity:.55;border:1px solid var(--edge);border-radius:4px;padding:1px 6px;font-size:11px}.panel-close{font:inherit;color:var(--ink);opacity:.6;cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:17px;line-height:1}.panel-close:hover{opacity:1}.panel-body{padding:10px 12px 12px;overflow-y:auto}.panel-empty{opacity:.6;padding:10px 0;font-size:12px}.settings-section{gap:10px;display:grid}.settings-section+.settings-section{border-top:1px solid var(--edge);margin-top:14px;padding-top:14px}.settings-section h3{letter-spacing:.08em;text-transform:uppercase;opacity:.7;margin:0;font-size:11px;font-weight:600}.settings-row{gap:6px;display:grid}.settings-row>label{opacity:.85;font-size:12px}.settings-note{opacity:.6;font-size:12px;line-height:1.45}.settings-account{opacity:.85}.settings-opts{flex-wrap:wrap;gap:8px;display:flex}.settings-opt{font:inherit;color:var(--ink);cursor:pointer;background:#00000059;border:2px solid #0000;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:500}.settings-opt.on{border-color:var(--accent)}.settings-opt:focus-visible,.settings-danger:focus-visible,.settings-range:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.settings-range-row{align-items:center;gap:10px;display:flex}.settings-range{min-width:0;accent-color:var(--accent);flex:1}.settings-readout{text-align:right;font-variant-numeric:tabular-nums;opacity:.8;min-width:42px;font-size:12px}.settings-danger{font:inherit;color:var(--ink);border:1px solid var(--edge);cursor:pointer;background:#00000059;border-radius:8px;justify-self:start;padding:7px 16px;font-size:13px;font-weight:600}.settings-danger:hover{border-color:#d9534f}.inv-list{gap:4px;display:grid}.inv-row{text-align:left;width:100%;font:inherit;color:var(--ink);background:#ffffff0a;border:1px solid #0000;border-radius:6px;align-items:baseline;gap:8px;padding:7px 9px;display:flex}.inv-row.inert{opacity:.82}.inv-row.equipped{background:#d8a44129}.inv-name{flex-direction:column;flex:1;gap:2px;display:flex}.inv-stat{opacity:.7;font-size:11px}.inv-tag{color:var(--accent);font-size:11px}.inv-qty{opacity:.7;font-variant-numeric:tabular-nums;font-size:12px}.inv-action{font:inherit;color:#1a1206;background:var(--accent);cursor:pointer;border:0;border-radius:6px;flex-shrink:0;padding:5px 12px;font-weight:600}.inv-action:hover{filter:brightness(1.08)}.craft-away{color:#e2b15f;margin-bottom:8px;font-size:12px}.craft-job{opacity:.7;margin-bottom:8px;font-size:12px}.craft-row{border:1px solid var(--edge);background:#ffffff0a;border-radius:8px;gap:6px;padding:10px;display:grid}.craft-row+.craft-row{margin-top:8px}.craft-name{font-weight:600}.craft-stat{opacity:.7;font-size:11px;font-weight:400}.craft-row.locked{opacity:.55}.craft-meta{opacity:.65;font-size:11px}.craft-meta.lacking{color:#e2705f;opacity:1}.craft-inputs{flex-wrap:wrap;gap:6px;display:flex}.craft-input{border:1px solid var(--edge);font-variant-numeric:tabular-nums;border-radius:999px;padding:2px 7px;font-size:11px}.craft-input.lacking{color:#e2705f;border-color:#e2705f80}.craft-button{font:inherit;color:#1a1206;background:var(--accent);cursor:pointer;border:0;border-radius:6px;justify-self:start;padding:6px 16px;font-weight:600}.craft-button:disabled{color:var(--ink);opacity:.55;cursor:default;background:#ffffff14}.npc-tabs{border-bottom:1px solid var(--edge);gap:4px;margin-bottom:10px;display:flex}.npc-tab{font:inherit;color:var(--ink);opacity:.6;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:1;padding:7px 4px;font-size:12px}.npc-tab.active{opacity:1;color:var(--accent);border-bottom-color:var(--accent)}.npc-tab-craft{opacity:1;color:var(--accent);font-weight:600}.npc-stepper{align-items:center;gap:5px;margin-bottom:10px;display:flex}.npc-stepper-label{opacity:.6;margin-right:auto;font-size:11px}.npc-qty{min-width:32px;font:inherit;color:var(--ink);border:1px solid var(--edge);cursor:pointer;background:#ffffff0d;border-radius:6px;padding:4px 8px;font-size:12px}.npc-qty.active{color:#1a1206;background:var(--accent);border-color:var(--accent)}.npc-list{gap:8px;display:grid}.npc-row{border:1px solid var(--edge);background:#ffffff0a;border-radius:8px;gap:6px;padding:10px;display:grid}.npc-row.done{opacity:.6}.npc-item{font-weight:600}.npc-meta{opacity:.65;font-variant-numeric:tabular-nums;font-size:11px}.npc-trade{font:inherit;color:#1a1206;background:var(--accent);cursor:pointer;border:0;border-radius:6px;justify-self:start;padding:6px 16px;font-weight:600}.npc-trade:disabled{color:var(--ink);opacity:.55;cursor:default;background:#ffffff14}.job-row{gap:5px;display:grid}.job-row+.job-row{margin-top:12px}.job-head{justify-content:space-between;align-items:baseline;display:flex}.job-name{font-weight:600}.job-level{color:var(--accent);font-size:12px}.job-bar{border:1px solid var(--edge);background:#0000006b;border-radius:999px;height:8px;overflow:hidden}.job-bar-fill{background:linear-gradient(90deg, #b7842c, var(--accent));height:100%}.job-xp{opacity:.62;font-variant-numeric:tabular-nums;font-size:11px}.topbar{top:calc(10px + env(safe-area-inset-top));right:calc(12px + env(safe-area-inset-right));left:calc(12px + env(safe-area-inset-left));pointer-events:none;z-index:14;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex;position:absolute}.topbar>*{pointer-events:auto}.layout-toggle,.touch-chip{min-height:40px;font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--edge);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:999px;justify-content:center;align-items:center;gap:7px;padding:0 14px;font-weight:600;display:inline-flex}.layout-toggle:hover,.touch-chip:hover{border-color:var(--accent)}.condition-chip{cursor:default;font-variant-numeric:tabular-nums;padding:0 10px}.condition-chip:hover{border-color:inherit}.layout-toggle:focus-visible,.touch-chip:focus-visible,.touch-skill:focus-visible,.touch-interact:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.layout-toggle-icon{opacity:.85;font-size:15px;line-height:1}@media (width<=379px){html[data-layout=mobile] .topbar{gap:6px}html[data-layout=mobile] .layout-toggle,html[data-layout=mobile] .touch-chip{gap:5px;min-height:36px;padding:0 9px;font-size:13px}html[data-layout=mobile] .condition-chip{padding:0 7px}html[data-layout=mobile] .topbar .layout-toggle-label,html[data-layout=mobile] .topbar .chip-label{display:none}html[data-layout=mobile] .layout-toggle-icon{font-size:13px}}.mobile-only,.touch-actions{display:none}.touch-skills{gap:12px;display:flex}.touch-skill,.touch-interact{font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--edge);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:14px;font-weight:600}.touch-skill{width:78px;height:78px;padding:4px;font-size:12px;line-height:1.2;position:relative;overflow:hidden}.touch-skill:before{content:attr(data-slot);opacity:.6;z-index:1;font-size:11px;font-weight:400;position:absolute;top:4px;left:8px}.touch-skill .skill-sweep{z-index:-1}.touch-skill.cooling{cursor:default;opacity:.85}.touch-skill:active,.touch-interact:active,.touch-chip:active{border-color:var(--accent);background:#d8a44138}.touch-interact{color:#1a1409;background:var(--accent);border-color:#0000;min-height:56px;padding:0 22px;font-size:15px}.touch-interact:disabled{color:var(--ink);background:var(--panel);border-color:var(--edge);opacity:.42;cursor:default}.joystick{left:calc(20px + env(safe-area-inset-left));bottom:calc(24px + env(safe-area-inset-bottom));pointer-events:auto;touch-action:none;-webkit-tap-highlight-color:transparent;z-index:13;width:140px;height:140px;position:absolute}.joystick-base{border:1px solid var(--edge);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0a0c126b;border-radius:50%;position:absolute;inset:0}.joystick-knob{background:#f3efe68c;border:1px solid #ffffff59;border-radius:50%;width:60px;height:60px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 4px 14px #00000073}.joystick.active .joystick-knob{background:#d8a441d9}html[data-layout=mobile] .mobile-only{display:inline-flex}html[data-layout=mobile] .hud{padding:calc(62px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left));font-size:15px}html[data-layout=mobile] .hud-area{font-size:21px}html[data-layout=mobile] .hud-hp{width:190px;height:22px}html[data-layout=mobile] .hud-hp-text{font-size:13px}html[data-layout=mobile] .hud-rest{max-width:62vw;font-size:13px}html[data-layout=mobile] .hud-status{max-width:62vw;font-size:14px}html[data-layout=mobile] .hud-prompt{font-size:16px}html[data-layout=mobile] .hud-quest{max-width:62vw}html[data-layout=mobile] .hud-quest-name{font-size:12px}html[data-layout=mobile] .hud-quest-step{font-size:14px}html[data-layout=mobile] .hud-toast{padding:9px 16px;font-size:15px}html[data-layout=mobile] .hud-toasts{bottom:calc(190px + env(safe-area-inset-bottom))}html[data-layout=mobile] .hud-cast{bottom:calc(190px + env(safe-area-inset-bottom));width:220px}html[data-layout=mobile] .skillbar{display:none}html[data-layout=mobile] .touch-actions{right:calc(16px + env(safe-area-inset-right));bottom:calc(24px + env(safe-area-inset-bottom));pointer-events:auto;z-index:13;flex-direction:column;align-items:flex-end;gap:12px;display:flex;position:absolute}html[data-layout=mobile] .panel,html[data-layout=mobile] .panel-npc,html[data-layout=mobile] .panel+.panel,html[data-layout=mobile] .panel+.panel+.panel{z-index:16;background:#12141af7;border-bottom:0;border-left:0;border-right:0;border-radius:16px 16px 0 0;width:100%;max-height:72vh;inset:auto 0 0;box-shadow:0 -14px 40px #0000008c}html[data-layout=mobile] .panel-head{padding:10px 8px 10px 16px}html[data-layout=mobile] .panel-head h2{font-size:15px}html[data-layout=mobile] .panel-key{display:none}html[data-layout=mobile] .panel-close{opacity:.85;border:1px solid var(--edge);border-radius:12px;place-items:center;min-width:48px;min-height:48px;font-size:30px;display:grid}html[data-layout=mobile] .panel-body{padding:12px 16px calc(18px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch;font-size:15px}html[data-layout=mobile] .inv-row{min-height:48px;padding:10px 12px;font-size:15px}html[data-layout=mobile] .inv-action{min-height:40px;padding:0 16px;font-size:15px}html[data-layout=mobile] .craft-button,html[data-layout=mobile] .npc-trade{min-height:48px;padding:0 22px;font-size:15px}html[data-layout=mobile] .npc-tab{min-height:48px;font-size:14px}html[data-layout=mobile] .npc-qty{min-width:48px;min-height:44px;font-size:15px}html[data-layout=mobile] .npc-row,html[data-layout=mobile] .craft-row{padding:12px}html[data-layout=mobile] .skill:hover{border-color:var(--edge)}html[data-layout=mobile] .settings-opt{min-height:44px;padding:0 16px;font-size:15px}html[data-layout=mobile] .settings-danger{min-height:48px;padding:0 22px;font-size:15px}html[data-layout=mobile] .settings-range{height:44px}html[data-layout=mobile] .settings-row>label,html[data-layout=mobile] .settings-note{font-size:13px}html[data-layout=mobile] .layout-toggle:hover,html[data-layout=mobile] .touch-chip:hover{border-color:var(--edge)}html[data-layout=mobile][data-panel-open] .touch-actions,html[data-layout=mobile][data-panel-open] .joystick{display:none}html[data-layout=mobile] .hud-death{text-align:center;padding:0 24px;font-size:19px}@supports (height:100dvh){html[data-layout=mobile] #app{height:100dvh}html[data-layout=mobile] .panel{max-height:72dvh}}
