/*
 * WolfStorm — Wolf Territories Grid Web Viewer
 * Copyright (C) 2026 Wolf Territories Grid / IntelligentWolf Ltd.
 * All rights reserved.
 *
 * An original work. Interoperates with OpenSimulator grids by implementing the
 * publicly documented LLUDP and HTTP capability protocols; protocol
 * interoperability does not imply shared authorship or a shared code base.
 *
 * Unauthorised copying, redistribution or modification of this file, in whole or
 * in part, is prohibited without the written permission of IntelligentWolf Ltd.
 * See COPYRIGHT in the project root. https://wolfterritories.org
 */
#touch-controls{position:fixed;inset:0;z-index:995;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}#touch-controls .touch-btn,#touch-controls .touch-stick{pointer-events:auto;touch-action:none}#touch-controls .touch-stick{position:absolute;right:calc(16px + env(safe-area-inset-right, 0px));bottom:calc(var(--ws-toolbar-h, 60px) + 14px + env(safe-area-inset-bottom, 0px));width:132px;height:132px;border-radius:50%;background:rgba(20, 26, 38, 0.42);border:1px solid rgba(160, 200, 255, 0.45);box-shadow:0 4px 16px rgba(0, 0, 0, 0.45);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}#touch-controls .touch-stick.active{background:rgba(30, 44, 68, 0.58);border-color:rgba(190, 225, 255, 0.75)}#touch-controls .touch-stick-ring{position:absolute;left:50%;top:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border-radius:50%;border:1px dashed rgba(200, 225, 255, 0.35)}#touch-controls .touch-stick-knob{position:absolute;left:50%;top:50%;width:54px;height:54px;border-radius:50%;transform:translate(-50%, -50%);background:radial-gradient(circle at 35% 30%,
        rgba(235, 245, 255, 0.98), rgba(120, 165, 220, 0.95));border:1px solid rgba(255, 255, 255, 0.85);box-shadow:0 3px 10px rgba(0, 0, 0, 0.55)}#touch-controls .touch-buttons{position:absolute;right:calc(160px + env(safe-area-inset-right, 0px));bottom:calc(var(--ws-toolbar-h, 60px) + 14px + env(safe-area-inset-bottom, 0px));display:flex;flex-direction:column-reverse;gap:10px}#touch-controls .touch-btn{width:56px;height:56px;border-radius:50%;border:1px solid rgba(160, 200, 255, 0.5);background:rgba(20, 26, 38, 0.62);color:#f0f6ff;font-size:22px;line-height:1;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0, 0, 0, 0.45);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}#touch-controls .touch-btn.active{background:rgba(60, 100, 180, 0.92);border-color:rgba(180, 220, 255, 0.9);transform:scale(0.94)}#touch-controls .touch-btn.toggled{background:rgba(46, 132, 70, 0.92);border-color:rgba(150, 245, 175, 0.85)}#touch-controls .touch-btn:focus-visible{outline:2px solid #9ccfff;outline-offset:2px}@media (max-height: 480px){#touch-controls .touch-stick{width:104px;height:104px;bottom:calc(64px + env(safe-area-inset-bottom, 0px))}#touch-controls .touch-stick-knob{width:44px;height:44px}#touch-controls .touch-buttons{flex-direction:row-reverse;right:calc(130px + env(safe-area-inset-right, 0px));bottom:calc(64px + env(safe-area-inset-bottom, 0px));gap:8px}#touch-controls .touch-btn{width:48px;height:48px;font-size:19px}}