.btn{min-height:2.75rem;font:inherit;letter-spacing:.01em;cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding:.65rem 1.25rem;font-weight:700;transition:transform .12s,filter .12s,background .12s;display:inline-flex}.btn:active{transform:scale(.96)}.btn:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{background:linear-gradient(180deg, var(--color-accent-light), var(--color-accent));color:var(--color-ink);box-shadow:0 4px 0 var(--color-accent-dark), 0 8px 18px #0000004d}.btn--primary:active{box-shadow:0 1px 0 var(--color-accent-dark)}.btn--secondary{color:var(--color-text);background:#ffffff1f;box-shadow:inset 0 0 0 1px #ffffff38}.btn--secondary:hover{background:#ffffff2e}.btn--ghost{color:var(--color-text);background:0 0}.btn--ghost:hover{background:#ffffff1a}.btn--compact{min-width:2.5rem;min-height:2.5rem;padding:.4rem .6rem}.btn__icon{width:1.25rem;height:1.25rem;display:inline-flex}.btn__icon svg{width:100%;height:100%}.modal{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0a10069e;place-items:center;padding:1rem;animation:.35s .45s both modal-fade;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.modal__card{background:linear-gradient(#3b5a28,#24361a);border-radius:1.5rem;width:min(26rem,100%);max-height:calc(100dvh - 2rem);padding:1.5rem;animation:.4s cubic-bezier(.2,1.4,.4,1) .45s both modal-pop;overflow:auto;box-shadow:0 20px 50px #00000080,inset 0 0 0 1px #ffffff1a}.modal__title{text-align:center;margin:0 0 1rem;font-size:1.5rem}.modal__footer{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:1.25rem;display:flex}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.stars{vertical-align:middle;gap:.1rem;display:inline-flex}.stars svg{stroke-linejoin:round;stroke-width:1.5px;width:1rem;height:1rem}.stars--lg svg{width:3rem;height:3rem}.stars__on{fill:#ffd23f;stroke:#b77d0c;filter:drop-shadow(0 2px 3px #00000059)}.stars__off{fill:#ffffff26;stroke:#ffffff4d}.stars--animated .stars__on{animation:.5s cubic-bezier(.2,1.6,.4,1) both star-pop}@keyframes star-pop{0%{opacity:0;transform:scale(0)rotate(-90deg)}to{opacity:1;transform:scale(1)rotate(0)}}.segmented{border:0;min-width:0;margin:0;padding:0}.segmented__legend{color:var(--color-muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.5rem;font-size:.9rem;font-weight:700}.segmented__row{flex-wrap:wrap;gap:.4rem;display:flex}.segmented__option{cursor:pointer;background:#ffffff14;border-radius:999px;padding:.45rem .85rem;font-size:.88rem;font-weight:700;position:relative;box-shadow:inset 0 0 0 1px #ffffff24}.segmented__option input{opacity:0;pointer-events:none;position:absolute}.segmented__option.is-selected{box-shadow:inset 0 0 0 2px var(--color-accent);background:#ffcf5c33}.segmented__option:has(input:focus-visible){outline:3px solid var(--color-focus);outline-offset:2px}.toast{z-index:6;text-align:center;pointer-events:none;border-radius:999px;max-width:calc(100% - 9rem);padding:.45rem .9rem;font-size:.85rem;font-weight:800;animation:3.2s both toast-life;position:absolute;top:.6rem;left:50%;box-shadow:0 6px 16px #0006}.toast--info{color:#2a1708;background:#f6efe0}.toast--good{color:#163a08;background:#c8f5a8}.toast--warn{color:#5a1a08;background:#ffd0b8}@keyframes toast-life{0%{opacity:0;transform:translate(-50%,-10px)}8%{opacity:1;transform:translate(-50%)}85%{opacity:1}to{opacity:0;transform:translate(-50%,-6px)}}.joystick{--size:clamp(6.5rem, 30vmin, 8.5rem);width:var(--size);height:var(--size);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;cursor:grab;background:radial-gradient(circle at 50% 45%,#ffffff29,#ffffff0d 70%);border-radius:50%;place-items:center;display:grid;position:relative;box-shadow:inset 0 0 0 2px #ffffff38,0 6px 18px #00000059}.joystick.is-active{cursor:grabbing;box-shadow:inset 0 0 0 2px var(--color-accent), 0 6px 18px #00000059}.joystick--look{background:radial-gradient(circle at 50% 45%,#a0dcff2e,#a0dcff0d 70%)}.joystick__hint{color:var(--color-muted);letter-spacing:.04em;pointer-events:none;font-size:.68rem;font-weight:800;position:absolute;top:.35rem}.joystick__knob{background:radial-gradient(circle at 35% 30%, #fff6d8, var(--color-accent) 60%, var(--color-accent-dark));pointer-events:none;border-radius:50%;width:46%;height:46%;transition:transform 60ms linear;box-shadow:0 4px 10px #00000073}.joystick--look .joystick__knob{background:radial-gradient(circle at 35% 30%,#eaf7ff,#6ac2ff 60%,#2f7fb3)}.menu-pop{display:flex;position:relative}.menu-pop__toggle{width:2.3rem;height:2.3rem;color:var(--color-text);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffff1f;border:0;border-radius:.75rem;flex:none;place-items:center;padding:0;display:grid;box-shadow:inset 0 0 0 1px #fff3}.menu-pop__toggle svg{width:1.35rem;height:1.35rem}.menu-pop.is-open .menu-pop__toggle{background:var(--color-accent);color:var(--color-ink)}.menu-pop__toggle:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.menu-pop__panel{z-index:30;background:#161e10f7;border-radius:1rem;width:min(21rem,100vw - 1rem);max-height:calc(100dvh - 4.5rem);padding:.75rem;animation:.16s ease-out both menu-pop-in;position:absolute;top:calc(100% + .45rem);left:0;overflow:auto;box-shadow:0 14px 40px #0000008c,inset 0 0 0 1px #ffffff1f}@keyframes menu-pop-in{0%{opacity:0;transform:translateY(-6px)}}.menu-pop__section{gap:.35rem;display:grid}.menu-pop__section+.menu-pop__section{border-top:1px solid #ffffff1a;margin-top:.7rem;padding-top:.6rem}.menu-pop__grid{grid-template-columns:1fr 1fr;gap:.4rem;display:grid}.menu-pop__item{min-height:2.6rem;color:var(--color-text);font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffff1a;border:0;border-radius:.75rem;align-items:center;gap:.5rem;padding:.45rem .65rem;font-size:.85rem;font-weight:700;display:flex}.menu-pop__item:hover:not(:disabled){background:#ffffff2e}.menu-pop__item:disabled{opacity:.45;cursor:not-allowed}.menu-pop__item:focus-visible{outline:3px solid var(--color-focus)}.menu-pop__item svg{flex:none;width:1.15rem;height:1.15rem}.menu-pop__item--wide{grid-column:1/-1}.menu-pop__item--accent{background:#f2b53a40}.menu-pop__title{margin:0;font-size:1rem;font-weight:800}.menu-pop__text{color:var(--color-muted);margin:0;font-size:.8rem}.dpad{--dpad-size:clamp(3.25rem, 15vmin, 4.25rem);grid-template-columns:repeat(3, var(--dpad-size));grid-template-rows:repeat(3, var(--dpad-size));touch-action:none;-webkit-user-select:none;user-select:none;grid-template-areas:".up.""left.right"".down.";gap:.25rem;display:grid}.dpad__btn{color:var(--color-text);cursor:pointer;touch-action:none;-webkit-tap-highlight-color:transparent;background:radial-gradient(circle at 35% 30%,#ffffff47,#ffffff1a);border:0;border-radius:1rem;place-items:center;transition:transform 80ms,background 80ms;display:grid;box-shadow:inset 0 0 0 1px #fff3,0 4px #00000059}.dpad__btn svg{width:55%;height:55%}.dpad__btn:active{background:#ffd66673;transform:translateY(2px);box-shadow:inset 0 0 0 1px #ffffff4d}.dpad__btn:disabled{opacity:.35}.dpad__btn--up{grid-area:up}.dpad__btn--down{grid-area:down}.dpad__btn--left{grid-area:left}.dpad__btn--right{grid-area:right}.twin-sticks{pointer-events:none;justify-content:space-between;align-items:flex-end;width:100%;padding:0 .25rem;display:flex}.twin-sticks>*{pointer-events:auto}.touch-hints{z-index:15;padding:0 .5rem calc(max(.35rem, env(safe-area-inset-bottom)) + .6rem);cursor:pointer;background:#00000059;place-items:end center;animation:.25s ease-out both touch-hints-in;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.touch-hints__zones{width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.touch-hints__zones line{stroke:#fff6;stroke-width:1.5px;stroke-dasharray:6 6}.touch-hints__zones circle{fill:none;stroke:var(--color-accent);stroke-width:3px;transform-box:fill-box;transform-origin:50%;animation:1.2s ease-in-out infinite touch-hints-pulse}.touch-hints__zone{-webkit-backdrop-filter:blur(6px);min-width:2.4rem;color:var(--color-text);text-align:center;white-space:nowrap;background:#0c12088c;border-radius:999px;justify-items:center;gap:.1rem;padding:.3rem .6rem;font-size:.75rem;font-weight:800;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:inset 0 0 0 1px #ffffff2e}.touch-hints__zone b{color:var(--color-accent-light);font-size:1.15rem;line-height:1}.touch-hints__card{-webkit-backdrop-filter:blur(8px);background:#0c12089e;border-radius:1rem;width:min(21rem,100%);padding:.7rem .9rem;font-size:.8rem;position:relative;box-shadow:inset 0 0 0 1px #ffffff2e,0 10px 30px #0006}.touch-hints__card ul{gap:.35rem;margin:.4rem 0;padding-left:1.1rem;display:grid}.touch-hints__title{margin:0;font-size:.95rem;font-weight:800}.touch-hints__close{color:var(--color-muted);margin:0;font-size:.72rem}@keyframes touch-hints-in{0%{opacity:0}}@keyframes touch-hints-pulse{50%{opacity:.5;transform:scale(1.25)}}@media (orientation:landscape) and (max-height:520px){.touch-hints{padding-right:calc(max(.35rem, env(safe-area-inset-right)) + .5rem);place-items:center end}.touch-hints__card{width:min(17rem,45%)}}.touch-ripple{z-index:3;pointer-events:none;background:#ffffff1f;border:2px solid #ffffffbf;border-radius:50%;width:3.2rem;height:3.2rem;margin:-1.6rem 0 0 -1.6rem;animation:.45s ease-out forwards touch-ripple;position:absolute}.touch-ripple--up{border-top-color:var(--color-accent);border-top-width:4px}.touch-ripple--down{border-bottom-color:var(--color-accent);border-bottom-width:4px}.touch-ripple--left{border-left-color:var(--color-accent);border-left-width:4px}.touch-ripple--right{border-right-color:var(--color-accent);border-right-width:4px}@keyframes touch-ripple{0%{opacity:1;transform:scale(.5)}to{opacity:0;transform:scale(1.3)}}.controls-toggle{z-index:5;bottom:calc(var(--safe-bottom,.35rem) + .6rem);color:var(--color-text);-webkit-backdrop-filter:blur(6px);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#0c12086b;border:0;justify-content:center;align-items:center;gap:.2rem;display:inline-flex;position:absolute;box-shadow:inset 0 0 0 1px #ffffff29,0 2px 8px #00000040}.controls-toggle svg{fill:none;stroke:currentColor;stroke-width:2.6px;stroke-linecap:round;stroke-linejoin:round;width:1.1rem;height:1.1rem}.controls-toggle:focus-visible{outline:3px solid var(--color-focus)}.controls-toggle--hide{opacity:.8;border-radius:50%;width:2.2rem;height:2.2rem}.controls-toggle--hide.controls-toggle--pad{left:calc(var(--safe-left,.35rem) + .6rem)}.controls-toggle--hide.controls-toggle--sticks{left:50%;transform:translate(-50%)}.controls-toggle--tab{height:2.6rem;padding:0 .55rem 0 calc(var(--safe-left,.35rem) + .35rem);border-radius:0 999px 999px 0;font-size:1rem;left:0}@media (pointer:fine){.controls-toggle--pad{display:none}}.ant-illustration{filter:drop-shadow(0 10px 12px #0006);animation:1.6s ease-in-out infinite ant-bob}.ant-illustration__legs{transform-origin:100px 100px;animation:.5s ease-in-out infinite alternate ant-legs}.ant-illustration__antennae{transform-origin:100px 52px;animation:1.2s ease-in-out infinite alternate ant-antennae}@keyframes ant-bob{50%{transform:translateY(-6px)}}@keyframes ant-legs{to{transform:scaleY(.94)rotate(2deg)}}@keyframes ant-antennae{to{transform:rotate(-5deg)}}@media (prefers-reduced-motion:reduce){.ant-illustration,.ant-illustration__legs,.ant-illustration__antennae{animation:none}}
