:root{--parch: rgba(10, 8, 16, .92);--parch-hi: rgba(255, 255, 255, .08);--parch-dark: rgba(255, 255, 255, .04);--ink: #f4ead2;--ink-soft: #a89e8a;--frame: #ffd24a;--frame-dark: rgba(0, 0, 0, .6);--slot: rgba(255, 255, 255, .05);--slot-hi: rgba(255, 255, 255, .1);--slot-edge: rgba(255, 255, 255, .16);--line: rgba(255, 255, 255, .12);--accent: #ff6a3a;--gold: #ffd24a;--ok: #7ad66a;--locked: #b48ad0;--veil: rgba(4, 3, 8, .35)}#ui .panel{width:min(400px,calc(100vw - 32px));box-sizing:border-box;max-height:84vh;overflow:visible;padding:12px 16px 16px;color:var(--ink);text-shadow:1px 1px 0 #000;font-size:13px;background:var(--parch);border:2px solid var(--frame);border-radius:0;box-shadow:0 6px 20px #00000073;backdrop-filter:blur(4px)}#ui .panel.wide{width:min(820px,calc(100vw - 32px))}#ui .panel.fit{width:max-content;min-width:min(400px,calc(100vw - 32px));max-width:calc(100vw - 32px);max-height:none}#ui .panel.fit .panel-body{max-height:none;overflow:visible}#ui .panel .price{color:var(--ink);font-weight:700}#ui .panel .price.short{color:var(--accent)}#ui .panel-body{max-height:calc(84vh - 80px);overflow-y:auto;padding:2px 4px;scrollbar-color:var(--slot-edge) transparent}#ui .panel-head{display:flex;justify-content:flex-start;align-items:center;gap:8px;margin:0 0 12px;padding-bottom:8px;font-size:15px;letter-spacing:1px;text-transform:uppercase;color:var(--frame);border-bottom:1px solid var(--line)}#ui .panel-icon{display:inline-flex;color:var(--frame)}#ui .panel-title{font-weight:700}#ui .panel-close{display:inline-flex;margin-left:auto;padding:3px;color:var(--ink-soft);background:none;border:1px solid transparent;cursor:pointer}#ui .panel-close:hover{color:var(--accent);border-color:var(--accent)}#ui .panel-info{display:inline-flex;color:var(--ink-soft);cursor:help}#ui .panel .small{font-size:12px}#ui .panel .dim{opacity:.65}#ui .panel .short,#ui .panel .error{color:var(--accent)}#ui .panel .ok{color:var(--ok)}#ui .panel p{margin:4px 0}#ui .panel .shop-name,.section-title{margin:10px 0 6px;font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--ink-soft)}#ui .panel .bar{background:var(--slot);border-color:var(--slot-edge)}#ui .panel .request,#ui .panel .up-node,#ui .panel .kit{background:var(--parch-dark);border-color:var(--line)}.center{text-align:center;justify-content:center}#ui .panel .btn{color:var(--ink);text-shadow:1px 1px 0 #000;background:var(--slot);border:1px solid var(--slot-edge);border-radius:2px;box-shadow:none;padding:4px 10px}#ui .panel .btn:hover:not(:disabled){color:var(--gold);background:var(--slot-hi);border-color:var(--gold)}#ui .panel .btn:disabled{color:var(--ink-soft);background:transparent;border-color:var(--line);opacity:.6}#ui .panel .btn.ghost{color:var(--ink);background:transparent;border-color:var(--line)}#ui .panel .btn.ghost.on{color:var(--gold);background:#ffd24a1a;border-color:var(--gold)}.diamond{position:relative;width:52px;height:52px;padding:0;border:none;background:none;cursor:pointer;pointer-events:auto}.diamond:before{content:"";position:absolute;inset:7px;transform:rotate(45deg);background:#0a0810bf;border:1px solid var(--slot-edge);border-radius:2px}.diamond:hover:before{border-color:var(--ink-soft)}.diamond.on:before{border:2px solid var(--gold)}.diamond.small{width:44px;height:44px}.diamond-in{position:relative;display:flex;align-items:center;justify-content:center;height:100%;color:var(--ink)}.diamond.on .diamond-in{color:var(--gold)}.diamond.small .diamond-in{color:var(--accent)}.glyph{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.dock{position:absolute;right:6px;bottom:90px;display:flex;flex-direction:column;gap:2px;pointer-events:auto}.slot-grid{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.tile{position:relative;box-sizing:border-box;width:56px;height:56px;display:flex;align-items:center;justify-content:center;color:var(--ink);text-shadow:1px 1px 0 #000;background:var(--slot);border:1px solid var(--slot-edge);border-radius:2px;pointer-events:auto}.tile.click{cursor:pointer}.tile.click:hover{background:var(--slot-hi);border-color:var(--ink-soft)}.tile.sel{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}.tile.using{border-color:var(--ok)}.tile.poor>.px-icon,.tile.poor>.ore-icon{opacity:.45;filter:grayscale(.6)}.tile-qty,.tile-tag{position:absolute;font-size:11px;font-weight:700;pointer-events:none}.tile-qty{right:3px;bottom:1px}.tile-tag{left:3px;top:0;color:var(--gold)}.ore-tile .ore-icon{transform:scale(2)}.icon-actions{display:flex;justify-content:center;gap:10px;margin-top:12px}#ui .panel .shop-top{justify-content:flex-end;font-size:15px}#ui .panel .shop-tabs{display:flex;align-items:center;gap:4px;margin:8px 0 12px;border-bottom:1px solid var(--line)}#ui .panel .shop-tab{margin-bottom:-1px;padding:5px 12px;font:inherit;font-weight:700;color:var(--ink-soft);text-shadow:inherit;background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer}#ui .panel .shop-tab:hover{color:var(--ink)}#ui .panel .shop-tab.on{color:var(--gold);border-bottom-color:var(--gold)}#ui .panel:has(.shop-grid){width:min(460px,calc(100vw - 32px))}#ui .panel:has(.shop-grid.wide){width:min(620px,calc(100vw - 32px))}#ui .panel .shop-grid{margin:0 auto}#ui .panel .shop-piece.poor .bag-cell{background:#a85a48}#ui .panel .shop-piece.poor:hover .bag-cell{background:#b8664f}#ui .panel .shop-piece.using .bag-cell{background:#8f9a5c}#ui .panel .shop-piece.sel .bag-cell{background:#dcac6c;box-shadow:inset 0 0 0 2px var(--gold)}#ui .panel .shop-piece.poor .bag-icon{opacity:.55;filter:grayscale(.5)}#ui .panel .shop-price,#ui .panel .shop-goal{position:absolute;top:2px;font-size:11px;font-weight:700;color:var(--gold);text-shadow:1px 1px 0 #000;pointer-events:none}#ui .panel .shop-price{left:3px;display:inline-flex;align-items:center;gap:1px}#ui .panel .shop-price.short{color:#ffb3a3}#ui .panel .shop-goal{right:4px}.shop-action{position:sticky;bottom:0;display:flex;align-items:center;gap:8px;margin-top:14px;padding:8px 10px;background:#0a0810eb;border:1px solid var(--line);border-radius:0}.shop-action .grow{flex:1}#ui .panel .tier-row{display:flex;align-items:center;gap:8px;margin:6px 0;padding:6px 8px;background:var(--parch-dark);border:1px solid var(--line);border-radius:0}#ui .panel .tier-row .tier-text{flex:1;min-width:0}#ui .panel .tier-row .locked{color:var(--locked)}#ui .panel .tier-row .short{color:var(--accent)}#ui .panel .tier-row.blocked>:not(.btn){opacity:.6}#ui .panel .anvil-pick{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 16px 32px;text-align:center}#ui .panel .anvil-pick-ghost{opacity:.35;filter:grayscale(.6);animation:anvil-bob 2.4s ease-in-out infinite}#ui .panel .anvil-pick-lines{display:flex;gap:8px}#ui .panel .anvil-pick-lines .btn{display:flex;align-items:center;gap:6px;padding:2px 10px}@keyframes anvil-bob{50%{transform:translateY(-6px)}}#ui .panel .anvil{display:flex;flex-direction:column;align-items:center;gap:8px;padding:0 0 2px;background:radial-gradient(circle at 50% 38%,rgba(245,166,35,.14),transparent 55%)}#ui .panel .anvil-max{gap:6px;padding:40px 0}#ui .panel .anvil-target{display:flex;flex-direction:column;align-items:center;gap:4px}#ui .panel .anvil-target-row{display:flex;align-items:center;gap:10px}#ui .panel .anvil-from{opacity:.7;line-height:0}#ui .panel .anvil-to{line-height:0;filter:drop-shadow(0 0 8px rgba(255,210,74,.35))}#ui .panel .anvil-to-name{display:flex;align-items:center;gap:4px;font-size:15px;color:var(--gold)}#ui .panel .anvil-goal{padding:1px 4px;opacity:.6}#ui .panel .anvil-goal.on{opacity:1;color:var(--gold)}#ui .panel .anvil-tray{display:flex;flex-direction:column;gap:4px}#ui .panel .anvil-tray .bar{width:100%;height:4px}#ui .bag-slot .slot-ghost{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:.16;filter:grayscale(.5);pointer-events:none}#ui .panel .anvil-actions{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:2px}#ui .panel .anvil-cost{display:flex;align-items:center;gap:4px;font-size:15px}#ui .panel .anvil-cost.short b{color:var(--accent)}#ui .panel .anvil-spin{min-width:170px;padding:8px 28px;font-size:18px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#2a1606;background:linear-gradient(180deg,#ffe58a,#ffb52e 55%,#e07b12);border:2px solid #fff1b8;border-radius:6px;box-shadow:0 3px #8a4a0a,0 0 18px #ffb42e73;text-shadow:0 1px 0 rgba(255,255,255,.5);transition:transform .08s,box-shadow .08s,filter .15s}#ui .panel .anvil-spin.ready{animation:anvil-ready 1.6s ease-in-out infinite}#ui .panel .anvil-spin.ready:hover{transform:translateY(-1px);filter:brightness(1.08)}#ui .panel .anvil-spin.ready:active{transform:translateY(2px);box-shadow:0 1px #8a4a0a,0 0 10px #ffb42e66}#ui .panel .anvil-spin:disabled{color:var(--ink-soft);background:#2b2733;border-color:var(--line);box-shadow:none;text-shadow:none;opacity:.8}@keyframes anvil-ready{50%{box-shadow:0 3px #8a4a0a,0 0 30px #ffbe3ccc}}#ui .panel .anvil.phase-ok .anvil-to{animation:anvil-pop .7s cubic-bezier(.2,1.6,.4,1);filter:drop-shadow(0 0 14px rgba(122,214,106,.9))}#ui .panel .anvil.phase-ok .anvil-to-name{color:var(--ok)}#ui .panel .anvil.phase-bad .anvil-from{opacity:1;animation:anvil-thud .6s ease-out}#ui .panel .anvil.phase-bad .anvil-to{opacity:.35;filter:grayscale(1);transition:opacity .3s}@keyframes anvil-pop{0%{transform:scale(.6)}60%{transform:scale(1.35)}to{transform:scale(1)}}@keyframes anvil-thud{0%{transform:translateY(-18px) rotate(-20deg);opacity:0}60%{transform:translateY(3px) rotate(6deg);opacity:1}to{transform:none}}#ui .anvil-gauge{position:relative;flex:none;width:248px;height:248px}#ui .anvil-gauge svg{display:block;filter:drop-shadow(0 0 14px rgba(245,166,35,.3))}#ui .anvil-gauge.spinning svg{animation:anvil-halo .6s ease-in-out infinite alternate}#ui .anvil-gauge.ok svg{animation:anvil-flash-ok .9s ease-out;filter:drop-shadow(0 0 22px rgba(110,220,120,.7))}#ui .anvil-gauge.bad svg{animation:anvil-shake .45s ease-in-out;filter:drop-shadow(0 0 16px rgba(230,90,60,.55))}@keyframes anvil-halo{to{filter:drop-shadow(0 0 26px rgba(255,190,60,.6))}}@keyframes anvil-flash-ok{0%{filter:drop-shadow(0 0 0 rgba(110,220,120,0)) brightness(1.8)}to{filter:drop-shadow(0 0 22px rgba(110,220,120,.7)) brightness(1)}}@keyframes anvil-shake{0%,to{transform:none}20%{transform:translate(-8px) rotate(-2deg)}40%{transform:translate(7px) rotate(2deg)}60%{transform:translate(-5px) rotate(-1deg)}80%{transform:translate(3px)}}#ui .anvil-gauge .g-rim{fill:#15121c;stroke:#2a2533;stroke-width:2}#ui .anvil-gauge .g-track{fill:none;stroke:#2b2733;stroke-width:20}#ui .anvil-gauge .g-mark{stroke:#6d6678;stroke-width:1.5}#ui .anvil-gauge .g-mark.big{stroke:#a39cae;stroke-width:2}#ui .anvil-gauge .g-arc{fill:none;stroke:#f5a623;stroke-width:20;transition:stroke-dasharray .25s}#ui .anvil-gauge .g-ceiling{stroke:var(--ink-soft);stroke-width:2;stroke-dasharray:2 2}#ui .anvil-gauge .g-needle{stroke:#fff;stroke-width:2.5}#ui .anvil-gauge .g-tip{fill:var(--gold)}#ui .anvil-gauge .g-center{position:absolute;top:0;left:0;right:0;height:248px;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}#ui .anvil-gauge .g-pct{font-size:38px;color:var(--ok)}#ui .anvil-gauge .g-state{font-size:15px;color:var(--ink)}#ui .anvil-gauge.ok .g-arc,#ui .anvil-gauge.ok .g-tip{stroke:var(--ok);fill:var(--ok)}#ui .anvil-gauge.ok .g-arc{fill:none}#ui .anvil-gauge.ok .g-state{color:var(--ok);font-weight:700}#ui .anvil-gauge.bad .g-arc{stroke:#8a5a2a}#ui .anvil-gauge.bad .g-state,#ui .anvil-gauge.bad .g-pct{color:var(--accent)}#ui .anvil-gauge .g-burst{position:absolute;left:124px;top:124px;width:0;height:0;pointer-events:none}#ui .anvil-gauge .g-burst span{position:absolute;left:-6px;top:-6px;width:12px;height:12px;background:var(--gold);box-shadow:0 0 14px 3px #ffb52e;opacity:0;animation:anvil-spark 1.3s ease-out forwards}#ui .anvil-gauge .g-burst span:nth-child(3n){background:#fff6d0;width:8px;height:8px}#ui .anvil-gauge .g-burst span:nth-child(4n){background:var(--ok);box-shadow:0 0 14px 3px #6edc78cc}#ui .anvil-gauge .g-burst span:nth-child(5n){width:16px;height:16px;left:-8px;top:-8px}@keyframes anvil-spark{0%{opacity:1;transform:rotate(var(--a)) translateY(0) scale(1.8)}70%{opacity:1}to{opacity:0;transform:rotate(var(--a)) translateY(calc(-1 * var(--d))) scale(.3)}}#ui .anvil-gauge .g-burst.bad span{width:10px;height:10px;left:-5px;top:-5px;background:#5a4a44;box-shadow:0 0 8px 2px #e65a3c99;animation:anvil-shard 1.2s cubic-bezier(.2,.7,.4,1) forwards}#ui .anvil-gauge .g-burst.bad span:nth-child(3n){background:#e65a3c;box-shadow:0 0 12px 3px #ff6e32cc;width:8px;height:8px}#ui .anvil-gauge .g-burst.bad span:nth-child(4n){background:#8a7f7a;width:14px;height:6px}@keyframes anvil-shard{0%{opacity:1;transform:translateY(0) rotate(var(--a)) translateY(0) rotate(0) scale(1.6)}45%{opacity:1;transform:translateY(0) rotate(var(--a)) translateY(calc(-1 * var(--d))) rotate(180deg) scale(1)}to{opacity:0;transform:translateY(var(--fall)) rotate(var(--a)) translateY(calc(-1 * var(--d))) rotate(400deg) scale(.5)}}#ui .panel .bag-item.anvil-pickable .bag-cell{animation:anvil-pickable 1.4s ease-in-out infinite;cursor:pointer}#ui .panel .bag-item.anvil-target .bag-cell{box-shadow:inset 0 0 0 2px var(--gold),0 0 10px #ffd24a8c;background-color:#ffd24a24}@keyframes anvil-pickable{50%{box-shadow:inset 0 0 0 2px #ffd24ab3}}@media(prefers-reduced-motion:reduce){#ui .panel .anvil-pick-ghost,#ui .panel .anvil-spin.ready,#ui .panel .anvil.phase-ok .anvil-to,#ui .panel .anvil.phase-bad .anvil-from,#ui .anvil-gauge svg,#ui .anvil-gauge.ok .g-note,#ui .anvil-gauge .g-burst span,#ui .panel .bag-item.anvil-pickable .bag-cell{animation:none!important}}.px-icon-graded{position:relative;display:inline-block;vertical-align:middle;line-height:0}.px-icon-graded .tier-grade{position:absolute;right:-2px;bottom:-2px;padding:0 2px;font:700 9px/1.1 ui-monospace,Cascadia Mono,Menlo,monospace;color:#ffd24a;background:#0a0810d9;border:1px solid rgba(255,210,74,.6);pointer-events:none}#ui .panel .shop-tab .tab-count{margin-left:6px;padding:0 5px;font-size:11px;color:#1a1408;text-shadow:none;background:var(--gold);border-radius:7px}#ui .panel .up-track+.up-track,#ui .panel .forge-log+.up-track{margin-top:14px}#ui .panel .up-title{margin-bottom:6px;font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--ink-soft)}#ui .panel .up-title .small{text-transform:none;letter-spacing:0;font-weight:400}#ui .panel .up-row{display:flex;flex-wrap:wrap;align-items:stretch;row-gap:8px}#ui .panel .up-node{display:flex;flex:1 1 220px;flex-direction:column;gap:5px;padding:8px 10px;border:1px solid var(--line)}#ui .panel .up-node.active{border-color:var(--gold)}#ui .panel .up-node.done{border-color:var(--ok)}#ui .panel .up-node.locked{opacity:.55}#ui .panel .up-head{display:flex;align-items:center;gap:8px}#ui .panel .up-pip{flex:none;width:8px;height:8px;transform:rotate(45deg);border:1px solid var(--ink-soft)}#ui .panel .up-node.active .up-pip{border-color:var(--gold)}#ui .panel .up-node.done .up-pip{background:var(--ok);border-color:var(--ok)}#ui .panel .up-done{color:var(--ok)}#ui .panel .up-progress,#ui .panel .up-foot,#ui .panel .forge-log{display:flex;flex-wrap:wrap;align-items:center;gap:8px}#ui .panel .up-progress .bar{flex:1;min-width:80px}#ui .panel .up-foot .ore-icon{width:12px;height:12px}#ui .panel .up-mine{margin-left:auto}#ui .panel .up-link{flex:0 0 18px;align-self:center;height:2px;background:var(--line)}#ui .panel .up-link.on{background:var(--gold)}#ui .panel .forge-log{margin-top:6px;gap:12px}#ui .panel .requests-empty{padding:18px 0;text-align:center}#ui .panel .request-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px}#ui .panel .request-meta .glyph{vertical-align:-2px}#ui .panel .request.village{border-left-color:var(--accent)}#ui .panel .request.village .glyph{color:var(--accent);vertical-align:-2px}.sale-total{display:flex;align-items:center;justify-content:center;gap:6px;margin:14px 0 6px;font-size:22px}.sell-list{display:flex;flex-direction:column;gap:2px;min-width:340px}.sell-row{display:grid;grid-template-columns:1fr 44px 56px 48px auto;align-items:center;gap:8px;padding:3px 6px;background:var(--slot);border:1px solid transparent}.sell-row.off{opacity:.4}#ui .panel[data-drop=market]{width:min(640px,calc(100vw - 32px))}.market-list .sell-row{grid-template-columns:minmax(0,1fr) 40px 64px 52px 44px 64px 72px}.market-list .sell-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#ui .panel .market-list .btn{padding:2px 8px}.sell-tools{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.sell-row:not(.sell-head):hover{border-color:var(--line)}.sell-row.sell-head{background:transparent;padding-bottom:4px;border-bottom:1px solid var(--line)}#ui .panel .sell-sort{display:inline-flex;align-items:center;gap:3px;padding:0;color:var(--ink-soft);background:none;border:0;box-shadow:none;font-size:12px;cursor:pointer}#ui .panel .sell-sort.num{justify-content:flex-end}#ui .panel .sell-sort.on,#ui .panel .sell-sort:hover{color:var(--gold)}.sell-row .sell-name{display:flex;align-items:center;gap:6px;pointer-events:auto}.sell-row .num{text-align:right;white-space:nowrap}.sell-row .num.gold{color:var(--gold)}.sell-row .num .px-icon{vertical-align:-2px}.sell-last{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:8px}.sale-goal{display:flex;align-items:center;justify-content:center;gap:6px;pointer-events:auto}#ui .panel .bag-grid{background:var(--slot);border:1px solid var(--slot-edge);border-radius:0;padding:0}.bag-slot,#ui .panel .bag-cell{box-sizing:border-box;border:none;border-radius:0;box-shadow:inset 0 0 0 1px var(--line)}.bag-slot{position:absolute;background:var(--slot);pointer-events:none}#ui .panel .bag-cell{background:#ffffff1c}#ui .panel .bag-item:hover .bag-cell{background:#ffffff2b}#ui .panel .bag-key,#ui .panel .bag-qty{color:var(--ink);text-shadow:1px 1px 0 #000}#ui .panel .bag-none{max-width:360px}#ui .panel .bag-foot{display:flex;align-items:center;gap:8px;margin-top:12px}#ui .status{width:auto;gap:5px;padding:6px 10px 6px 6px;background:#0a08108c;border-radius:6px}#ui .status .status-row{pointer-events:auto;cursor:default}#ui .status .bar{width:96px}#ui .status .bag-row{cursor:pointer}#ui .status .forge-badge,#ui .status .speed-row.slow,#ui .char-stat.speed-row.slow{color:var(--gold)}#ui .status .speed-row.heavy,#ui .char-stat.speed-row.heavy{color:#e05a4a}#ui .status .ok{color:#7ad66a}#ui .ore-row{pointer-events:auto}#ui .hot{background:#0a0810bf;border:1px solid var(--slot-edge);border-radius:2px}#ui .hot.active{border:2px solid var(--gold)}#ui .hot.dig-mode{margin-left:6px;flex-direction:column}#ui .hot.dig-mode.on{border-color:#9fd8ff}#ui .dig-mode-icon{font-size:16px;line-height:1}#ui .hot.dig-mode.on .dig-mode-icon{color:#9fd8ff}#ui .dig-mode-label{font-size:9px;opacity:.8}#ui .radial-veil{position:fixed;inset:0;z-index:90;pointer-events:auto;background:var(--veil)}#ui .radial{position:absolute;width:0;height:0;animation:radial-in .12s ease-out}@keyframes radial-in{0%{opacity:0;transform:scale(.8)}}#ui .radial-hub,#ui .radial-icon{display:flex;align-items:center;justify-content:center;border-radius:50%;background:#0a0810d9;border:2px solid var(--slot-edge)}#ui .radial-hub{position:absolute;left:-30px;top:-30px;width:60px;height:60px;box-sizing:border-box}#ui .radial-hub.busy{border-color:transparent;background:linear-gradient(#0a0810eb,#0a0810eb) padding-box,conic-gradient(var(--gold) var(--p),var(--slot-edge) 0) border-box}#ui .radial-opt{position:absolute;display:flex;flex-direction:column;align-items:center;gap:3px;transform:translate(-50%,-26px);transition:transform 80ms ease-out;cursor:pointer}#ui .radial-icon{width:52px;height:52px;box-sizing:border-box}#ui .radial-label{padding:1px 6px;color:var(--ink);background:var(--parch);border:1px solid var(--line);border-radius:0;font-size:11px;white-space:nowrap}#ui .radial-opt.focus{transform:translate(-50%,-26px) scale(1.1)}#ui .radial-opt.focus .radial-icon{border-color:var(--gold)}#ui .radial-opt.focus .radial-label{color:var(--gold);border-color:var(--gold)}#ui .ping-radial .radial-icon img{image-rendering:pixelated}#ui .ping-radial .hot-key{position:static;margin-right:2px}#ui .ping-back{font-size:28px;line-height:1;color:var(--ink)}#ui .radial-opt.blocked .radial-icon img,#ui .radial-opt.blocked .radial-label{opacity:.5}#ui .radial-opt.blocked.focus .radial-icon{border-color:var(--accent)}.tooltip{position:fixed;z-index:100;max-width:260px;padding:10px;color:var(--ink);text-shadow:1px 1px 0 #000;font-size:12px;background:#0a0810eb;border:1px solid var(--frame);border-radius:0;box-shadow:0 0 14px #00000073;pointer-events:none}.tooltip>:last-child,.tooltip>div>:last-child{margin-bottom:0}.tooltip:has(.tip-head>:is(.px-icon,.ore-icon)){min-height:36px;padding-left:56px}.tooltip .tip-head>:is(.px-icon,.ore-icon){position:absolute;top:10px;left:10px}.tooltip .tip-head>.ore-icon{top:22px;left:22px;transform:scale(1.8)}.tip-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.tip-title{font-size:14px;font-weight:700}.tip-sub{color:var(--ink-soft);font-size:11px}.tip-effect{margin:4px 0}.tip-row{display:flex;justify-content:space-between;gap:12px;padding:1px 0;border-top:1px solid var(--line)}.tip-note{margin-top:5px;color:var(--ink-soft);font-style:italic}.tip-icons{display:flex;gap:4px;margin:4px 0}.tooltip .slots{width:auto;margin:4px 0}.tooltip .short{color:var(--accent)}.debug-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}#ui .panel .debug-qty{width:80px;padding:3px 6px;font:inherit;color:var(--ink);background:var(--slot);border:1px solid var(--slot-edge);border-radius:2px}#ui .hot.over{outline:2px dashed var(--gold);outline-offset:2px}#ui .drag-layer{position:fixed;z-index:1000;pointer-events:none;transform:translate(-18px,-18px);display:flex;flex-direction:column;align-items:flex-start;gap:4px}#ui .drag-icon{position:relative;display:flex;filter:drop-shadow(2px 3px 0 rgba(0,0,0,.45))}#ui .drag-qty{position:absolute;right:-4px;bottom:-4px;font-size:11px;font-weight:700}#ui .drag-why{margin-left:30px;padding:2px 6px;color:var(--ink);background:#0a0810e6;border:1px solid var(--accent);border-radius:3px;white-space:nowrap}#ui .hot.drop-ok{outline:1px dashed var(--ok);outline-offset:2px}#ui .hot.over-bad{outline:2px dashed var(--accent);outline-offset:2px}#ui .hot.lifted>.px-icon{opacity:.35}#ui .panel .bag-item.merge .bag-cell{box-shadow:inset 0 0 0 2px var(--ok)}#ui .panel .bag-item.landed{animation:bag-land .15s ease-out}@keyframes bag-land{0%{transform:scale(1.12)}to{transform:scale(1)}}#ui .backdrop{position:absolute;inset:0;background:#00000059;pointer-events:none;animation:backdrop-in .12s ease-out}@keyframes backdrop-in{0%{opacity:0}}#ui .panel-pair{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:18px;width:max-content;max-width:calc(100vw - 16px);pointer-events:none}#ui .panel-pair>.panel{position:relative;top:auto;left:auto;transform:none;pointer-events:auto}#ui .panel-pair>.panel.wide{width:min(760px,calc(100vw - 340px))}#ui .btn.drag-src:not(:disabled){cursor:grab}#ui .panel.drop-ok{outline:2px dashed var(--ok);outline-offset:4px}#ui .panel.drop-bad{outline:2px dashed var(--accent);outline-offset:4px}#ui .drag-why.ok{border-color:var(--ok)}#ui .place-hint{transform:none}#ui .place-hint .drag-why{margin-left:0}#ui .rhythm{position:absolute;left:50%;bottom:92px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 12px 10px;color:var(--ink);text-shadow:1px 1px 0 #000;background:var(--parch);border:2px solid var(--frame);border-radius:0;pointer-events:auto}#ui .rhythm-head{display:flex;justify-content:space-between;gap:18px;width:100%;font-weight:700}#ui .rhythm-keys{font-weight:400;color:var(--ink-soft)}#ui .rhythm-bar{position:relative;height:28px;overflow:hidden;background:var(--slot);border:1px solid var(--slot-edge);cursor:pointer}#ui .rhythm-zone{position:absolute;top:0;bottom:0}#ui .rhythm-zone.good{background:#ffd24a40}#ui .rhythm-zone.perfect{background:#ffd24a99;box-shadow:0 0 0 1px var(--gold)}#ui .rhythm-mark{position:absolute;top:3px;bottom:3px;width:6px;margin-left:-3px;background:var(--ink);border:1px solid var(--frame-dark)}#ui .rhythm-mark.perfect{background:var(--gold)}#ui .rhythm-mark.good{background:var(--ok)}#ui .rhythm-mark.miss{background:var(--accent);opacity:.5}#ui .rhythm-pop{position:absolute;top:5px;transform:translate(-50%);font-weight:700;white-space:nowrap;pointer-events:none;animation:rhythm-pop .15s ease-out}#ui .rhythm-pop.perfect{color:var(--gold);text-shadow:1px 1px 0 var(--frame-dark)}#ui .rhythm-pop.good{color:var(--ink);text-shadow:1px 1px 0 var(--frame-dark)}#ui .rhythm-pop.miss{color:var(--accent)}@keyframes rhythm-pop{0%{transform:translate(-50%) scale(1.4)}to{transform:translate(-50%) scale(1)}}#ui .rhythm-progress{width:100%;height:6px;background:var(--slot-edge)}#ui .rhythm-progress i{display:block;height:100%;background:var(--ok)}#ui .panel .site-input .bar{margin-top:3px}#ui .panel .site-actions{display:flex;align-items:center;gap:8px;margin-top:10px}#ui .panel .site-actions .grow{flex:1}#ui .panel .site-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}#ui .char-name{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:8px;font-size:18px}#ui .char-code{display:flex;flex-direction:column;align-items:center;gap:2px;margin:-4px 0 8px;text-align:center}#ui .char-code-row{display:flex;align-items:center;gap:8px}#ui .char-code-value{font-family:ui-monospace,Cascadia Mono,Menlo,Consolas,monospace;letter-spacing:.5px;user-select:all}#ui .char-name-input{font:inherit;font-weight:700;width:180px;color:var(--ink);background:var(--slot);border:1px solid var(--slot-edge);border-radius:2px;padding:1px 6px}#ui .char-stats{display:grid;gap:6px}#ui .char-stat{display:flex;align-items:center;gap:8px}#ui .char-stat .bar{flex:1}#ui .char-slot{display:flex;align-items:center;gap:10px;margin-bottom:6px}#ui .char-slot-label{display:grid}#ui .char-facts{display:grid;gap:2px}#ui .furnace-layout{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:start}#ui .furnace-col{display:flex;flex-direction:column;align-items:center;gap:8px}#ui .furnace-fuel{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:4px;padding-top:8px;border-top:1px dashed var(--line)}#ui .furnace-fire{align-self:stretch;padding:0 6px 8px;border-radius:8px}#ui .furnace-fire.lit>.tile:first-of-type{border-color:#e0782a;animation:furnace-glow 1.4s ease-in-out infinite alternate}@keyframes furnace-glow{0%{box-shadow:0 0 4px #ff8c2873}to{box-shadow:0 0 14px #ffaa3ce6}}#ui .furnace-progress{width:100%;max-width:220px}#ui .tile.empty>.px-icon,#ui .tile.empty>.ore-icon,#ui .tile.empty>svg{opacity:.3;filter:grayscale(.8)}#ui .furnace-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}@media(max-width:560px){#ui .furnace-layout{grid-template-columns:1fr}#ui .furnace-col{flex-direction:row;flex-wrap:wrap;justify-content:center}}#ui .panel .stock-action{flex-wrap:wrap}#ui .panel .stock-action .stock-info{flex-basis:100%}#ui .panel .shop-top .grow{flex:1}#ui .bag-wear{display:inline-block}#ui .bag-wear.drop-ok .tile{outline:2px dashed var(--ok);outline-offset:2px}#ui .bag-wear.drop-bad .tile{outline:2px dashed var(--accent);outline-offset:2px}#ui .panel:not(.wide):has(.store-grid){width:auto;min-width:min(360px,calc(100vw - 32px));max-width:calc(100vw - 32px)}#ui .panel .store-grid{margin:4px auto 8px}#ui .panel .store-piece.phantom .bag-cell{background:transparent;border-style:dashed;border-color:#8a7480}#ui .panel .store-piece.phantom .bag-icon{opacity:.4}#ui .panel .store-piece.poor .bag-cell{background:#5a3a36}#ui .panel .store-piece.sel .bag-cell{border-color:var(--gold)}#ui .panel .store-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 12px;pointer-events:none}#ui .game-menu{display:flex;flex-direction:column;gap:6px}#ui .panel .btn.menu-item{display:flex;align-items:center;gap:10px;padding:8px 12px;font-size:14px;text-align:left}#ui .menu-item span{flex:1}#ui .audio-settings{display:flex;flex-direction:column;gap:12px;width:520px;max-width:100%}#ui .audio-row{display:flex;align-items:center;gap:10px;font-size:14px}#ui .audio-row.master{padding-bottom:14px;border-bottom:1px solid var(--line)}#ui .audio-label{display:flex;flex-direction:column;flex:0 0 175px}#ui .audio-row input{flex:1;min-width:0;accent-color:var(--gold)}#ui .audio-value{flex:0 0 44px;text-align:right}#ui .audio-check{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:13px;accent-color:var(--gold)}#ui .menu-note{margin:12px 0 0;text-align:center}#ui .panel kbd{font:inherit;font-size:11px;padding:0 5px;color:var(--ink);background:#282018e6;border:1px solid var(--slot-edge);border-bottom-width:2px;white-space:nowrap}#ui .keys{display:grid;grid-template-columns:150px 1fr;gap:16px;min-height:300px}#ui .keys-tabs{display:flex;flex-direction:column;gap:4px;padding-right:12px;border-right:1px solid var(--line)}#ui .keys-tab{font:inherit;padding:7px 10px;text-align:left;color:var(--ink-soft);text-shadow:1px 1px 0 #000;background:none;border:1px solid transparent;cursor:pointer}#ui .keys-tab:hover{color:var(--ink);background:var(--slot)}#ui .keys-tab.on{color:var(--gold);background:var(--slot-hi);border-color:var(--slot-edge);border-left:2px solid var(--gold)}#ui .keys-head,#ui .keys-row{display:grid;grid-template-columns:1fr 120px 120px;gap:8px;align-items:center}#ui .keys-head{padding:0 6px 6px;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid var(--line)}#ui .keys-row{padding:5px 6px;border-bottom:1px solid var(--parch-dark)}#ui .keys-row:hover{background:var(--parch-dark)}#ui .keys-row.fixed .keys-what{color:var(--ink-soft)}#ui .keys-fixed{grid-column:2 / 4;display:flex;align-items:center;gap:4px}#ui .keys-lock{display:inline-flex;margin-left:4px;color:var(--ink-soft);opacity:.6}#ui .key-bind{font:inherit;font-size:12px;height:26px;padding:0 6px;color:var(--ink);text-shadow:1px 1px 0 #000;background:#282018e6;border:1px solid var(--slot-edge);border-bottom-width:3px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#ui .key-bind:hover{border-color:var(--gold);color:var(--gold)}#ui .key-bind.empty{color:var(--ink-soft);background:var(--slot);border-style:dashed;border-bottom-width:1px}#ui .key-bind.listening{color:var(--gold);border-color:var(--gold);animation:key-listen .9s ease-in-out infinite}@keyframes key-listen{50%{background:#ffd24a2e}}#ui .keys-foot{display:flex;align-items:center;gap:8px;margin-top:14px;padding-top:10px;border-top:1px solid var(--line)}#ui .keys-note{flex:1;color:var(--ink-soft)}#ui .keys-note.ok{color:var(--ok)}#ui .keys-note.warn{color:var(--gold)}@media(max-width:640px){#ui .keys{grid-template-columns:1fr}#ui .keys-tabs{flex-direction:row;flex-wrap:wrap;padding:0 0 8px;border-right:none;border-bottom:1px solid var(--line)}#ui .keys-head,#ui .keys-row{grid-template-columns:1fr 90px 90px}}.devlog{display:flex;flex-direction:column;gap:6px}.devlog-entry{background:var(--slot);border:1px solid var(--slot-edge)}.devlog-entry.open{border-color:var(--gold)}.devlog-head{display:flex;gap:8px;align-items:baseline;width:100%;padding:6px 8px;background:none;border:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.devlog-head:hover{background:var(--slot-hi)}.devlog-arrow{color:var(--gold);width:10px}.devlog-title{flex:1;font-weight:700}.devlog-meta{color:var(--ink-soft);white-space:nowrap}.devlog-version{color:var(--gold)}.devlog-body{padding:8px 22px 16px;font-size:15px;line-height:1.65}#ui .panel .devlog-body p{margin:0 0 18px;text-indent:2em;color:var(--ink)}#ui .panel .devlog-body p.lead{text-indent:0;font-size:1.15em;font-weight:700;color:var(--gold);padding-bottom:14px;border-bottom:1px solid var(--line)}.devlog-body strong{color:var(--gold)}.devlog-sign{margin-top:4px;text-align:right;font-style:italic;color:var(--ink-soft)}#ui .prompt.king{display:flex;flex-direction:column;align-items:center;gap:10px;padding:0;background:none;border:none;animation:none}.king-bubble{position:relative;padding:4px 10px;white-space:nowrap;text-align:center;font-style:italic;color:var(--ink);background:#0a0810cc;border:2px solid #ffffff}.king-bubble:after{content:"";position:absolute;left:50%;bottom:-8px;transform:translate(-50%);border:6px solid transparent;border-top:6px solid #ffffff;border-bottom:0}.prompt.king .prompt-key{padding:4px 10px;background:#0a0810cc;border:2px solid #ffd24a;animation:blink .8s steps(2) infinite alternate}#ui .profile{display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:start}#ui .profile-preview{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 20px 12px;background:var(--slot);border:1px solid var(--slot-edge)}#ui .profile-preview-name{font-size:16px}#ui .profile-fields{display:flex;flex-direction:column;gap:6px;min-width:0}#ui .profile-label{margin-top:8px;color:var(--gold);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}#ui .profile-label:first-child{margin-top:0}#ui .profile-label.role{margin-top:12px}#ui .profile-input{font:inherit;font-size:16px;font-weight:700;color:var(--ink);background:var(--slot);border:1px solid var(--gold);padding:6px 10px}#ui .profile .error-text{color:var(--accent)}#ui .profile-check{display:flex;align-items:center;gap:8px;margin-top:12px;cursor:pointer}#ui .profile-check input{accent-color:var(--gold);width:16px;height:16px;margin:0}#ui .profile-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}#ui .char-swatches{display:grid;grid-template-columns:repeat(10,1fr);gap:5px}#ui .char-swatch{width:100%;min-width:22px;aspect-ratio:1;padding:0;border:2px solid #171424;box-shadow:0 0 0 1px var(--slot-edge);cursor:pointer}#ui .char-swatch.on{box-shadow:0 0 0 2px var(--gold)}#ui .menu-leave{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}#ui .panel .btn.menu-out{color:#ff9a8a;background:#e06a5a1f;border-color:#b04a3c}#ui .panel .btn.menu-out:hover:not(:disabled){color:#fff;background:#e06a5a4d;border-color:#e06a5a}#splash.menu .splash-bar,#splash.menu .splash-status{display:none}.start{margin-top:18px;width:min(360px,calc(100vw - 32px))}.start-card{display:flex;flex-direction:column;align-items:stretch;gap:10px;animation:start-in .25s ease-out}.start-title{text-align:center;font-size:16px;font-weight:700;color:#f2c14e}.start-title.warn{color:#ff9a8a}.start-text{margin:0;text-align:center;line-height:1.5;color:#d8ccb2}.start-text b{color:#f4ead2}.start-btn{font:inherit;font-size:15px;font-weight:700;padding:10px 14px;color:#1a1420;background:#f2c14e;border:2px solid #4a2a10;box-shadow:0 4px #a5641c;cursor:pointer}.start-btn:hover:not(:disabled),.start-btn:focus-visible{background:#fff4c0;outline:none}.start-btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 2px #a5641c}.start-btn:disabled{background:#5a5060;color:#a8a0b0;box-shadow:none;cursor:default}.start-btn.ghost{font-size:13px;font-weight:400;padding:7px 12px;color:#d8ccb2;background:transparent;border:1px solid #5a4a3a;box-shadow:none}.start-btn.ghost:hover,.start-btn.ghost:focus-visible{color:#f4ead2;background:#ffffff0d;border-color:#b8a98c}.start-btn.start-danger{background:#e06a5a;box-shadow:0 4px #7a2a20}.start-btn.start-danger:hover{background:#ff9a8a}.start-continue{display:flex;align-items:center;justify-content:center;gap:12px;padding:6px 14px;font-size:18px}.start-continue span{display:flex;flex-direction:column;align-items:flex-start}.start-continue small{font-size:12px;font-weight:400;color:#4a2a10}.start-goblin{image-rendering:pixelated;flex:none}.start-create{display:flex;align-items:center;gap:14px}.start-create>.start-goblin{padding:8px;background:radial-gradient(circle at 50% 70%,#3a3048 0%,transparent 70%)}.start-fields{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0}.start-label{font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:#b8a98c}.start-input{font:inherit;font-size:15px;padding:6px 8px;color:#f4ead2;background:#07050a;border:2px solid #5a4a3a;outline:none;min-width:0}.start-input:focus{border-color:#f2c14e}.start-hint{min-height:1.3em;font-size:11px;color:#8a7e6a}.start-hint.bad{color:#ff9a8a}.start-swatches{display:grid;grid-template-columns:repeat(10,1fr);gap:4px}.start-swatch{width:100%;aspect-ratio:1;padding:0;border:2px solid #171424;box-shadow:0 0 0 1px #5a4a3a;cursor:pointer}.start-swatch.on{box-shadow:0 0 0 2px #171424,0 0 0 4px #f2c14e}.start-swatch:focus-visible{outline:2px dashed #f4ead2;outline-offset:3px}@keyframes start-in{0%{opacity:0;transform:translateY(6px)}}@media(max-width:420px){.start-create{flex-direction:column}}@media(prefers-reduced-motion:reduce){.start-card{animation:none}}.start-note{margin:-4px 0 2px;text-align:center;font-size:12px;line-height:1.4;color:#a89a80}.start-note b{color:#f4ead2}.start-note.warn{margin:0;color:#ff9a8a}.start-btn.start-discord:not(.ghost){color:#fff;background:#5865f2;border-color:#2a2f7a;box-shadow:0 4px #3a43b0}.start-btn.start-discord:not(.ghost):hover,.start-btn.start-discord:not(.ghost):focus-visible{background:#7983f5}.start-leave{display:flex;flex-direction:column;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid #5a4a3a}.start-btn.ghost.start-out{color:#ff9a8a;border-color:#b04a3c;background:#e06a5a1a}.start-btn.ghost.start-out:hover,.start-btn.ghost.start-out:focus-visible{color:#fff;background:#e06a5a4d;border-color:#e06a5a}html,body{margin:0;height:100%;overflow:hidden;background:#000}#app{position:fixed;inset:0;overflow:hidden}#game{display:block;image-rendering:pixelated;image-rendering:crisp-edges}.nameplates{position:absolute;inset:0;pointer-events:none}.nameplate{position:absolute;left:0;top:0;white-space:nowrap;font:700 12px/1 ui-monospace,Cascadia Mono,Menlo,monospace;color:#f4ead2;text-shadow:1px 0 0 #000,-1px 0 0 #000,0 1px 0 #000,0 -1px 0 #000,1px 1px 0 #000}.nameplate.self{color:#ffd24a;text-shadow:1px 0 0 #000,-1px 0 0 #000,0 1px 0 #000,0 -1px 0 #000,1px 1px 0 #000,0 0 6px rgba(255,210,74,.7);padding-bottom:8px}.nameplate.self:after{content:"";position:absolute;left:50%;bottom:0;margin-left:-4px;border:4px solid transparent;border-bottom-width:0;border-top:5px solid #ffd24a;filter:drop-shadow(0 1px 0 #000);animation:nameplate-bob 1s ease-in-out infinite}@keyframes nameplate-bob{50%{transform:translateY(-2px)}}.nameplate.auto:before{content:"⚙";display:inline-block;margin-right:3px;color:#9fd8ff}.nameplate.auto.digging:before{animation:nameplate-gear 1.2s linear infinite}@keyframes nameplate-gear{to{transform:rotate(360deg)}}#ui{position:fixed;inset:0;pointer-events:none;font:12px/1.3 ui-monospace,Cascadia Mono,Menlo,monospace;color:#f4ead2;text-shadow:1px 1px 0 #000}.hud-corner{position:absolute;top:8px;left:8px;display:flex;gap:10px;padding:3px 6px;background:#0a08108c}.hud-depth{font-weight:700;color:#ffe6a2}.hud-fps{opacity:.6}.hud-pocket{color:#b8f0d8}.spores{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,#3cc8a000 55%,#28967838 85%,#1e6e5a61);transition:opacity 1.2s ease}.spores.strong{background:radial-gradient(ellipse at center,#3cc8a00a 40%,#2896784d 75%,#1e6e5a80)}.hud-ore{align-self:flex-start;display:flex;flex-direction:column;gap:3px;padding:4px 6px;background:#0a08108c}.ore-row{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:700}.ore-icon{width:8px;height:8px;border:2px solid}.ore-count{display:inline-block;min-width:2ch}.bump{animation:bump .18s steps(3) both}@keyframes bump{0%{transform:scale(1.6);color:#fff4c0}to{transform:scale(1)}}.combo{position:absolute;top:10px;left:50%;transform:translate(-50%);text-align:center}.combo-mult{font-size:34px;font-weight:700;line-height:1;color:#ffd24a;text-shadow:2px 2px 0 #3e180c,-2px 0 0 #3e180c,0 -2px 0 #3e180c;animation:pop .25s steps(4) both}.combo-3 .combo-mult{color:#ffb03a;font-size:40px}.combo-4 .combo-mult{color:#ff8a2a;font-size:46px}.combo-5 .combo-mult{color:#ff5a2a;font-size:52px;animation:pop .25s steps(4) both,wobble .3s steps(2) infinite .25s}@keyframes pop{0%{transform:scale(2.2)}60%{transform:scale(.9)}to{transform:scale(1)}}@keyframes wobble{0%{transform:translate(-1px)}to{transform:translate(1px)}}.combo-label{font-size:11px;opacity:.85}.combo-bar{width:90px;height:4px;margin:3px auto 0;background:#0a0810b3;border:1px solid #3e180c}.combo-fill{height:100%;background:#ffd24a}.toasts{position:absolute;top:28%;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:6px}.toast{--tc: #ffd24a;--tt: #ffd24a;--tb: rgba(10, 8, 16, .8);display:grid;grid-template-columns:auto 1fr;column-gap:8px;align-items:center;padding:6px 12px 6px 8px;text-align:left;background:var(--tb);border:2px solid var(--tc);animation:toast 3.2s steps(8) both}.toast-title,.toast-detail{grid-column:2}.toast-title{font-size:18px;font-weight:700;color:var(--tt)}.toast:before{content:"";grid-column:1;grid-row:1 / span 2;min-width:16px;height:16px;padding:0 2px;text-align:center;font-size:12px;font-weight:700;line-height:16px;color:#120e18;text-shadow:none;background:var(--tc)}.toast-detail{font-size:12px}.toast:has(.toast-detail):before{min-width:32px;height:32px;font-size:20px;line-height:32px}.toast-warn{--tc: #ff5a2a;--tt: #ffb08a;--tb: rgba(52, 12, 6, .88);box-shadow:0 0 0 2px #2a0804}.toast-warn:before{content:"!"}.toast-error{--tc: #e8343a;--tt: #ff9a9a;--tb: rgba(44, 6, 10, .9)}.toast-error:before{content:"✕"}.toast-info{--tc: #7a9ac0;--tt: #e4ecf8;--tb: rgba(10, 14, 26, .8)}.toast-info .toast-title{font-size:15px}.toast-info:before{content:"i"}.toast-help{--tc: #5aa8ff;--tt: #c4dcff;--tb: rgba(8, 20, 44, .85)}.toast-help:before{content:"♥"}.toast-sale{--tc: #ffd24a;--tt: #ffd24a;--tb: rgba(34, 26, 6, .85)}.toast-sale:before{content:"$"}.toast-buy{--tc: #6ad86a;--tt: #b8f0a8;--tb: rgba(8, 30, 12, .85)}.toast-buy:before{content:"+"}.toast-discovery,.toast-vein{--tc: #fff4c0;--tt: #fff4c0;--tb: rgba(40, 30, 10, .88);box-shadow:0 0 0 2px #3e2a10,0 0 14px #ffdc7873}.toast-discovery:before,.toast-vein:before{content:"★"}.toast-cursor{position:absolute;max-width:240px;column-gap:5px;padding:3px 8px 3px 5px;border-width:1px;transform:translate(-50%,-100%);animation:toast-cursor 2s steps(6) both}.toast-cursor .toast-title{font-size:13px}.toast-cursor:before{min-width:12px;height:12px;font-size:10px;line-height:12px}.toast-cursor .toast-detail{font-size:11px}.toast-cursor:has(.toast-detail):before{min-width:24px;height:24px;font-size:15px;line-height:24px}@keyframes toast-cursor{0%{transform:translate(-50%,-80%);opacity:0}10%{transform:translate(-50%,-100%);opacity:1}80%{opacity:1}to{transform:translate(-50%,-120%);opacity:0}}@keyframes toast{0%{transform:translateY(8px) scale(.6);opacity:0}8%{transform:translateY(0) scale(1.1);opacity:1}14%{transform:scale(1)}85%{opacity:1}to{opacity:0}}.px-icon{image-rendering:pixelated;vertical-align:middle}.hud-left{position:absolute;top:34px;left:8px;display:flex;flex-direction:column;gap:6px}.status{display:flex;flex-direction:column;gap:4px;width:230px;padding:6px 8px;background:#0a081099}.status-row{display:flex;align-items:center;gap:6px}.status-row.full .slots{animation:blink .5s steps(2) infinite}.money b{font-size:20px;color:#ffd24a}.pop{display:inline-block;animation:bump .25s steps(3) both}.small{font-size:11px}.dim{opacity:.7}.short{color:#ff8a6a}.goal{display:flex;gap:6px;align-items:center}.goal-text{font-size:12px;color:#fff4c0}.goal-empty{font-size:11px;opacity:.6}.bar{width:150px;height:6px;margin-top:2px;background:#0009;border:1px solid #3e180c}.bar.hp{width:160px;height:8px}.bar-fill{height:100%}.bar-fill.gold{background:#ffd24a}.bar-fill.red{background:#e04848}.bar-fill.blue{background:#5ab4e8}.breath-over{position:absolute;left:0;top:0;width:30px;height:5px;padding:1px;background:#171424;border:1px solid #000;box-shadow:0 0 0 1px #9fd8f459}.breath-over-fill{height:100%;background:#5ab4e8}.breath-over.low{animation:breath-blink .5s steps(2) infinite}.breath-over.out .breath-over-fill{background:#e05a4a}.breath-over.out{box-shadow:0 0 0 1px #e05a4a99}@keyframes breath-blink{50%{opacity:.35}}.slots{display:flex;flex-wrap:wrap;gap:2px;width:160px}.slot{width:6px;height:10px;background:#ffffff1f;border:1px solid #000}.slot.item{background:#9a6a3a}.slot.ore{background:#d2763a}.buff{color:#ffd24a}@keyframes blink{0%{opacity:1}to{opacity:.35}}.hotbar{position:absolute;bottom:36px;left:50%;transform:translate(-50%);display:flex;gap:4px;pointer-events:auto}.hot{position:relative;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#0a0810b3;border:2px solid #3a2e34;cursor:pointer}.hot.active{border-color:#ffd24a;box-shadow:0 0 0 2px #3e180c}.hot.empty{opacity:.4}.hot-key{position:absolute;top:1px;left:3px;font-size:10px;opacity:.7}.hot-qty{position:absolute;bottom:0;right:3px;font-size:11px;font-weight:700}.prompt{position:absolute;bottom:90px;left:50%;transform:translate(-50%);padding:4px 10px;background:#0a0810cc;border:2px solid #ffd24a;font-size:14px;animation:blink .8s steps(2) infinite alternate}.prompt.at-object{left:0;top:0;bottom:auto;white-space:nowrap;visibility:hidden}.panel{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:380px;max-height:86vh;overflow-y:auto;pointer-events:auto;font-size:13px}.panel.wide{width:min(860px,94vw)}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:18px;font-weight:700;color:#ffd24a}.btn{font:inherit;font-size:12px;padding:3px 8px;margin:2px;color:#1a1420;background:#ffd24a;border:2px solid #3e180c;cursor:pointer}.btn:hover:not(:disabled){background:#fff4c0}.btn:disabled{background:#5a5060;color:#a8a0b0;cursor:default}.btn.ghost,.x{font:inherit;font-size:11px;color:#f4ead2;background:transparent;border:1px solid #6a5a70;cursor:pointer}.btn.ghost.on{color:#ffd24a;border-color:#ffd24a}.error{margin:4px 0;padding:3px 6px;color:#ffb0a0;border:1px solid #a03a2a}.sale{width:100%;border-collapse:collapse;font-size:14px}.sale td{padding:2px 4px}.sale .num{text-align:right;color:#ffd24a}.sale .total td{border-top:1px solid #6a5a70;font-weight:700}.goal-line{color:#fff4c0}.shop-top{display:flex;gap:16px;align-items:center;margin-bottom:6px}.kits{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:8px}.kit{padding:6px;background:#ffffff0d;border:1px solid #4a3a50}.kit-icons{display:flex;gap:4px;margin:3px 0}.kit-item small{font-size:10px}.shop-item{display:flex;gap:8px;align-items:center;padding:4px;margin-bottom:4px;background:#ffffff0a;border:1px solid #3a2e40}.shop-item.first{border-color:#ffd24a}.shop-info{flex:1}.shop-name{font-weight:700;color:#fff4c0}.shop-effect{color:#a8e0a0}.badge{font-size:10px;padding:0 4px;color:#1a1420;background:#ffd24a}.shop-buy{display:flex;flex-direction:column;align-items:flex-end}.price{font-weight:700;color:#ffd24a}.locker{padding:4px;border:1px dashed #4a3a50}.locker-row{display:flex;align-items:center;gap:4px;font-size:12px}.locker-row .btn{margin-left:auto}.danger{position:absolute;top:18%;left:50%;transform:translate(-50%);padding:4px 12px;font-size:18px;font-weight:700;color:#ffdfa0;background:#781e0abf;border:2px solid #ff8a2a;animation:blink .4s steps(2) infinite alternate}.downed{position:absolute;top:62%;left:50%;transform:translate(-50%,-50%);width:360px;padding:12px;text-align:center;background:#1e080ceb;border:3px solid #e04848;pointer-events:auto}.respawn-toggle{pointer-events:auto;padding:0 6px;font:inherit;color:#ff9a8a;background:#1e080ccc;border:1px solid #a03838;cursor:pointer}.respawn-toggle:hover{border-color:#e04848}.respawn-confirm{z-index:20}.downed-title{font-size:18px;font-weight:700;color:#ff9a8a}.previous{position:absolute;top:100px;right:8px;max-width:280px;padding:6px 8px;background:#0a0810bf;border:1px solid #ffd24a;pointer-events:auto;cursor:pointer}.presence{position:absolute;top:8px;right:8px;display:flex;flex-direction:column;align-items:flex-end;gap:3px;padding:4px 6px;background:#0a081099;pointer-events:auto}.name-btn,.invite-btn{font:inherit;color:#ffe6a2;background:transparent;border:1px solid #6b5a3a;padding:1px 6px;cursor:pointer;text-shadow:1px 1px 0 #000}.name-btn{font-weight:700;border-color:transparent}.name-btn:hover,.invite-btn:hover{border-color:#ffd24a}.name-input{font:inherit;font-weight:700;width:170px;color:#ffe6a2;background:#120e18;border:1px solid #ffd24a;padding:1px 4px}.net-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0a0810;pointer-events:auto}.net-banner{position:absolute;top:40%;left:50%;transform:translate(-50%);pointer-events:auto}.net-box{max-width:420px;padding:10px 14px;background:#0a0810e6;border:1px solid #6b5a3a;display:flex;flex-direction:column;gap:6px;text-align:center}.net-box a{color:#ffd24a}.ping-dot{display:inline-block;width:10px;height:10px;border:1px solid #120e18;vertical-align:middle}.pings{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin-bottom:6px}.ping-btn{text-align:left;position:relative}.ping-btn .hot-key{position:static;font-size:10px;opacity:.7}.post{display:flex;flex-wrap:wrap;align-items:center;gap:2px;margin:6px 0}.mute{display:block;margin-top:4px;cursor:pointer}.project{padding:6px;margin-bottom:8px;background:#ffd24a0f;border:1px solid #6b5a3a}.project-bar{display:flex;align-items:center;gap:8px;margin:4px 0}.project-bar .bar{flex:1;height:10px}.requests{display:flex;flex-direction:column;gap:4px;margin:4px 0}.request{display:grid;grid-template-columns:1fr auto;align-items:center;padding:4px 6px;background:#ffffff0a;border-left:3px solid #8ab4f0}.request>div:nth-child(2),.request>div:nth-child(3){grid-column:1}.request>div:last-child{grid-column:2;grid-row:1 / span 3}.request-who{color:#9ae68a}.split{margin:6px 0;padding:4px 6px;border-left:3px solid #ffd24a;background:#ffd24a0f}.chest-ore{margin-right:8px}.structure-label{position:absolute;bottom:118px;left:50%;transform:translate(-50%);padding:1px 8px;font-size:12px;color:#e8dcc0;background:#0a08108c;text-shadow:1px 1px 0 #000;white-space:nowrap}.ally-hint{position:absolute;bottom:140px;left:50%;transform:translate(-50%);padding:1px 8px;font-size:12px;color:#c4dcff;background:#0a081099;border:1px solid #4a6a9a;white-space:nowrap}.previous.news{top:180px;border-color:#8ab4f0}.history{margin:4px 0;padding-left:4px;border-left:2px solid #4a3a50}.hot-fuel{position:absolute;left:2px;right:2px;bottom:-7px;height:4px;background:#0a0810d9;border:1px solid #3a2e34;pointer-events:none}.hot-fuel i{display:block;height:100%;background:#ffc84a}.hot-fuel.dim{opacity:.5}.hot-fuel.fading i{background:#e04a3a;animation:blink .6s steps(2) infinite alternate}.forge-badge,.forge-note{color:#ffc870}.section-line{position:absolute;bottom:30px;left:8px;max-width:400px;padding:2px 8px;font-size:12px;color:#d8d0c0;background:#0a081099;border-left:3px solid #8a7f96}.section-line.lost{color:#ffb0a0;border-left-color:#e04848}.awakening{position:absolute;top:8px;left:50%;transform:translate(-50%);padding:3px 14px;font-size:15px;font-weight:700;color:#ffdfa0;background:#3c0a14cc;border:2px solid #c0402a;white-space:nowrap}.awakening.waves{border-color:#ff5a3a;animation:blink .8s steps(2) infinite alternate}.awakening-end{top:260px;border-color:#ff8a5a}.hint{position:absolute;bottom:104px;left:50%;transform:translate(-50%);max-width:520px;padding:4px 10px;font-size:13px;color:#fff4c0;background:#14101ed1;border:1px solid #ffd24a;pointer-events:none}.forge{margin:6px 0;padding:4px 6px;border:1px solid #f08a24;background:#3c1e0a59}.bag-row{cursor:pointer;pointer-events:auto}.bag-help{margin-bottom:8px}.bag-grid{position:relative;margin:0 auto;background-color:#1a1418;background-image:linear-gradient(to right,#3a2e34 2px,transparent 2px),linear-gradient(to bottom,#3a2e34 2px,transparent 2px);border:2px solid #3a2e34;box-sizing:content-box;touch-action:none;user-select:none}.bag-item{position:absolute;display:flex;align-items:center;justify-content:center;pointer-events:none}.bag-cell{position:absolute;box-sizing:border-box;background:#2e2328;border:2px solid #6b5560;pointer-events:auto;cursor:grab}.bag-item:hover .bag-cell{border-color:#b49aa6}.bag-cell.active,.bag-item:hover .bag-cell.active{border-color:#ffd24a}.bag-item.lifted{opacity:.35}.bag-grid.dragging .bag-cell{cursor:grabbing}.bag-icon{position:relative;display:flex;pointer-events:none}.bag-key,.bag-qty{position:absolute;font-size:11px;pointer-events:none;text-shadow:1px 1px 0 #000}.bag-key{top:1px;left:4px;opacity:.75}.bag-qty{bottom:1px;right:4px;font-weight:700}.bag-ghost{position:absolute;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:.85}.bag-ghost-cell{position:absolute;box-sizing:border-box;border:2px dashed}.bag-ghost.ok .bag-ghost-cell{border-color:#7ad66a;background:#50a04640}.bag-ghost.bad .bag-ghost-cell{border-color:#e05a4a;background:#b4322840}.bag-foot{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:10px}.bag-icon .ore-icon{transform:scale(2.4)}html.touch{--safe-l: env(safe-area-inset-left, 0px);--safe-r: env(safe-area-inset-right, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px);overscroll-behavior:none;-webkit-text-size-adjust:100%}html.touch body{overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}html.touch #app,html.touch #ui{touch-action:none}html.touch #ui input{-webkit-user-select:text;user-select:text}.rotate-hint{display:none}@media(orientation:portrait){html.touch .rotate-hint{position:fixed;inset:0;z-index:2000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;background:#07050a;color:#f4ead2;font:15px/1.4 ui-monospace,Cascadia Mono,Menlo,monospace;text-align:center;text-shadow:1px 1px 0 #000;pointer-events:auto}html.touch .rotate-hint .rotate-phone{width:44px;height:72px;border:3px solid #f2c14e;border-radius:8px;animation:rotate-phone 1.8s ease-in-out infinite}}@keyframes rotate-phone{0%,20%{transform:rotate(0)}60%,to{transform:rotate(-90deg)}}.touch-controls{position:absolute;inset:0;pointer-events:none}.touch-stick-zone{position:absolute;left:0;bottom:0;width:42%;height:72%;pointer-events:auto}.touch-stick{position:fixed;width:112px;height:112px;margin:-56px 0 0 -56px;border-radius:50%;background:#0a081059;border:2px solid rgba(244,234,210,.35);pointer-events:none}.touch-stick.idle{left:calc(84px + var(--safe-l));top:auto;bottom:calc(28px + var(--safe-b));margin:0 0 0 -56px;opacity:.45}.touch-knob{position:absolute;left:50%;top:50%;width:48px;height:48px;margin:-24px 0 0 -24px;border-radius:50%;background:#f2c14ebf;border:2px solid #3e180c}.touch-btn{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;padding:0;border-radius:50%;border:2px solid rgba(244,234,210,.5);background:#0a08108c;color:#f4ead2;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none}.touch-btn .glyph{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.touch-btn.pressed,.touch-btn:active{background:#f2c14e73;border-color:#ffd24a}.touch-label{position:absolute;top:100%;margin-top:2px;font-size:10px;white-space:nowrap;color:#f4ead2;text-shadow:1px 1px 0 #000;pointer-events:none}.touch-pad{position:absolute;right:calc(16px + var(--safe-r));bottom:calc(16px + var(--safe-b));width:200px;height:200px;pointer-events:none}.touch-btn.action{right:0;bottom:18px;width:80px;height:80px;border-color:#ffd24a}.touch-btn.action.placing{background:#50a0508c}.touch-btn.jump{right:92px;bottom:0;width:64px;height:64px}.touch-btn.roll{right:104px;bottom:78px;width:48px;height:48px}.touch-btn.interact,.touch-btn.cancel{right:12px;bottom:120px;width:56px;height:56px;border-color:#ffd24a;animation:touch-pulse 1s ease-in-out infinite alternate}.touch-btn.cancel{animation:none;border-color:#e0604a}@keyframes touch-pulse{0%{box-shadow:0 0 #ffd24a99}to{box-shadow:0 0 0 6px #ffd24a00}}.touch-top{position:absolute;top:calc(8px + var(--safe-t));right:calc(12px + var(--safe-r));display:flex;gap:10px;pointer-events:none}.touch-top .touch-btn{position:relative;width:44px;height:44px}.touch-rotate{position:fixed;left:calc(10px + var(--safe-l));bottom:calc(10px + var(--safe-b));z-index:50;width:60px;height:60px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:2px solid #ffd24a;background:#0a0810bf;color:#f4ead2;pointer-events:auto;touch-action:none}.touch-rotate .glyph{fill:none;stroke:currentColor;stroke-width:1.8}html.touch #ui .hud-corner{top:calc(4px + var(--safe-t));left:calc(6px + var(--safe-l));font-size:11px}html.touch #ui .hud-fps{display:none}html.touch #ui .hud-left{top:calc(26px + var(--safe-t));left:calc(6px + var(--safe-l))}html.touch #ui .status{width:180px;padding:4px 6px;gap:2px;font-size:11px}html.touch #ui .hotbar{bottom:calc(6px + var(--safe-b));gap:3px}html.touch #ui .hot{width:42px;height:42px}html.touch #ui .hot-key{display:none}html.touch #ui .dock{top:calc(4px + var(--safe-t));bottom:auto;right:calc(232px + var(--safe-r));flex-direction:row;gap:0;transform:scale(.85);transform-origin:top right}html.touch #ui .prompt{pointer-events:auto}html.touch #ui .prompt.at-object{padding:6px 12px}html.touch #wip{display:none}html.touch #ui .panel{max-height:calc(100dvh - 12px - var(--safe-t) - var(--safe-b));padding:6px 10px 8px;font-size:12px}html.touch #ui .panel-body{max-height:calc(100dvh - 60px - var(--safe-t) - var(--safe-b));touch-action:pan-y}html.touch #ui .panel.fit .panel-body{max-height:calc(100dvh - 60px - var(--safe-t) - var(--safe-b));overflow-y:auto}html.touch #ui .bag-grid{touch-action:none}html.touch #ui .panel-head{margin:0 0 6px;padding-bottom:4px;font-size:13px}html.touch #ui .panel-close{padding:8px;margin:-6px -6px -6px auto}html.touch #ui .panel-close .glyph{width:20px;height:20px}html.touch #ui .panel-pair{flex-wrap:nowrap;gap:8px;max-width:calc(100vw - 8px - var(--safe-l) - var(--safe-r))}html.touch #ui .panel:has(.shop-grid){width:auto}html.touch #ui .panel-pair>.panel.wide{width:min(520px,calc(100vw - 330px))}html.touch #ui .panel .btn{min-height:32px}.quick-pick{position:fixed;z-index:60;pointer-events:auto;max-width:min(320px,calc(100vw - 16px))}.quick-pick-row{display:flex;gap:6px;margin-top:8px}.quick-pick-row .btn{flex:1;min-height:40px;padding:4px 8px;font:inherit;color:#f4ead2;background:#f2c14e2e;border:2px solid #ffd24a;cursor:pointer}#ui .presence.in-menu{position:static;align-items:stretch;margin-bottom:8px;background:none;padding:0}.quick-pick-row.pin{flex-wrap:wrap;align-items:center}.quick-pick-row.pin .btn{flex:0 0 40px}.quick-pick-label{flex-basis:100%;font-size:11px}html.touch.panel-open #ui .hud-corner,html.touch.panel-open #ui .hud-left,html.touch.panel-open #ui .hotbar,html.touch.panel-open #ui .dock,html.touch.panel-open #ui .hint,html.touch.panel-open #ui .prompt,html.touch.panel-open #ui .combo,html.touch.panel-open #ui .section-line,html.touch.panel-open #ui .structure-label,html.touch.panel-open #ui .ally-hint,html.touch.panel-open #ui .danger,html.touch.panel-open .nameplates{display:none}
