@blcklab/anyo-player 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/LICENSE +21 -0
  3. package/README.md +304 -0
  4. package/dist/createAnyoPlayer.d.ts +3 -0
  5. package/dist/createAnyoPlayer.d.ts.map +1 -0
  6. package/dist/createAnyoPlayer.js +5 -0
  7. package/dist/createAnyoPlayer.js.map +1 -0
  8. package/dist/element-define.d.ts +2 -0
  9. package/dist/element-define.d.ts.map +1 -0
  10. package/dist/element-define.js +4 -0
  11. package/dist/element-define.js.map +1 -0
  12. package/dist/element.d.ts +66 -0
  13. package/dist/element.d.ts.map +1 -0
  14. package/dist/element.js +363 -0
  15. package/dist/element.js.map +1 -0
  16. package/dist/errors.d.ts +11 -0
  17. package/dist/errors.d.ts.map +1 -0
  18. package/dist/errors.js +21 -0
  19. package/dist/errors.js.map +1 -0
  20. package/dist/index.d.ts +13 -0
  21. package/dist/index.d.ts.map +1 -0
  22. package/dist/index.js +10 -0
  23. package/dist/index.js.map +1 -0
  24. package/dist/inputBindings.d.ts +3 -0
  25. package/dist/inputBindings.d.ts.map +1 -0
  26. package/dist/inputBindings.js +3 -0
  27. package/dist/inputBindings.js.map +1 -0
  28. package/dist/internal/AccessibilityController.d.ts +50 -0
  29. package/dist/internal/AccessibilityController.d.ts.map +1 -0
  30. package/dist/internal/AccessibilityController.js +212 -0
  31. package/dist/internal/AccessibilityController.js.map +1 -0
  32. package/dist/internal/AnyoPlayerCore.d.ts +357 -0
  33. package/dist/internal/AnyoPlayerCore.d.ts.map +1 -0
  34. package/dist/internal/AnyoPlayerCore.js +3880 -0
  35. package/dist/internal/AnyoPlayerCore.js.map +1 -0
  36. package/dist/internal/AudioController.d.ts +37 -0
  37. package/dist/internal/AudioController.d.ts.map +1 -0
  38. package/dist/internal/AudioController.js +167 -0
  39. package/dist/internal/AudioController.js.map +1 -0
  40. package/dist/internal/CaptionController.d.ts +16 -0
  41. package/dist/internal/CaptionController.d.ts.map +1 -0
  42. package/dist/internal/CaptionController.js +83 -0
  43. package/dist/internal/CaptionController.js.map +1 -0
  44. package/dist/internal/ContainerHost.d.ts +17 -0
  45. package/dist/internal/ContainerHost.d.ts.map +1 -0
  46. package/dist/internal/ContainerHost.js +110 -0
  47. package/dist/internal/ContainerHost.js.map +1 -0
  48. package/dist/internal/DesktopInputController.d.ts +80 -0
  49. package/dist/internal/DesktopInputController.d.ts.map +1 -0
  50. package/dist/internal/DesktopInputController.js +367 -0
  51. package/dist/internal/DesktopInputController.js.map +1 -0
  52. package/dist/internal/EmbeddingController.d.ts +33 -0
  53. package/dist/internal/EmbeddingController.d.ts.map +1 -0
  54. package/dist/internal/EmbeddingController.js +161 -0
  55. package/dist/internal/EmbeddingController.js.map +1 -0
  56. package/dist/internal/EventHub.d.ts +7 -0
  57. package/dist/internal/EventHub.d.ts.map +1 -0
  58. package/dist/internal/EventHub.js +27 -0
  59. package/dist/internal/EventHub.js.map +1 -0
  60. package/dist/internal/FrameworkAdapterController.d.ts +46 -0
  61. package/dist/internal/FrameworkAdapterController.d.ts.map +1 -0
  62. package/dist/internal/FrameworkAdapterController.js +165 -0
  63. package/dist/internal/FrameworkAdapterController.js.map +1 -0
  64. package/dist/internal/FullscreenController.d.ts +29 -0
  65. package/dist/internal/FullscreenController.d.ts.map +1 -0
  66. package/dist/internal/FullscreenController.js +122 -0
  67. package/dist/internal/FullscreenController.js.map +1 -0
  68. package/dist/internal/GamepadController.d.ts +54 -0
  69. package/dist/internal/GamepadController.d.ts.map +1 -0
  70. package/dist/internal/GamepadController.js +276 -0
  71. package/dist/internal/GamepadController.js.map +1 -0
  72. package/dist/internal/InputBindingsController.d.ts +34 -0
  73. package/dist/internal/InputBindingsController.d.ts.map +1 -0
  74. package/dist/internal/InputBindingsController.js +223 -0
  75. package/dist/internal/InputBindingsController.js.map +1 -0
  76. package/dist/internal/InteractionPresentationController.d.ts +38 -0
  77. package/dist/internal/InteractionPresentationController.d.ts.map +1 -0
  78. package/dist/internal/InteractionPresentationController.js +208 -0
  79. package/dist/internal/InteractionPresentationController.js.map +1 -0
  80. package/dist/internal/MapController.d.ts +16 -0
  81. package/dist/internal/MapController.d.ts.map +1 -0
  82. package/dist/internal/MapController.js +68 -0
  83. package/dist/internal/MapController.js.map +1 -0
  84. package/dist/internal/PerformanceController.d.ts +94 -0
  85. package/dist/internal/PerformanceController.d.ts.map +1 -0
  86. package/dist/internal/PerformanceController.js +455 -0
  87. package/dist/internal/PerformanceController.js.map +1 -0
  88. package/dist/internal/PlayerCameraController.d.ts +79 -0
  89. package/dist/internal/PlayerCameraController.d.ts.map +1 -0
  90. package/dist/internal/PlayerCameraController.js +551 -0
  91. package/dist/internal/PlayerCameraController.js.map +1 -0
  92. package/dist/internal/ResponsiveController.d.ts +37 -0
  93. package/dist/internal/ResponsiveController.d.ts.map +1 -0
  94. package/dist/internal/ResponsiveController.js +143 -0
  95. package/dist/internal/ResponsiveController.js.map +1 -0
  96. package/dist/internal/RuntimeFactory.d.ts +42 -0
  97. package/dist/internal/RuntimeFactory.d.ts.map +1 -0
  98. package/dist/internal/RuntimeFactory.js +93 -0
  99. package/dist/internal/RuntimeFactory.js.map +1 -0
  100. package/dist/internal/ScreenshotController.d.ts +8 -0
  101. package/dist/internal/ScreenshotController.d.ts.map +1 -0
  102. package/dist/internal/ScreenshotController.js +47 -0
  103. package/dist/internal/ScreenshotController.js.map +1 -0
  104. package/dist/internal/SessionController.d.ts +44 -0
  105. package/dist/internal/SessionController.d.ts.map +1 -0
  106. package/dist/internal/SessionController.js +411 -0
  107. package/dist/internal/SessionController.js.map +1 -0
  108. package/dist/internal/SourceResolver.d.ts +31 -0
  109. package/dist/internal/SourceResolver.d.ts.map +1 -0
  110. package/dist/internal/SourceResolver.js +362 -0
  111. package/dist/internal/SourceResolver.js.map +1 -0
  112. package/dist/internal/StateMachine.d.ts +10 -0
  113. package/dist/internal/StateMachine.d.ts.map +1 -0
  114. package/dist/internal/StateMachine.js +35 -0
  115. package/dist/internal/StateMachine.js.map +1 -0
  116. package/dist/internal/StyleController.d.ts +14 -0
  117. package/dist/internal/StyleController.d.ts.map +1 -0
  118. package/dist/internal/StyleController.js +116 -0
  119. package/dist/internal/StyleController.js.map +1 -0
  120. package/dist/internal/TelemetryController.d.ts +28 -0
  121. package/dist/internal/TelemetryController.d.ts.map +1 -0
  122. package/dist/internal/TelemetryController.js +113 -0
  123. package/dist/internal/TelemetryController.js.map +1 -0
  124. package/dist/internal/TouchInputController.d.ts +73 -0
  125. package/dist/internal/TouchInputController.d.ts.map +1 -0
  126. package/dist/internal/TouchInputController.js +379 -0
  127. package/dist/internal/TouchInputController.js.map +1 -0
  128. package/dist/internal/VfxController.d.ts +11 -0
  129. package/dist/internal/VfxController.d.ts.map +1 -0
  130. package/dist/internal/VfxController.js +23 -0
  131. package/dist/internal/VfxController.js.map +1 -0
  132. package/dist/internal/ViewPreferenceController.d.ts +40 -0
  133. package/dist/internal/ViewPreferenceController.d.ts.map +1 -0
  134. package/dist/internal/ViewPreferenceController.js +132 -0
  135. package/dist/internal/ViewPreferenceController.js.map +1 -0
  136. package/dist/internal/VisibilityController.d.ts +26 -0
  137. package/dist/internal/VisibilityController.d.ts.map +1 -0
  138. package/dist/internal/VisibilityController.js +62 -0
  139. package/dist/internal/VisibilityController.js.map +1 -0
  140. package/dist/internal/XRController.d.ts +42 -0
  141. package/dist/internal/XRController.d.ts.map +1 -0
  142. package/dist/internal/XRController.js +169 -0
  143. package/dist/internal/XRController.js.map +1 -0
  144. package/dist/internal/sourceUrls.d.ts +6 -0
  145. package/dist/internal/sourceUrls.d.ts.map +1 -0
  146. package/dist/internal/sourceUrls.js +79 -0
  147. package/dist/internal/sourceUrls.js.map +1 -0
  148. package/dist/react.d.ts +44 -0
  149. package/dist/react.d.ts.map +1 -0
  150. package/dist/react.js +115 -0
  151. package/dist/react.js.map +1 -0
  152. package/dist/session.d.ts +3 -0
  153. package/dist/session.d.ts.map +1 -0
  154. package/dist/session.js +3 -0
  155. package/dist/session.js.map +1 -0
  156. package/dist/styleText.d.ts +2 -0
  157. package/dist/styleText.d.ts.map +1 -0
  158. package/dist/styleText.js +2 -0
  159. package/dist/styleText.js.map +1 -0
  160. package/dist/styles.css +573 -0
  161. package/dist/types.d.ts +1476 -0
  162. package/dist/types.d.ts.map +1 -0
  163. package/dist/types.js +2 -0
  164. package/dist/types.js.map +1 -0
  165. package/dist/ui/PlayerUI.d.ts +193 -0
  166. package/dist/ui/PlayerUI.d.ts.map +1 -0
  167. package/dist/ui/PlayerUI.js +1201 -0
  168. package/dist/ui/PlayerUI.js.map +1 -0
  169. package/dist/vue.d.ts +97 -0
  170. package/dist/vue.d.ts.map +1 -0
  171. package/dist/vue.js +126 -0
  172. package/dist/vue.js.map +1 -0
  173. package/dist/worldCache.d.ts +16 -0
  174. package/dist/worldCache.d.ts.map +1 -0
  175. package/dist/worldCache.js +46 -0
  176. package/dist/worldCache.js.map +1 -0
  177. package/dist/worldSources.d.ts +19 -0
  178. package/dist/worldSources.d.ts.map +1 -0
  179. package/dist/worldSources.js +51 -0
  180. package/dist/worldSources.js.map +1 -0
  181. package/package.json +114 -0
