html,body{color:#e6edf3;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#0b0d12;width:100%;height:100%;margin:0;overflow:hidden}#game{position:fixed;inset:0;overflow:hidden}#screen{outline:none;position:absolute}#overlay{pointer-events:none;position:absolute}.touch{position:absolute;inset:0}.touch[hidden]{display:none}.touch-pad,.touch-btn{pointer-events:auto;touch-action:none;border:calc(var(--u) * 1) solid #e6edf340;color:#e6edf3b3;font:bold calc(var(--u) * 12) monospace;background:#161b2259;padding:0;position:absolute}.touch-pad{left:calc(var(--u) * 14);bottom:calc(var(--u) * 14);width:calc(var(--u) * 76);height:calc(var(--u) * 76);border-radius:50%}.touch-knob{background:#e6edf34d;border-radius:50%;width:40%;height:40%;position:absolute;top:30%;left:30%}.touch-btn{width:calc(var(--u) * 34);height:calc(var(--u) * 34);border-radius:50%}.touch-jump{right:calc(var(--u) * 14);bottom:calc(var(--u) * 18);width:calc(var(--u) * 40);height:calc(var(--u) * 40)}.touch-attack{right:calc(var(--u) * 60);bottom:calc(var(--u) * 12)}.touch-dash{right:calc(var(--u) * 60);bottom:calc(var(--u) * 54)}.touch-magic{right:calc(var(--u) * 18);bottom:calc(var(--u) * 66)}.touch-pause{left:calc(50% - var(--u) * 10);top:calc(var(--u) * 6);width:calc(var(--u) * 20);height:calc(var(--u) * 20);font-size:calc(var(--u) * 7)}#overlay{font-family:JetBrains Mono,monospace}.menu-backdrop{pointer-events:auto;background:#080a0e8c;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.menu{min-width:calc(var(--u) * 190);max-width:calc(var(--u) * 320);border:calc(var(--u) * 1) solid #30363d;color:#e6edf3;font-size:calc(var(--u) * 9);padding-bottom:calc(var(--u) * 8);box-shadow:0 calc(var(--u) * 4) 0 #0006;background:#0d1117;line-height:1.35}.menu-tab{border-right:calc(var(--u) * 1) solid #30363d;border-bottom:calc(var(--u) * 1) solid #f78166;color:#8b949e;padding:calc(var(--u) * 2) calc(var(--u) * 8);font-size:calc(var(--u) * 7);background:#161b22;display:inline-block}.menu-title{color:#d2a8ff;font-weight:700;font-size:calc(var(--u) * 14);padding:calc(var(--u) * 6) calc(var(--u) * 12) calc(var(--u) * 4)}.menu-line{padding:0 calc(var(--u) * 12);color:#c9d1d9}.menu-line.ok:not(.has-value):before,.menu-line.ok .menu-line-text:before{content:"✓ ";color:#3fb950}.menu-line.fail{color:#6e7681}.menu-line.fail:not(.has-value):before,.menu-line.fail .menu-line-text:before{content:"✗ ";color:#f85149}.menu-line.has-value{justify-content:space-between;gap:calc(var(--u) * 12);display:flex}.menu-line-value{white-space:nowrap;color:#c9d1d9}.menu-line-value.ok{color:#3fb950}.menu-line-value.accent{color:#e3b341}.menu-line-value.muted{color:#6e7681}.menu-line.rule{margin-top:calc(var(--u) * 4);padding-top:calc(var(--u) * 3);border-top:calc(var(--u) * 1) solid #30363d}.menu-line.total{font-weight:700}.menu-line.muted{color:#8b949e}.menu-line.accent{color:#e3b341}.menu-items{margin-top:calc(var(--u) * 6)}.menu-item{text-align:left;color:#c9d1d9;width:100%;font:inherit;padding:calc(var(--u) * 2) calc(var(--u) * 12) calc(var(--u) * 2) 0;cursor:pointer;background:0 0;border:none;display:block}.menu-item:before{content:attr(data-line);width:calc(var(--u) * 20);padding-right:calc(var(--u) * 8);text-align:right;color:#484f58;display:inline-block}.menu-item.focused{color:#79c0ff;background:#161b22}.menu-item.focused:after{content:"▌";color:#79c0ff;animation:1s step-end infinite caret}@keyframes caret{50%{opacity:0}}.menu-side{top:calc(var(--u) * 8);right:calc(var(--u) * 8);bottom:calc(var(--u) * 8);pointer-events:none;align-items:flex-start;display:flex;position:absolute}.menu-side .menu{pointer-events:auto;min-width:calc(var(--u) * 170);max-width:calc(var(--u) * 190);max-height:100%;overflow:hidden}.menu-side .menu-title{font-size:calc(var(--u) * 11)}.menu-side .menu-line{font-size:calc(var(--u) * 8)}.hub{pointer-events:auto;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.hub-panel{width:calc(100% - var(--u) * 24);height:calc(100% - var(--u) * 20);border:calc(var(--u) * 1) solid #30363d;color:#c9d1d9;font-size:calc(var(--u) * 8);background:#0d1117;flex-direction:column;display:flex;position:relative}.hub-head{padding:calc(var(--u) * 6) calc(var(--u) * 10) calc(var(--u) * 2);justify-content:space-between;align-items:baseline;display:flex}.hub-title{color:#d2a8ff;font-weight:700;font-size:calc(var(--u) * 14)}.hub-tokens{color:#e3b341;font-weight:700;font-size:calc(var(--u) * 10)}.hub-tabs{border-bottom:calc(var(--u) * 1) solid #30363d;padding:0 calc(var(--u) * 6);display:flex}.hub-tab{color:#8b949e;font:inherit;padding:calc(var(--u) * 3) calc(var(--u) * 8);cursor:pointer;background:0 0;border:none}.hub-tab.active{color:#f0f6fc;border-bottom:calc(var(--u) * 1) solid #f78166}.hub-list{padding:calc(var(--u) * 3) 0;flex:1;overflow-y:auto}.hub-row{text-align:left;width:100%;color:inherit;font:inherit;padding:calc(var(--u) * 2) calc(var(--u) * 10);cursor:pointer;background:0 0;border:none;grid-template-columns:1fr auto;display:grid}.hub-row.focused{background:#161b22}.hub-name{color:#79c0ff}.hub-row.locked .hub-name,.hub-row.locked .hub-status{color:#484f58}.hub-value{color:#e6edf3;grid-area:2/1}.hub-status{text-align:right;color:#e3b341;grid-area:1/2}.hub-row.owned .hub-status,.hub-row.max .hub-status{color:#3fb950}.hub-desc{color:#8b949e;font-size:calc(var(--u) * 7);grid-column:1/span 2}.hub-foot{border-top:calc(var(--u) * 1) solid #30363d;color:#8b949e;font-size:calc(var(--u) * 7);padding:calc(var(--u) * 3) calc(var(--u) * 10)}.hub-terminal{left:calc(var(--u) * 30);right:calc(var(--u) * 30);bottom:calc(var(--u) * 30);border:calc(var(--u) * 1) solid #3fb950;color:#7ee787;padding:calc(var(--u) * 6);font-size:calc(var(--u) * 8);min-height:calc(var(--u) * 50);background:#010409;position:absolute}#rotate{z-index:10;color:#e6edf3;text-align:center;background:#0b0d12;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;font-family:JetBrains Mono,monospace;font-size:20px;display:none;position:fixed;inset:0}.rotate-icon{color:#7ee787;font-size:48px}@media (orientation:portrait) and (pointer:coarse){#rotate{display:flex}}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./jetbrains-mono-latin-400-normal-V6pRDFza.woff2)format("woff2"),url(./jetbrains-mono-latin-400-normal-6-qcROiO.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(./jetbrains-mono-latin-700-normal-BYuf6tUa.woff2)format("woff2"),url(./jetbrains-mono-latin-700-normal-D3wTyLJW.woff)format("woff")}@font-face{font-family:Pixelify Sans;font-style:normal;font-display:swap;font-weight:700;src:url(./pixelify-sans-latin-700-normal-D3Xxx3QE.woff2)format("woff2"),url(./pixelify-sans-latin-700-normal-BctWAS0u.woff)format("woff")}
