@font-face{font-family:Pixelify Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(../media/99c6cdb74b1a9f21-s.3-72worm-ib39.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Pixelify Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(../media/9b2952c75e1b82c6-s.3_mjd9z78cbbb.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Pixelify Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(../media/01d67e7cc17e7674-s.p.0wyelkczeev99.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Pixelify Sans Fallback;src:local(Arial);ascent-override:81.7%;descent-override:24.87%;line-gap-override:0.0%;size-adjust:112.61%}.pixelify_sans_9c193695-module__6b6gBa__className{font-family:Pixelify Sans,Pixelify Sans Fallback;font-style:normal}.pixelify_sans_9c193695-module__6b6gBa__variable{--font-pixel:"Pixelify Sans", "Pixelify Sans Fallback"}
:root{--paper:#f1f2f6;--paper-2:#dfd8d4;--ink:#312e27;--accent:#c8583e;--sea:#5079a1;--gutter:16px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px)}*{box-sizing:border-box;margin:0;padding:0}html,body{overscroll-behavior:none;background:var(--sea);height:100%;color:var(--ink);font-family:var(--font-pixel), system-ui, sans-serif;-webkit-font-smoothing:none;-webkit-tap-highlight-color:transparent;overflow:hidden}button{font:inherit;color:inherit}.world-canvas{z-index:0;touch-action:none;opacity:0;transition:opacity .8s steps(6,end);inset:0;position:fixed!important}.world-canvas--ready{opacity:1}.world-canvas--pixel canvas{image-rendering:pixelated}.joystick-layer{z-index:1;touch-action:none;-webkit-user-select:none;user-select:none;position:fixed;inset:0}.content{z-index:2;pointer-events:none;position:fixed;inset:0}.content>*{pointer-events:auto}.hud{z-index:3;top:calc(var(--safe-top) + 12px);left:calc(var(--safe-left) + var(--gutter));right:calc(var(--safe-right) + var(--gutter));pointer-events:none;justify-content:space-between;align-items:flex-start;display:flex;position:fixed}.hud>*{pointer-events:auto}.hud-brand,.panel,.intro,.action-button{background:var(--paper);border:3px solid var(--ink);box-shadow:4px 4px 0 var(--ink)}.hud-left{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.compass{background:var(--paper);border:3px solid var(--ink);width:48px;height:48px;box-shadow:4px 4px 0 var(--ink);pointer-events:none;border-radius:50%;position:relative}.compass:before{content:"";border:4px solid #0000;border-top:6px solid var(--ink);margin-left:-4px;position:absolute;top:-3px;left:50%}.compass__rose{transition:opacity .4s;position:absolute;inset:0}.compass__point{text-align:center;width:12px;height:12px;color:var(--ink);margin:-6px 0 0 -6px;font-size:11px;line-height:12px;position:absolute;top:50%;left:50%}.compass__point--north{color:#e0574a;font-weight:700}.hud-right{align-items:flex-start;gap:10px;display:flex}.hud-button{cursor:pointer;background:var(--paper);border:3px solid var(--ink);min-width:44px;min-height:44px;box-shadow:4px 4px 0 var(--ink);font-size:20px;line-height:1}.hud-button:active{box-shadow:2px 2px 0 var(--ink);transform:translate(2px,2px)}.hud-brand{color:var(--ink);padding:6px 10px;font-size:16px;text-decoration:none}.joystick{border:3px solid var(--paper);pointer-events:none;background:#312e2740;border-radius:50%;width:112px;height:112px;margin:-56px 0 0 -56px;position:fixed}.joystick-layer--touch{width:55%;height:55%;inset:auto auto 0 0}.joystick--fixed{left:calc(var(--safe-left) + 28px + 56px);top:auto;bottom:calc(var(--safe-bottom) + 28px);opacity:.55;margin:0 0 0 -56px;transition:opacity .2s}.joystick--active{opacity:.95}.joystick-knob{background:var(--paper);border:3px solid var(--ink);border-radius:50%;width:44px;height:44px;margin:-22px 0 0 -22px;position:absolute;top:50%;left:50%}.action-button{z-index:3;left:50%;bottom:calc(var(--safe-bottom) + 24px);white-space:nowrap;cursor:pointer;align-items:center;gap:10px;min-height:52px;padding:10px 20px;font-size:18px;display:flex;position:fixed;transform:translate(-50%)}.action-button:active{box-shadow:2px 2px 0 var(--ink);transform:translate(calc(2px - 50%),2px)}.action-button strong{color:var(--accent)}.action-button--inline{justify-content:center;width:100%;margin-top:20px;position:static;transform:none}.action-button--inline:active{transform:translate(2px,2px)}@media (hover:none) and (pointer:coarse){.action-button:not(.action-button--inline){left:auto;right:calc(var(--safe-right) + var(--gutter));transform:none}.action-button:not(.action-button--inline):active{transform:translate(2px,2px)}}kbd{font:inherit;border:2px solid var(--ink);background:var(--paper-2);padding:2px 6px;font-size:12px}.intro{width:min(360px, calc(100vw - 2 * var(--gutter)));text-align:center;pointer-events:none;padding:20px;transition:opacity .6s steps(4,end),transform .6s steps(4,end);position:fixed;top:38%;left:50%;transform:translate(-50%,-50%)}.intro h1{margin-bottom:8px;font-size:28px}.intro p{line-height:1.4}.intro-hint,.intro-loading{color:var(--accent);margin-top:12px;font-size:14px}.intro-loading__bar{border:2px solid var(--ink);background:var(--paper-2);height:10px;margin-top:8px}.intro-loading__fill{background:var(--accent);transform-origin:0;height:100%;transition:transform .3s steps(4,end)}.intro--hidden{opacity:0;transform:translate(-50%,-60%)}.only-keyboard{display:none}@media (hover:hover) and (pointer:fine){.only-keyboard{display:inline}.only-touch{display:none}}@media not ((hover:hover) and (pointer:fine)){kbd{display:none}}.panel{z-index:3;left:calc(var(--safe-left) + var(--gutter));right:calc(var(--safe-right) + var(--gutter));bottom:calc(var(--safe-bottom) + var(--gutter));max-height:48vh;padding:20px;animation:.4s steps(5,end) panel-in;position:fixed;overflow-y:auto}.panel h1{margin-bottom:10px;font-size:26px}.panel p{font-family:system-ui,sans-serif;line-height:1.5}@keyframes panel-in{0%{opacity:0;transform:translateY(40px)}}@media (min-aspect-ratio:1) and (min-width:700px){.panel{left:auto;top:calc(var(--safe-top) + 72px);width:380px;max-height:calc(100vh - 72px - var(--gutter) - var(--safe-top) - var(--safe-bottom));bottom:auto}}.perf-hud{z-index:4;left:50%;top:calc(var(--safe-top) + 64px);background:var(--ink);color:var(--paper);pointer-events:none;padding:4px 8px;font-size:12px;position:fixed;transform:translate(-50%)}.visually-hidden-focusable:not(:focus-within){clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.visually-hidden-focusable:focus-within{z-index:4;top:80px;left:var(--gutter);background:var(--paper);border:3px solid var(--ink);padding:12px;list-style:none;position:fixed}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.hud-button--text{font:inherit;padding:6px 10px;font-size:16px}.panel--map{z-index:4}.world-map{border:3px solid var(--ink);background:#5cc0d8;width:100%;margin-top:12px;display:block}.world-map__fog{fill:#e9dcc0;stroke:#d8c8a4;stroke-width:.6px}.world-map__label{font-family:var(--font-pixel), system-ui, sans-serif;fill:#312e27;font-size:7px}.toast{z-index:4;left:50%;top:calc(var(--safe-top) + 70px);font:inherit;white-space:nowrap;cursor:pointer;background:var(--paper);border:3px solid var(--ink);box-shadow:4px 4px 0 var(--ink);padding:10px 16px;font-size:15px;animation:.4s steps(5,end) panel-in;position:fixed;transform:translate(-50%)}.toast strong{color:var(--accent)}.log{color:#8a8478;margin:12px 0;line-height:1.6;list-style:none}.log__done{color:var(--ink)}@media (max-width:480px){.hud-brand{max-width:7em;padding:6px 8px;font-size:13px;line-height:1.15}.hud-right{gap:6px}.hud-button{min-width:40px;min-height:40px;font-size:18px}.hud-button--text{padding:6px 7px;font-size:13px}}
