*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden;background:#0f0f14;font-family:Outfit,sans-serif;-webkit-font-smoothing:antialiased}canvas{display:block;touch-action:none;overscroll-behavior:none;-webkit-user-select:none;user-select:none}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#0f0f14;transition:opacity .8s cubic-bezier(.4,0,.2,1),visibility .8s}.loading-overlay--hidden{opacity:0;visibility:hidden;pointer-events:none}.loading-content{display:flex;flex-direction:column;align-items:center;gap:20px}.loading-ring{width:48px;height:48px}.loading-ring svg{width:100%;height:100%;animation:loading-rotate 2s linear infinite}.loading-ring__track{stroke:#ffffff26}.loading-ring__fill{stroke:#ffffffd9;stroke-dasharray:80 126;stroke-dashoffset:0;stroke-linecap:round;transform-origin:center}@keyframes loading-rotate{to{transform:rotate(360deg)}}.loading-label{font-family:Syne,sans-serif;font-weight:600;font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:#ffffffb3}.controls-hint{position:fixed;bottom:28px;left:50%;transform:translate(-50%);z-index:50;animation:hint-enter .6s cubic-bezier(.16,1,.3,1) forwards}.controls-hint--hidden{animation:hint-exit .8s cubic-bezier(.4,0,.2,1) forwards}@keyframes hint-enter{0%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes hint-exit{0%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(8px)}}.controls-hint__items{display:flex;align-items:center;gap:0;padding:14px 24px;border-radius:100px;background:#0000008c;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.22);box-shadow:0 4px 24px #00000059}.controls-hint__item{display:flex;align-items:center;gap:10px;padding:0 14px;color:#ffffffeb;font-size:14px;font-weight:500;letter-spacing:.02em;white-space:nowrap}.controls-hint__item svg{flex-shrink:0;opacity:.9}.controls-hint__divider{width:1px;height:18px;background:#ffffff40;flex-shrink:0}