@@ -0,0 +1,573 @@
1
+ .anyo-player {
2
+ --anyo-player-ui-background: rgba(12, 15, 20, 0.88);
3
+ --anyo-player-ui-surface: rgba(24, 28, 35, 0.94);
4
+ --anyo-player-ui-text: #f7f8fa;
5
+ --anyo-player-ui-muted: #b7bec9;
6
+ --anyo-player-ui-border: rgba(255, 255, 255, 0.12);
7
+ --anyo-player-ui-accent: #f7f8fa;
8
+ --anyo-player-ui-accent-text: #111318;
9
+ --anyo-player-ui-warning: #f6c85f;
10
+ --anyo-player-ui-error: #ff8f8f;
11
+ --anyo-player-ui-panel-radius: 14px;
12
+ --anyo-player-ui-control-radius: 9px;
13
+ --anyo-player-ui-font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
14
+ --anyo-player-ui-backdrop-blur: 14px;
15
+ position: relative;
16
+ overflow: hidden;
17
+ contain: layout paint style;
18
+ background: #111318;
19
+ }
20
+
21
+ .anyo-player__canvas {
22
+ display: block;
23
+ width: 100%;
24
+ height: 100%;
25
+ outline: none;
26
+ touch-action: none;
27
+ }
28
+
29
+ .anyo-player__ui,
30
+ .anyo-player__ui * {
31
+ box-sizing: border-box;
32
+ }
33
+
34
+ .anyo-player__ui[hidden],
35
+ .anyo-player__ui [hidden] {
36
+ display: none !important;
37
+ }
38
+
39
+ .anyo-player__slot {
40
+ display: contents;
41
+ }
42
+
43
+ .anyo-player__ui[data-anyo-player-adapter-mode="replace"] [data-anyo-player-default-ui] {
44
+ display: none !important;
45
+ }
46
+
47
+ .anyo-player__ui {
48
+ position: absolute;
49
+ inset: 0;
50
+ z-index: 2;
51
+ display: grid;
52
+ place-items: center;
53
+ padding: 20px;
54
+ pointer-events: none;
55
+ color: var(--anyo-player-ui-text);
56
+ font: 500 14px/1.45 var(--anyo-player-ui-font-family);
57
+ }
58
+
59
+ .anyo-player__panel {
60
+ width: min(360px, 100%);
61
+ padding: 20px;
62
+ border: 1px solid var(--anyo-player-ui-border);
63
+ border-radius: var(--anyo-player-ui-panel-radius);
64
+ background: var(--anyo-player-ui-background);
65
+ box-shadow: 0 18px 48px rgba(0, 0, 0, 0.3);
66
+ backdrop-filter: blur(var(--anyo-player-ui-backdrop-blur));
67
+ text-align: center;
68
+ }
69
+
70
+ .anyo-player__title,
71
+ .anyo-player__message,
72
+ .anyo-player__progress-details,
73
+ .anyo-player__diagnostic-message {
74
+ margin: 0;
75
+ }
76
+
77
+ .anyo-player__title {
78
+ font-size: 16px;
79
+ font-weight: 700;
80
+ letter-spacing: -0.01em;
81
+ }
82
+
83
+ .anyo-player__message {
84
+ margin-top: 7px;
85
+ color: var(--anyo-player-ui-muted);
86
+ }
87
+
88
+ .anyo-player__progress {
89
+ width: 100%;
90
+ height: 5px;
91
+ margin-top: 16px;
92
+ overflow: hidden;
93
+ border-radius: 999px;
94
+ background: rgba(255, 255, 255, 0.13);
95
+ }
96
+
97
+ .anyo-player__progress-fill {
98
+ width: 0;
99
+ height: 100%;
100
+ border-radius: inherit;
101
+ background: var(--anyo-player-ui-accent);
102
+ transition: width 160ms ease-out;
103
+ }
104
+
105
+ .anyo-player__progress-details {
106
+ margin-top: 9px;
107
+ color: var(--anyo-player-ui-muted);
108
+ font-size: 12px;
109
+ }
110
+
111
+ .anyo-player__diagnostic {
112
+ position: absolute;
113
+ top: 16px;
114
+ left: 50%;
115
+ width: min(520px, calc(100% - 32px));
116
+ transform: translateX(-50%);
117
+ padding: 10px 13px;
118
+ border: 1px solid var(--anyo-player-ui-border);
119
+ border-radius: 10px;
120
+ background: var(--anyo-player-ui-surface);
121
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.22);
122
+ text-align: center;
123
+ }
124
+
125
+ .anyo-player__diagnostic[data-severity="warning"] {
126
+ border-color: color-mix(in srgb, var(--anyo-player-ui-warning) 55%, transparent);
127
+ }
128
+
129
+ .anyo-player__diagnostic[data-severity="error"] {
130
+ border-color: color-mix(in srgb, var(--anyo-player-ui-error) 55%, transparent);
131
+ }
132
+
133
+ .anyo-player__panel--error {
134
+ pointer-events: auto;
135
+ }
136
+
137
+ .anyo-player__button {
138
+ min-height: 38px;
139
+ margin-top: 16px;
140
+ padding: 8px 16px;
141
+ border: 0;
142
+ border-radius: var(--anyo-player-ui-control-radius);
143
+ background: var(--anyo-player-ui-accent);
144
+ color: var(--anyo-player-ui-accent-text);
145
+ font: inherit;
146
+ font-weight: 700;
147
+ cursor: pointer;
148
+ }
149
+
150
+ .anyo-player__button:hover:not(:disabled) {
151
+ filter: brightness(0.92);
152
+ }
153
+
154
+ .anyo-player__button:focus-visible {
155
+ outline: 2px solid var(--anyo-player-ui-text);
156
+ outline-offset: 3px;
157
+ }
158
+
159
+ .anyo-player__button:disabled {
160
+ cursor: wait;
161
+ opacity: 0.55;
162
+ }
163
+
164
+ @media (prefers-reduced-motion: reduce) {
165
+ .anyo-player__progress-fill,
166
+ .anyo-player__reticle {
167
+ transition: none;
168
+ }
169
+ }
170
+
171
+ .anyo-player__panel--enter {
172
+ pointer-events: auto;
173
+ }
174
+
175
+ .anyo-player__panel--enter .anyo-player__button {
176
+ min-width: 112px;
177
+ }
178
+
179
+ .anyo-player__canvas:focus-visible {
180
+ outline: 2px solid var(--anyo-player-ui-accent);
181
+ outline-offset: -2px;
182
+ }
183
+
184
+ .anyo-player__panel--paused {
185
+ pointer-events: auto;
186
+ }
187
+
188
+ .anyo-player__pause-actions {
189
+ display: flex;
190
+ flex-wrap: wrap;
191
+ justify-content: center;
192
+ gap: 8px;
193
+ margin-top: 14px;
194
+ }
195
+
196
+ .anyo-player__pause-action {
197
+ min-width: 104px;
198
+ margin-top: 0;
199
+ }
200
+
201
+ .anyo-player__controls {
202
+ position: absolute;
203
+ right: 16px;
204
+ bottom: 16px;
205
+ display: flex;
206
+ gap: 8px;
207
+ pointer-events: auto;
208
+ }
209
+
210
+ .anyo-player__control {
211
+ min-height: 36px;
212
+ padding: 7px 12px;
213
+ border: 1px solid var(--anyo-player-ui-border);
214
+ border-radius: var(--anyo-player-ui-control-radius);
215
+ background: var(--anyo-player-ui-surface);
216
+ color: var(--anyo-player-ui-text);
217
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.22);
218
+ backdrop-filter: blur(12px);
219
+ font: inherit;
220
+ font-weight: 650;
221
+ cursor: pointer;
222
+ }
223
+
224
+ .anyo-player__control:hover:not(:disabled) {
225
+ background: color-mix(in srgb, var(--anyo-player-ui-surface) 84%, white);
226
+ }
227
+
228
+ .anyo-player__control:focus-visible {
229
+ outline: 2px solid var(--anyo-player-ui-text);
230
+ outline-offset: 3px;
231
+ }
232
+
233
+ .anyo-player__control:disabled {
234
+ cursor: wait;
235
+ opacity: 0.55;
236
+ }
237
+
238
+ @media (max-width: 520px) {
239
+ .anyo-player__pause-actions {
240
+ display: grid;
241
+ width: min(100%, 280px);
242
+ grid-template-columns: 1fr;
243
+ }
244
+
245
+ .anyo-player__pause-action {
246
+ width: 100%;
247
+ }
248
+
249
+ .anyo-player__controls {
250
+ right: 10px;
251
+ bottom: 10px;
252
+ }
253
+
254
+ .anyo-player__control {
255
+ min-height: 40px;
256
+ padding-inline: 11px;
257
+ }
258
+ }
259
+
260
+ .anyo-player__reticle {
261
+ position: absolute;
262
+ left: 50%;
263
+ top: 50%;
264
+ width: 18px;
265
+ height: 18px;
266
+ transform: translate(-50%, -50%);
267
+ pointer-events: none;
268
+ opacity: 0.72;
269
+ transition: opacity 120ms ease, transform 120ms ease;
270
+ }
271
+
272
+ .anyo-player__reticle::before,
273
+ .anyo-player__reticle::after {
274
+ content: "";
275
+ position: absolute;
276
+ left: 50%;
277
+ top: 50%;
278
+ border-radius: 999px;
279
+ background: var(--anyo-player-ui-text);
280
+ box-shadow: 0 1px 5px rgba(0, 0, 0, 0.55);
281
+ transform: translate(-50%, -50%);
282
+ }
283
+
284
+ .anyo-player__reticle::before {
285
+ width: 2px;
286
+ height: 14px;
287
+ }
288
+
289
+ .anyo-player__reticle::after {
290
+ width: 14px;
291
+ height: 2px;
292
+ }
293
+
294
+ .anyo-player__reticle[data-active="true"] {
295
+ opacity: 1;
296
+ transform: translate(-50%, -50%) scale(1.18);
297
+ }
298
+
299
+ .anyo-player__reticle[data-active="true"]::before,
300
+ .anyo-player__reticle[data-active="true"]::after {
301
+ background: var(--anyo-player-ui-accent);
302
+ }
303
+
304
+ .anyo-player__interaction-prompt {
305
+ position: absolute;
306
+ left: 50%;
307
+ bottom: 72px;
308
+ width: max-content;
309
+ max-width: min(420px, calc(100% - 32px));
310
+ transform: translateX(-50%);
311
+ padding: 10px 13px;
312
+ border: 1px solid var(--anyo-player-ui-border);
313
+ border-radius: 12px;
314
+ background: var(--anyo-player-ui-surface);
315
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.24);
316
+ backdrop-filter: blur(12px);
317
+ display: flex;
318
+ flex-direction: column;
319
+ pointer-events: auto;
320
+ text-align: left;
321
+ }
322
+
323
+ .anyo-player__interaction-prompt-title,
324
+ .anyo-player__interaction-prompt-message,
325
+ .anyo-player__interaction-prompt-description {
326
+ margin: 0;
327
+ }
328
+
329
+ .anyo-player__interaction-prompt-title {
330
+ order: -1;
331
+ margin-bottom: 2px;
332
+ color: var(--anyo-player-ui-muted);
333
+ font-size: 11px;
334
+ font-weight: 700;
335
+ letter-spacing: 0.06em;
336
+ text-transform: uppercase;
337
+ }
338
+
339
+ .anyo-player__interaction-prompt-message {
340
+ color: var(--anyo-player-ui-text);
341
+ font-size: 13px;
342
+ font-weight: 700;
343
+ }
344
+
345
+ .anyo-player__interaction-prompt-description {
346
+ margin-top: 3px;
347
+ color: var(--anyo-player-ui-muted);
348
+ font-size: 12px;
349
+ font-weight: 500;
350
+ }
351
+
352
+ .anyo-player__interaction-prompt-footer {
353
+ display: flex;
354
+ align-items: center;
355
+ justify-content: space-between;
356
+ gap: 12px;
357
+ margin-top: 7px;
358
+ }
359
+
360
+ .anyo-player__interaction-prompt-hint {
361
+ color: var(--anyo-player-ui-muted);
362
+ font-size: 11px;
363
+ font-weight: 650;
364
+ }
365
+
366
+ .anyo-player__interaction-action {
367
+ min-height: 30px;
368
+ padding: 5px 10px;
369
+ border: 1px solid var(--anyo-player-ui-border);
370
+ border-radius: 8px;
371
+ background: var(--anyo-player-ui-accent);
372
+ color: var(--anyo-player-ui-accent-text);
373
+ font: inherit;
374
+ font-size: 12px;
375
+ font-weight: 750;
376
+ cursor: pointer;
377
+ }
378
+
379
+ .anyo-player__interaction-action:focus-visible {
380
+ outline: 2px solid var(--anyo-player-ui-text);
381
+ outline-offset: 2px;
382
+ }
383
+
384
+ .anyo-player__interaction-action:disabled {
385
+ cursor: wait;
386
+ opacity: 0.55;
387
+ }
388
+
389
+ .anyo-player__touch,
390
+ .anyo-player__touch * {
391
+ box-sizing: border-box;
392
+ }
393
+
394
+ .anyo-player__touch[hidden],
395
+ .anyo-player__touch [hidden] {
396
+ display: none !important;
397
+ }
398
+
399
+ .anyo-player__touch {
400
+ position: absolute;
401
+ inset: 0;
402
+ z-index: 1;
403
+ pointer-events: none;
404
+ user-select: none;
405
+ -webkit-user-select: none;
406
+ }
407
+
408
+ .anyo-player__touch-move {
409
+ position: absolute;
410
+ left: max(18px, env(safe-area-inset-left));
411
+ bottom: max(18px, env(safe-area-inset-bottom));
412
+ width: calc(var(--anyo-player-touch-radius, 54px) * 2);
413
+ height: calc(var(--anyo-player-touch-radius, 54px) * 2);
414
+ display: grid;
415
+ place-items: center;
416
+ border-radius: 50%;
417
+ pointer-events: auto;
418
+ touch-action: none;
419
+ }
420
+
421
+ .anyo-player__touch-base {
422
+ width: 100%;
423
+ height: 100%;
424
+ display: grid;
425
+ place-items: center;
426
+ border: 1px solid var(--anyo-player-ui-border);
427
+ border-radius: 50%;
428
+ background: rgba(12, 15, 20, 0.42);
429
+ box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04), 0 8px 24px rgba(0, 0, 0, 0.18);
430
+ backdrop-filter: blur(10px);
431
+ }
432
+
433
+ .anyo-player__touch-thumb {
434
+ width: 46%;
435
+ height: 46%;
436
+ border-radius: 50%;
437
+ background: rgba(247, 248, 250, 0.9);
438
+ box-shadow: 0 5px 16px rgba(0, 0, 0, 0.28);
439
+ transform: translate(0, 0);
440
+ will-change: transform;
441
+ }
442
+
443
+ .anyo-player__touch-run,
444
+ .anyo-player__touch-jump {
445
+ position: absolute;
446
+ right: max(20px, env(safe-area-inset-right));
447
+ bottom: max(26px, env(safe-area-inset-bottom));
448
+ min-width: 58px;
449
+ min-height: 58px;
450
+ padding: 8px 12px;
451
+ border: 1px solid var(--anyo-player-ui-border);
452
+ border-radius: 50%;
453
+ background: rgba(12, 15, 20, 0.62);
454
+ color: var(--anyo-player-ui-text);
455
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.22);
456
+ backdrop-filter: blur(10px);
457
+ pointer-events: auto;
458
+ touch-action: none;
459
+ font: 700 12px/1 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
460
+ }
461
+
462
+ .anyo-player__touch-jump {
463
+ right: max(92px, calc(env(safe-area-inset-right) + 92px));
464
+ }
465
+
466
+ .anyo-player__touch-run[aria-pressed="true"] {
467
+ background: var(--anyo-player-ui-accent);
468
+ color: var(--anyo-player-ui-accent-text);
469
+ }
470
+
471
+ @media (max-width: 520px) {
472
+ .anyo-player__interaction-prompt {
473
+ bottom: 86px;
474
+ }
475
+ }
476
+
477
+ .anyo-player__xr-status {
478
+ position: absolute;
479
+ top: 16px;
480
+ right: 16px;
481
+ max-width: min(360px, calc(100% - 32px));
482
+ padding: 9px 12px;
483
+ border: 1px solid var(--anyo-player-ui-border);
484
+ border-radius: 10px;
485
+ background: var(--anyo-player-ui-surface);
486
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.22);
487
+ backdrop-filter: blur(12px);
488
+ pointer-events: none;
489
+ }
490
+
491
+ .anyo-player__xr-status[data-severity="error"] {
492
+ border-color: color-mix(in srgb, var(--anyo-player-ui-error) 55%, transparent);
493
+ }
494
+
495
+ .anyo-player__xr-status-message {
496
+ margin: 0;
497
+ color: var(--anyo-player-ui-text);
498
+ font-size: 12px;
499
+ font-weight: 650;
500
+ }
501
+
502
+ .anyo-player__control--vr[aria-pressed="true"] {
503
+ background: var(--anyo-player-ui-accent);
504
+ color: var(--anyo-player-ui-accent-text);
505
+ }
506
+
507
+ @media (max-width: 520px) {
508
+ .anyo-player__xr-status {
509
+ top: 10px;
510
+ right: 10px;
511
+ max-width: calc(100% - 20px);
512
+ }
513
+ }
514
+
515
+ .anyo-player__sr-only {
516
+ position: absolute !important;
517
+ width: 1px !important;
518
+ height: 1px !important;
519
+ padding: 0 !important;
520
+ margin: -1px !important;
521
+ overflow: hidden !important;
522
+ clip: rect(0, 0, 0, 0) !important;
523
+ white-space: nowrap !important;
524
+ border: 0 !important;
525
+ }
526
+
527
+ .anyo-player[data-anyo-player-reduced-motion="true"] .anyo-player__ui *,
528
+ .anyo-player[data-anyo-player-reduced-motion="true"] .anyo-player__ui *::before,
529
+ .anyo-player[data-anyo-player-reduced-motion="true"] .anyo-player__ui *::after {
530
+ animation-duration: 0.001ms !important;
531
+ animation-iteration-count: 1 !important;
532
+ scroll-behavior: auto !important;
533
+ transition-duration: 0.001ms !important;
534
+ }
535
+
536
+ .anyo-player__poster {
537
+ position: absolute;
538
+ inset: 0;
539
+ z-index: 2;
540
+ overflow: hidden;
541
+ background: #090b11;
542
+ pointer-events: none;
543
+ }
544
+
545
+ .anyo-player__poster[hidden] {
546
+ display: none;
547
+ }
548
+
549
+ .anyo-player__poster-image {
550
+ width: 100%;
551
+ height: 100%;
552
+ display: block;
553
+ user-select: none;
554
+ }
555
+
556
+
557
+ .anyo-player__canvas {
558
+ transition: opacity 160ms ease;
559
+ }
560
+
561
+ .anyo-player--world-transition .anyo-player__canvas {
562
+ opacity: 0.16;
563
+ }
564
+
565
+ .anyo-player[data-anyo-player-reduced-motion="true"] .anyo-player__canvas {
566
+ transition-duration: 0.001ms !important;
567
+ }
568
+
569
+ .anyo-player__map-attribution{position:absolute;left:10px;bottom:8px;z-index:9;max-width:min(80%,520px);padding:5px 8px;border:1px solid color-mix(in srgb,currentColor 18%,transparent);border-radius:6px;background:color-mix(in srgb,#07100d 82%,transparent);color:#d9e6df;font:500 11px/1.3 system-ui,sans-serif;pointer-events:none;backdrop-filter:blur(8px)}
570
+
571
+ .anyo-player__caption{position:absolute;left:50%;bottom:clamp(32px,7vh,72px);z-index:12;max-width:min(86%,780px);transform:translateX(-50%);padding:10px 16px;border:1px solid color-mix(in srgb,#fff 18%,transparent);border-radius:8px;background:color-mix(in srgb,#05080d 84%,transparent);color:#fff;text-align:center;font:600 clamp(14px,1.7vw,20px)/1.45 system-ui,sans-serif;letter-spacing:.01em;text-shadow:0 1px 2px #000;box-shadow:0 8px 28px #0006;pointer-events:none;backdrop-filter:blur(10px)}
572
+ .anyo-player__caption-speaker{color:#ffdca8;font-weight:750}
573
+ .anyo-player[data-anyo-player-reduced-motion="true"] .anyo-player__caption{transition:none}