:root{color-scheme:dark;background:#000;font-family:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden;background:#000}html,body{overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}body{height:100dvh}#app{position:relative;display:grid;place-items:center;grid-template-areas:"stage";padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}#stage{grid-area:stage;width:min(100vw,75vh);height:min(100vh,133.3333vw)}#game{display:block;width:100%;height:100%;background:#000;image-rendering:pixelated;image-rendering:crisp-edges;touch-action:none;outline:none}#text-proxy{position:fixed;left:0;top:0;width:1px;height:1px;opacity:0;font-size:16px;border:0;padding:0;pointer-events:none}.pad-zone{display:none;touch-action:none;--pad: clamp(120px, 34vmin, 168px);--ab: clamp(54px, 15vmin, 72px)}#app[data-layout=portrait]{grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr;grid-template-areas:"stage stage" "left right";place-items:stretch}#app[data-layout=portrait] #stage{justify-self:center;align-self:start}#app[data-layout=landscape]{grid-template-columns:1fr;grid-template-areas:"stage";place-items:center}#app[data-layout=landscape] .pad-zone{position:absolute;bottom:env(safe-area-inset-bottom);z-index:3;padding:10px max(18px,env(safe-area-inset-left)) 14px;pointer-events:none}#app[data-layout=landscape] .pad-zone>*{pointer-events:auto}#app[data-layout=landscape] #pad-left{left:0}#app[data-layout=landscape] #pad-right{right:0;padding-right:max(18px,env(safe-area-inset-right))}#app[data-layout=landscape] .pad-button{background:#2c2c2c8c;border-color:#787878b3}#app[data-layout=landscape] .joystick{opacity:.85}#app[data-layout=portrait] .pad-zone,#app[data-layout=landscape] .pad-zone{display:flex;flex-direction:column;justify-content:center;gap:18px;padding:12px 16px}#pad-left{grid-area:left;align-items:flex-start}#pad-right{grid-area:right;align-items:flex-end}#app[data-layout=landscape] #pad-left,#app[data-layout=landscape] #pad-right{align-items:center;justify-content:flex-end}#app[data-layout=landscape] #pad-left{padding-left:max(calc(15vmin + 8px),env(safe-area-inset-left))}#app[data-layout=landscape] .pad-button.soft{height:34px;min-width:64px;border-radius:17px;font-size:14px}.pad-button{background:#2c2c2c;border:1px solid #555;color:#ddd;font:600 16px/1 Arial,Helvetica,sans-serif}.pad-button{display:flex;align-items:center;justify-content:center;padding:0;touch-action:none;cursor:pointer}.pad-button.held{background:#6a6a6a;color:#fff}.pad-button.soft{height:26px;min-width:56px;border-radius:13px;font-size:13px;color:#bbb}.ab{position:relative;width:calc(var(--ab) * 2);height:var(--pad)}.ab .pad-button{position:absolute;width:var(--ab);height:var(--ab);border-radius:50%;font-size:20px}.ab .a{right:0;top:calc((var(--pad) - var(--ab) * 1.7) / 2);background:#3b2f2f;border-color:#8a5a50}.ab .b{left:0;bottom:calc((var(--pad) - var(--ab) * 1.7) / 2)}.joystick{position:relative;width:var(--pad);height:var(--pad);border-radius:50%;touch-action:none;background:radial-gradient(circle,#4646468c 0 55%,#282828bf 56% 100%);border:2px solid #555;box-shadow:inset 0 0 12px #0009}.joystick .arrow{position:absolute;left:50%;top:50%;width:0;height:0;margin:-7px 0 0 -7px;border:7px solid transparent;pointer-events:none;transition:border-color 80ms}.joystick .up{border-bottom-color:#888;transform:translateY(calc(var(--pad) * -.4))}.joystick .down{border-top-color:#888;transform:translateY(calc(var(--pad) * .4))}.joystick .left{border-right-color:#888;transform:translate(calc(var(--pad) * -.4))}.joystick .right{border-left-color:#888;transform:translate(calc(var(--pad) * .4))}.joystick .up.held{border-bottom-color:#f2c53d}.joystick .down.held{border-top-color:#f2c53d}.joystick .left.held{border-right-color:#f2c53d}.joystick .right.held{border-left-color:#f2c53d}.joystick .knob{position:absolute;left:50%;top:50%;width:calc(var(--pad) * .42);height:calc(var(--pad) * .42);margin:calc(var(--pad) * -.21) 0 0 calc(var(--pad) * -.21);border-radius:50%;background:radial-gradient(circle at 35% 30%,#8a8a8a,#3a3a3a 70%);border:1px solid #777;box-shadow:0 3px 8px #0009;pointer-events:none;transition:transform .12s ease-out}.joystick.active .knob{transition:none;background:radial-gradient(circle at 35% 30%,#a0a0a0,#4a4a4a 70%)}#fullscreen{position:absolute;right:calc(env(safe-area-inset-right) + 10px);top:calc(env(safe-area-inset-top) + 10px);width:36px;height:36px;display:flex;align-items:center;justify-content:center;padding:0;border:1px solid #444;border-radius:8px;background:#1e1e1eb3;color:#ccc;cursor:pointer;touch-action:manipulation;z-index:2}#app[data-layout=portrait] #fullscreen{top:auto;bottom:calc(env(safe-area-inset-bottom) + 10px)}#app[data-layout=landscape] #fullscreen{top:calc(env(safe-area-inset-top) + 4px);right:auto;left:50%;width:32px;height:32px;transform:translate(-50%);opacity:.55}#login{position:fixed;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));overflow:auto;background:#7cc8f0 url(/assets/bg-landscape-FGcvr3WB.jpg) center / cover no-repeat;font-family:Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:#17606c;color-scheme:light;-webkit-user-select:none;user-select:none;--teal: #1f8a93;--ink: #17606c;--gold: #f2c53d}#login[hidden]{display:none}@media(orientation:portrait){#login{background-image:url(/assets/bg-portrait-D_d4WyiU.webp);align-items:flex-start;padding-top:max(19vh,env(safe-area-inset-top))}#login .login-panel{margin:0 auto}}.login-panel{position:relative;width:min(440px,100%);margin:auto;padding:22px 34px 26px;border:3px solid var(--teal);border-radius:30px;background:radial-gradient(120% 60% at 0% 0%,rgba(255,255,255,.55),transparent 60%),radial-gradient(90% 50% at 100% 100%,rgba(140,225,240,.55),transparent 70%),linear-gradient(160deg,#c4f4faf0,#e8fbfcf0);box-shadow:0 0 0 3px #ffffff8c,0 18px 40px #0a325059;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.login-panel .corner{position:absolute;width:46px;height:46px;border:7px solid var(--gold);pointer-events:none}.login-panel .corner:after{content:"";position:absolute;width:11px;height:11px;background:linear-gradient(135deg,#bff6ff,#3cc4dc);border:2px solid #fff6c9;transform:rotate(45deg)}.corner.tl{left:-6px;top:-6px;border-right:0;border-bottom:0;border-top-left-radius:30px}.corner.tr{right:-6px;top:-6px;border-left:0;border-bottom:0;border-top-right-radius:30px}.corner.bl{left:-6px;bottom:-6px;border-right:0;border-top:0;border-bottom-left-radius:30px}.corner.br{right:-6px;bottom:-6px;border-left:0;border-top:0;border-bottom-right-radius:30px}.corner.tl:after,.corner.bl:after{left:4px}.corner.tr:after,.corner.br:after{right:4px}.corner.tl:after,.corner.tr:after{top:4px}.corner.bl:after,.corner.br:after{bottom:4px}.login-tools{display:flex;justify-content:flex-end;gap:10px;margin-bottom:16px}.login-panel button{font:inherit;cursor:pointer;touch-action:manipulation}.tool{width:44px;height:44px;padding:9px;border:2.5px solid var(--teal);border-radius:50%;background:#fff9;color:var(--ink)}.tool svg{width:100%;height:100%;display:block}.tool:hover{background:#fff}.tool .cross,.tool.off .wave{display:none}.tool.off .cross{display:inline}.login-form{display:flex;flex-direction:column;gap:12px}.login-title{display:none;margin:0 0 2px;font-size:20px;text-align:center;color:var(--ink)}#login[data-mode=register] .login-title{display:block}.field{display:flex;align-items:center;gap:12px;height:52px;padding:0 16px;border:2.5px solid var(--teal);border-radius:16px;background:#ffffffc7}.field svg{flex:none;width:26px;height:26px;padding-right:10px;box-sizing:content-box;border-right:2px solid #8fd6dc;color:var(--ink)}.field input{flex:1;min-width:0;height:100%;border:0;outline:0;background:transparent;color:var(--ink);font-family:inherit;font-size:18px;font-weight:600;-webkit-user-select:text;user-select:text}.field input::placeholder{color:#3f8791;opacity:.85}.field:focus-within{border-color:#e9a72a;box-shadow:0 0 0 3px #f2c53d59}.field.confirm{display:none}#login[data-mode=register] .field.confirm{display:flex}.login-row{display:flex;align-items:center;justify-content:space-between;font-size:16px;font-weight:600}.check{display:inline-flex;align-items:center;gap:8px;cursor:pointer}.check input{width:22px;height:22px;margin:0;accent-color:var(--teal)}.link{padding:0;border:0;background:none;color:var(--ink);font-weight:600!important;text-decoration:underline;text-underline-offset:3px}#login[data-mode=register] .link{visibility:hidden}.login-message{min-height:1.2em;margin:-4px 0 -2px;font-size:14px;font-weight:600;text-align:center}.login-message[data-kind=error]{color:#c8321e}.login-message[data-kind=info]{color:var(--ink)}.primary{height:56px;border:3px solid var(--gold);border-radius:28px;background:linear-gradient(90deg,#ff5f5a,#ff8c3f 60%,#ffa646);color:#fff;font-size:24px!important;font-weight:800!important;text-shadow:0 1px 2px rgba(150,40,0,.45);box-shadow:inset 0 2px #ffffff59,0 3px 8px #c8501e4d}.primary:active{transform:translateY(1px)}.secondary{align-self:center;width:92%;height:46px;border:2.5px solid var(--teal);border-radius:23px;background:#d6f8fbd9;color:var(--ink);font-size:19px!important;font-weight:700!important}.secondary:hover{background:#fff}.login-form.busy .primary,.login-form.busy .secondary{opacity:.6;pointer-events:none}.login-rule{align-self:center;width:64%;height:2px;margin-top:4px;border-radius:1px;background:var(--gold)}.install-link{align-self:center;display:flex;align-items:center;gap:6px;margin-top:-2px;padding:2px 6px;border:0;background:none;color:var(--ink);font-size:14px!important;font-weight:700!important;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.install-link[hidden]{display:none}.install-link svg{width:18px;height:18px;flex:none}.install-steps{margin:0;font-size:15px;font-weight:600;line-height:1.45;text-align:center}.login-settings,.login-install{position:absolute;inset:76px 24px 24px;display:flex;flex-direction:column;justify-content:center;gap:22px;padding:20px 24px;border:2.5px solid var(--teal);border-radius:20px;background:#ecfcfdfa;font-size:18px;font-weight:700}.login-settings[hidden],.login-install[hidden]{display:none}.login-settings h2,.login-install h2{margin:0;font-size:20px;text-align:center}.setting{display:flex;white-space:nowrap;align-items:center;gap:12px}.setting input[type=range]{flex:1;accent-color:#ff8c3f}.setting output{min-width:2.6em;text-align:right}.login-settings .secondary,.login-install .secondary{width:60%}@media(max-height:540px){.login-panel{padding:12px 26px 14px}.login-tools{margin-bottom:6px}.tool{width:38px;height:38px;padding:7px}.login-form{gap:8px}.field{height:44px}.primary{height:46px;font-size:20px!important}.secondary{height:40px;font-size:17px!important}.login-settings,.login-install{inset:58px 20px 16px;gap:12px}.install-link{margin-top:-2px;padding:0 6px}.login-rule:has(+.install-link:not([hidden])){display:none}}#fullscreen{z-index:20}@media(orientation:portrait)and (max-width:520px){#login .login-panel{width:min(380px,90%);padding:14px 20px 18px;border-radius:24px;background:radial-gradient(120% 60% at 0% 0%,rgba(255,255,255,.5),transparent 60%),linear-gradient(160deg,#c4f4fad6,#e8fbfcd6)}#login .login-tools{margin-bottom:8px}#login .tool{width:36px;height:36px;padding:7px}#login .login-form{gap:9px}#login .field{height:44px;padding:0 12px;border-radius:14px}#login .field svg{width:22px;height:22px}#login .field input{font-size:16px}#login .login-row{font-size:14px}#login .primary{height:46px;font-size:20px!important}#login .secondary{height:40px;font-size:17px!important}#login .login-settings,#login .login-install{inset:56px 16px 16px;gap:14px;font-size:16px}}#ios-install{--teal: #1f8a93;--ink: #17606c;--gold: #f2c53d;position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:#0018229e;font-family:Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--ink);color-scheme:light;-webkit-user-select:none;user-select:none}.ig-card{position:relative;display:flex;flex-direction:column;gap:10px;width:min(440px,100%);max-height:100%;overflow:auto;padding:14px 16px 16px;border:2.5px solid var(--teal);border-radius:22px;background:linear-gradient(160deg,#d9f7fa,#f2fdfd);box-shadow:0 10px 30px #001e2859}.ig-close{position:absolute;top:10px;right:10px;width:34px;height:34px;padding:7px;border:2px solid var(--teal);border-radius:50%;background:#fff;color:var(--ink);cursor:pointer}.ig-close svg{display:block;width:100%;height:100%}.ig-head{padding-right:40px}.ig-step{display:inline-block;padding:2px 10px;border-radius:10px;background:var(--gold);color:#5a3b00;font-size:13px;font-weight:800}.ig-head h2{margin:4px 0 0;font-size:18px;font-weight:800}.ig-body{display:flex;flex-direction:column;gap:10px}.ig-figure svg{display:block;width:100%;height:auto;border:2px solid #c6e4e8;border-radius:14px;background:#fff}.ig-caption{margin:0;font-size:16px;font-weight:600;line-height:1.45}.ig-caption b{color:#c4500f}.ig-land-tip{display:none;margin:6px 0 0;font-size:13px;font-weight:600;opacity:.8}.ig-nav{display:flex;align-items:center;gap:10px}#ios-install .ig-nav button.primary,#ios-install .ig-nav button.secondary{flex:1;width:auto;height:42px;border-radius:21px;font-size:17px!important;font-weight:800!important;cursor:pointer}#ios-install .ig-back:disabled{visibility:hidden}.ig-dots{display:flex;gap:6px}.ig-dots button{width:10px;height:10px;padding:0;border:0;border-radius:5px;background:#a9d3d8;cursor:pointer;transition:width .2s}.ig-dots button.on{width:22px;background:var(--teal)}.ig-pointer{position:fixed;bottom:calc(env(safe-area-inset-bottom) + 4px);left:50%;display:none;flex-direction:column;align-items:center;transform:translate(-50%);pointer-events:none}.ig-pointer[data-at=right]{left:auto;right:max(6px,env(safe-area-inset-right));transform:none}.ig-pointer span{padding:2px 8px;border-radius:8px;background:#ff8c3f;color:#fff;font-size:13px;font-weight:800}.ig-pointer svg{width:26px;height:36px;animation:ig-bob .9s ease-in-out infinite}@media(orientation:portrait)and (pointer:coarse){.ig-pointer:not([hidden]){display:flex}}#ios-install .ig-bob{animation:ig-bob .9s ease-in-out infinite}#ios-install .ig-pulse{transform-box:fill-box;transform-origin:center;animation:ig-pulse 1.4s ease-out infinite}@keyframes ig-bob{50%{transform:translateY(-6px)}}@keyframes ig-pulse{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.35)}}@media(prefers-reduced-motion:reduce){#ios-install .ig-bob,#ios-install .ig-pulse,.ig-pointer svg{animation:none}}@media(orientation:landscape)and (max-height:540px){.ig-card{width:min(640px,100%);gap:8px;padding:10px 14px 12px}.ig-head h2{font-size:16px}.ig-body{flex-direction:row;align-items:center;gap:14px}.ig-figure{flex:0 0 52%}.ig-caption{font-size:15px}.ig-land-tip{display:block}#ios-install .ig-nav button.primary,#ios-install .ig-nav button.secondary{height:38px}}#admin-tool{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:16px;background:#0000008c}#admin-tool[hidden]{display:none}#admin-tool .admin-panel{width:min(440px,100%);max-height:100%;overflow-y:auto;padding:14px 16px 16px;border:2px solid #6cb7bb;border-radius:10px;background:#0f2a36;color:#e9f7fb;font-size:14px;box-shadow:0 8px 28px #00000080}#admin-tool.busy .admin-panel{cursor:progress}#admin-tool .admin-head{display:flex;align-items:center;justify-content:space-between}#admin-tool h2{margin:0;font-size:18px;color:#ffe27a}#admin-tool h3{margin:0 0 6px;font-size:14px;color:#c6f0ff}#admin-tool .admin-close{width:32px;height:32px;border:0;border-radius:6px;background:#1c6c92;color:#fff;font-size:20px;cursor:pointer}#admin-tool .admin-message{min-height:1.3em;margin:8px 0;color:#9ff0a8}#admin-tool .admin-message.error{color:#ff9a8a}#admin-tool .admin-section{margin-top:10px;padding-top:10px;border-top:1px solid #2c5868}#admin-tool .admin-note{margin:0 0 6px;font-size:12px;color:#a9c8d2}#admin-tool .admin-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;margin-top:6px}#admin-tool .admin-row label{display:flex;gap:6px;align-items:center}#admin-tool input,#admin-tool select{font:inherit;color:#0f2a36;background:#f4fbfd;border:1px solid #6cb7bb;border-radius:5px;padding:4px 6px}#admin-tool input[type=search],#admin-tool select[size]{width:100%;margin-bottom:4px}#admin-tool input[type=number]{width:120px}#admin-tool .admin-row select{flex:1;min-width:0}#admin-tool .admin-row button{padding:6px 14px;border:0;border-radius:6px;background:#e07a1f;color:#fff;font:inherit;font-weight:700;cursor:pointer}
