@kieransimkin/dancemoves 3.0.2
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.
- package/LICENSE +338 -0
- package/README.md +893 -0
- package/RUDIMENTS-API.md +394 -0
- package/docs/README.md +73 -0
- package/docs/api/adapters.md +400 -0
- package/docs/api/downloads.md +158 -0
- package/docs/api/effects.md +463 -0
- package/docs/api/javascript.md +500 -0
- package/docs/api/paper-planes.md +167 -0
- package/docs/api/styling.md +292 -0
- package/docs/api/surface.json +446 -0
- package/docs/api/wordpress.md +365 -0
- package/docs/clay-transform-validation.md +84 -0
- package/docs/development.md +254 -0
- package/docs/guide.md +288 -0
- package/docs/javascript-api.md +292 -0
- package/docs/javascript-server.md +150 -0
- package/docs/react-next.md +185 -0
- package/docs/releasing-shared.md +162 -0
- package/docs/rudiments-source-integrity.md +80 -0
- package/docs/shared-feature-coverage.md +34 -0
- package/docs/shared-runtime-migration.md +111 -0
- package/docs/source-audit.md +120 -0
- package/docs/validation-setup.md +102 -0
- package/docs/wordpress-examples.md +206 -0
- package/docs/wordpress-shared-runtime.md +133 -0
- package/lib/admin.min.js +1 -0
- package/lib/assets/DanceRudiments-LICENSE +21 -0
- package/lib/assets/DanceRudiments-build-manifest.json +21 -0
- package/lib/assets/paper-dreams-plane-atlas.png +0 -0
- package/lib/build-manifest.json +117 -0
- package/lib/dancemoves.css +9 -0
- package/lib/dancemoves.min.js +5 -0
- package/lib/index.cjs +4802 -0
- package/lib/index.d.ts +71 -0
- package/lib/index.mjs +4780 -0
- package/lib/react.cjs +154 -0
- package/lib/react.d.ts +12 -0
- package/lib/react.mjs +135 -0
- package/lib/rudiments.d.ts +124 -0
- package/lib/server.cjs +411 -0
- package/lib/server.d.ts +11 -0
- package/lib/server.mjs +367 -0
- package/lib/styles/clay-stars-effects.css +1 -0
- package/lib/styles/clay-stars-rudiments.css +1 -0
- package/lib/styles/dance-moves-core.css +1 -0
- package/lib/styles/ks-epk-device-orientation.css +1 -0
- package/lib/styles/paper-dreams-flight.css +1 -0
- package/lib/wordpress.js +5 -0
- package/package.json +101 -0
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
# WordPress setup and Arcadians examples
|
|
2
|
+
|
|
3
|
+
[Repository README](../README.md) · [Runnable gallery](../examples/wordpress/index.html) · [Release guide](../RELEASING.md)
|
|
4
|
+
|
|
5
|
+
## Before you start
|
|
6
|
+
|
|
7
|
+
Work on a draft Page or staging site. This patch creates no WordPress pages,
|
|
8
|
+
media attachments, settings or releases. `examples/wordpress` is a local teaching
|
|
9
|
+
environment; it is deliberately absent from the distributable plugin ZIP.
|
|
10
|
+
|
|
11
|
+
The native plugin source is 2.9.0 at `c4252556774f38cad6d75b1a52de7917d2c65af0`.
|
|
12
|
+
StemLab media is pinned at `77c3c0c8115830a5fd26cd56bd59500c26f3ba86`.
|
|
13
|
+
The live EPK’s rendered text and chapters were inspected on 29 September 2026.
|
|
14
|
+
Its raw JavaScript and private WordPress metadata were not available through that
|
|
15
|
+
rendered-page read. The checked-in `tools/stage-central-effects-migrations.js`
|
|
16
|
+
provides the concrete Arcadians `pointer`, `playbackPulse` (64 ticks), and
|
|
17
|
+
`quality` usage pattern. Do not label supplementary demonstrations as live usage.
|
|
18
|
+
|
|
19
|
+
## Editor workflow
|
|
20
|
+
|
|
21
|
+
1. Install/activate the packaged DanceMoves plugin; preserve its internal
|
|
22
|
+
`kieran-epk-device-orientation` folder/entrypoint identity.
|
|
23
|
+
2. Create a draft Page with slug `arcadians-demo`. Upload the prepared Arcadians
|
|
24
|
+
MP3 and cover through Media Library; add the actual upload URLs to the
|
|
25
|
+
[HTML example](../examples/wordpress/wordpress/arcadians-markup.html).
|
|
26
|
+
3. Upload the exact canonical LRC and the derived `sections.cue`. In **EPK Timing**,
|
|
27
|
+
enter BPM **145** and choose those attachments. The UI stores attachment IDs
|
|
28
|
+
and resolves their URLs later. Cue timestamps are absolute positions in the
|
|
29
|
+
recording; do not retime them merely because BPM changes.
|
|
30
|
+
4. Leave **Timed lyric pop-ups** unchecked unless you are demonstrating the
|
|
31
|
+
built-in layer and have supplied song-specific styling. With it off, `onLyric`
|
|
32
|
+
still receives the selected LRC’s data. Keep the complete readable lyrics.
|
|
33
|
+
5. Choose **None** for Ambient effect except the paper-plane demonstration.
|
|
34
|
+
That demonstration uses **Paper planes**, which stores `paper-planes`.
|
|
35
|
+
6. Set the hidden master-duration key through the validating helper or deliberate
|
|
36
|
+
PHP/WP-CLI setup. It is not a field in the box and not REST-visible.
|
|
37
|
+
7. Save and inspect the public preview signed out. Confirm the effective BPM,
|
|
38
|
+
selected files, audio binding, readable text, missing-asset errors, motion
|
|
39
|
+
preferences and correct native/package version before publishing.
|
|
40
|
+
|
|
41
|
+
## Copyable child-theme implementation
|
|
42
|
+
|
|
43
|
+
Put `arcadians-example.js` and `arcadians-example.css` from
|
|
44
|
+
`examples/wordpress/wordpress/` in your child theme directory. Add
|
|
45
|
+
`enqueue-example.php` to its `functions.php` without duplicating the `<?php` tag.
|
|
46
|
+
The hook is conditional on the draft page slug and declares dependencies on
|
|
47
|
+
`dance-moves-core`, `dance-moves-effects` and `dance-moves-rudiments`; it runs at
|
|
48
|
+
priority 40, after the plugin has registered its scripts. Do not manually enqueue
|
|
49
|
+
another copy of DanceMoves or overwrite `window.danceMovesConfig` on production.
|
|
50
|
+
|
|
51
|
+
Use the supplied HTML in a Custom HTML block, with your own upload URLs. The
|
|
52
|
+
example mounts pointer, playback pulse and native orbit onto distinct owned
|
|
53
|
+
subjects. Its prefix and effect IDs are example-owned. It includes cleanup and
|
|
54
|
+
an explicit page-return policy; a production SPA needs its own navigation owner.
|
|
55
|
+
Other features use the API recipes in the README, with root/audio/targets and
|
|
56
|
+
callbacks supplied by your page. The local gallery’s `ctx` helpers are demo UI,
|
|
57
|
+
not plugin APIs and should not be copied into a page without their implementation.
|
|
58
|
+
|
|
59
|
+
## WP-CLI setup with full file validation
|
|
60
|
+
|
|
61
|
+
Copy `page-settings.example.json` to `page-settings.json`. Replace `pageId:1234`
|
|
62
|
+
with your actual Page ID. Replace zero timing IDs with actual Media Library
|
|
63
|
+
attachment IDs only when those files are desired. The local gallery’s 9001/9002
|
|
64
|
+
identifiers are not portable to any WordPress database.
|
|
65
|
+
|
|
66
|
+
```sh
|
|
67
|
+
# Import uploads; save the numeric IDs printed by these commands.
|
|
68
|
+
wp media import "examples/wordpress/media/arcadians.mp3" --porcelain
|
|
69
|
+
wp media import "examples/wordpress/media/cover.jpg" --porcelain
|
|
70
|
+
wp media import "examples/wordpress/media/canonical-lyric-timing.lrc" --porcelain
|
|
71
|
+
wp media import "examples/wordpress/media/sections.cue" --porcelain
|
|
72
|
+
|
|
73
|
+
# Validate all requested values first, then update only supplied metadata keys.
|
|
74
|
+
wp eval-file examples/wordpress/wordpress/configure-page.php page-settings.json --user=YOUR_ADMIN_LOGIN
|
|
75
|
+
|
|
76
|
+
# Read back; these commands do not change publication status.
|
|
77
|
+
wp post meta list YOUR_PAGE_ID
|
|
78
|
+
wp post meta get YOUR_PAGE_ID _dance_moves_master_duration_ms
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
The helper requires an editable Page and an explicit WP-CLI user. It uses
|
|
82
|
+
`dance_moves_validate_timing_attachment()` for timing IDs, not just `absint()`.
|
|
83
|
+
Empty BPM deletes the explicit property and restores the unknown/120 fallback;
|
|
84
|
+
zero attachment IDs clear selections; false lyric opt-in clears the checkbox;
|
|
85
|
+
an empty effect disables the property-selected ambient adapter. Unspecified
|
|
86
|
+
keys are left alone. Validation is all-before-write, but the updates are not a
|
|
87
|
+
transaction and WP-CLI does not automatically create the same editor revision
|
|
88
|
+
workflow. Keep a backup and check the printed read-back.
|
|
89
|
+
|
|
90
|
+
A deliberate single-value update is also possible:
|
|
91
|
+
|
|
92
|
+
```sh
|
|
93
|
+
wp post meta update YOUR_PAGE_ID _dance_moves_bpm 145
|
|
94
|
+
wp post meta update YOUR_PAGE_ID _dance_moves_master_duration_ms 273604.558
|
|
95
|
+
wp post meta update YOUR_PAGE_ID _dance_moves_effect paper-planes
|
|
96
|
+
wp post meta delete YOUR_PAGE_ID _dance_moves_effect
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Direct timing-ID updates do not validate the file’s full contents. Prefer the
|
|
100
|
+
helper or editor for those keys. Do not store a media URL in an ID field.
|
|
101
|
+
|
|
102
|
+
## REST setup
|
|
103
|
+
|
|
104
|
+
The Page endpoint accepts these five registered metadata keys for an authorised
|
|
105
|
+
editor. Use a WordPress REST nonce in an authenticated same-origin session, or an
|
|
106
|
+
application password over HTTPS in a trusted server/CLI client. Never put an
|
|
107
|
+
application password in browser example code or commit it to the repository.
|
|
108
|
+
|
|
109
|
+
```json
|
|
110
|
+
{
|
|
111
|
+
"meta": {
|
|
112
|
+
"_dance_moves_bpm": 145,
|
|
113
|
+
"_dance_moves_lyric_timing_id": 123,
|
|
114
|
+
"_dance_moves_cue_timing_id": 124,
|
|
115
|
+
"_dance_moves_lyric_popups_enabled": true,
|
|
116
|
+
"_dance_moves_effect": ""
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
POST that JSON to your site’s `/wp-json/wp/v2/pages/YOUR_PAGE_ID`; 123/124 are
|
|
122
|
+
placeholders. REST attachment-ID sanitisation is not equivalent to the editor’s
|
|
123
|
+
file validator. `_dance_moves_master_duration_ms` has `show_in_rest:false`, so
|
|
124
|
+
set it through the validated CLI/PHP path, not by inventing a REST parameter.
|
|
125
|
+
All six keys are registered revision-aware, but taking/restoring revisions is a
|
|
126
|
+
WordPress operation, not a browser runtime API. Use normal Page revisions and
|
|
127
|
+
read the restored metadata/config back after restoration.
|
|
128
|
+
|
|
129
|
+
## Settings which are not metadata
|
|
130
|
+
|
|
131
|
+
Rudiment name, rate, phase, amplitude, target and clock are `animate()` options.
|
|
132
|
+
Pointer bounds, pulse ticks, cue-class duration, timeline data and quality tiers
|
|
133
|
+
are JavaScript options. The audio URL is Page markup. There is no generic
|
|
134
|
+
`_dance_moves_enabled`, `_dance_moves_rudiment`, `_dance_moves_orientation`,
|
|
135
|
+
`_dance_moves_diagnostics`, `_dance_moves_audio_url` or API-key metadata field.
|
|
136
|
+
|
|
137
|
+
The orientation adapter mapping is currently fixed in PHP:
|
|
138
|
+
130 Dying for a Diagnosis; 140 Light Will Win; 243 Presents & Chocolate;
|
|
139
|
+
252 Clay/Stars; 268 Fully Nocturnal; 270 Amnesty, honestly?; 276 Walk With Me;
|
|
140
|
+
298 Dmitri My Talisman; 839 California Screamin’. Each needs its matching DOM.
|
|
141
|
+
A new Page cannot obtain those mappings just by copying an ID into metadata.
|
|
142
|
+
The local selector uses the localhost-only harness override and demonstrates all
|
|
143
|
+
nine mappings with Arcadians, not nine real new WordPress pages.
|
|
144
|
+
|
|
145
|
+
Clay’s release adapter and automatic native background are Page-252-specific and
|
|
146
|
+
respect the legacy-plugin coexistence guard. The supplementary fixture uses the
|
|
147
|
+
same real scripts with compact educational markup and Arcadians at 145 BPM.
|
|
148
|
+
Do not change the real Clay page’s tempo to the demo tempo or copy its art direction
|
|
149
|
+
into another release merely to enable generic input. Use the page-agnostic APIs
|
|
150
|
+
for new EPKs. Paper planes are property-selected and work with a positioned,
|
|
151
|
+
isolated, clipped `.epk-hero`; counts and atlas URL are not separate editor keys.
|
|
152
|
+
|
|
153
|
+
The generic quality API, Clay quality recovery and native rudiment lifecycle have
|
|
154
|
+
different contracts. Manual `setTier()` is not measured degradation; direct
|
|
155
|
+
`pointer.set()` bypasses native event gating; `cueClass` uses a wall-clock timer;
|
|
156
|
+
`cueTimeline` reconstructs half-open `[time,end)` intervals. Core file-cue landing
|
|
157
|
+
and timeline landing are not interchangeable. The examples call out those boundaries.
|
|
158
|
+
|
|
159
|
+
## Downloads and captures
|
|
160
|
+
|
|
161
|
+
Real MP3 downloads require an eligible same-site uploads URL in an explicit
|
|
162
|
+
`<a download>` on Page content. The plugin rewrites that anchor with its own PHP
|
|
163
|
+
HMAC helper and sends attachment headers; audio/source URLs stay direct and seekable.
|
|
164
|
+
Do not configure global MP3 attachment headers and do not use a signed download
|
|
165
|
+
URL as an audio source. The local server models GET/HEAD/Range behaviour only; its
|
|
166
|
+
random key is not the production WordPress salt, and it is not an implementation
|
|
167
|
+
of WordPress’s HTML Tag Processor.
|
|
168
|
+
|
|
169
|
+
The capture example sends only an explicitly synthetic fixture to a local route.
|
|
170
|
+
It stores nothing, requests no sensor permission and contains no production token.
|
|
171
|
+
The real `/ks-epk-motion/v1/capture` contract remains in the API reference. Its
|
|
172
|
+
fixed source token is not strong user authentication; review that endpoint before
|
|
173
|
+
expanding exposure. A local response is not evidence of private WordPress storage.
|
|
174
|
+
|
|
175
|
+
## Data provenance and reproducibility
|
|
176
|
+
|
|
177
|
+
`examples/wordpress/media/manifest.json` pins the Arcadians MP3 (11,708,403 bytes),
|
|
178
|
+
cover, LRC hash, source commit and reference metadata. The canonical master lasts
|
|
179
|
+
273.604558 seconds; the MP3 reference contains an estimated CBR duration
|
|
180
|
+
273.659 seconds. The demo does not call that estimate a sample-exact MP3 duration:
|
|
181
|
+
the browser reads the actual media metadata and the plugin applies its documented
|
|
182
|
+
master-length tolerance. Do not overwrite canonical duration with a rounded 4:33.
|
|
183
|
+
|
|
184
|
+
The canonical LRC still contains upstream placeholder metadata headers (`Project
|
|
185
|
+
title`, `Project author`, `la:af`). Its sung text and all 96 time tags, including
|
|
186
|
+
48 clear tags, are preserved. The runtime ignores those header fields. This
|
|
187
|
+
examples patch does not silently alter an artist-locked canonical file.
|
|
188
|
+
|
|
189
|
+
## Evidence and limits
|
|
190
|
+
|
|
191
|
+
The [coverage manifest](../examples/wordpress/coverage.json) maps all 23 pages and
|
|
192
|
+
acceptance checks. Static/contract coverage is not a browser pass. Real-browser
|
|
193
|
+
validation uses the actual plugin assets; a test-only silent media route can be
|
|
194
|
+
used by the browser runner for transport assertions, clearly separate from the
|
|
195
|
+
real Arcadians demos. The normal gallery never generates or substitutes audio.
|
|
196
|
+
Actual Arcadians listening, public WordPress rendering, physical motion permission
|
|
197
|
+
and sustained-device performance must be checked separately before release.
|
|
198
|
+
|
|
199
|
+
## Primary sources
|
|
200
|
+
|
|
201
|
+
- [Arcadians live EPK](https://kieransimkin.co.uk/arcadians/), rendered content checked 29 September 2026.
|
|
202
|
+
- [StemLab reference](https://github.com/kieransimkin/stemlab/blob/77c3c0c8115830a5fd26cd56bd59500c26f3ba86/examples/arcadians/reference.json).
|
|
203
|
+
- [Arcadians migration source](../tools/stage-central-effects-migrations.js).
|
|
204
|
+
- [WordPress metadata commands](https://developer.wordpress.org/cli/commands/post/meta/update/).
|
|
205
|
+
- [WordPress REST metadata](https://developer.wordpress.org/rest-api/extending-the-rest-api/modifying-responses/).
|
|
206
|
+
- [GitHub release command](https://cli.github.com/manual/gh_release_create).
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# WordPress with the shared DanceMoves library
|
|
2
|
+
|
|
3
|
+
WordPress remains a separately built plugin inside this repository. It consumes
|
|
4
|
+
the same frontend library as React/Next.js; no parallel animation engine is kept
|
|
5
|
+
in the WordPress adapter. The existing plugin folder and entrypoint are preserved.
|
|
6
|
+
|
|
7
|
+
## Build and install
|
|
8
|
+
|
|
9
|
+
From a complete repository checkout:
|
|
10
|
+
|
|
11
|
+
```sh
|
|
12
|
+
npm install --ignore-scripts
|
|
13
|
+
npm run build
|
|
14
|
+
npm test
|
|
15
|
+
npm run test:legacy
|
|
16
|
+
npm run package:wordpress
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
The retained PowerShell command is equivalent for the final build/archive step:
|
|
20
|
+
|
|
21
|
+
```powershell
|
|
22
|
+
powershell -NoProfile -ExecutionPolicy Bypass -File .\tools\package.ps1
|
|
23
|
+
if ($LASTEXITCODE -ne 0) { throw "WordPress build failed" }
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
The build machine needs Node, npm and Python. The WordPress server needs neither
|
|
27
|
+
Node, npm, a C++ compiler nor an external CDN. Install `dist/DanceMoves-3.0.0.zip`
|
|
28
|
+
through Plugins → Add New → Upload Plugin, preserving a backup and the prior
|
|
29
|
+
working archive. Do not upload the npm tarball, web ZIP, repository source ZIP
|
|
30
|
+
or a downloaded patch bundle.
|
|
31
|
+
|
|
32
|
+
The ZIP contains the PHP adapter, `lib/wordpress.js`, `lib/admin.min.js`, shared
|
|
33
|
+
styles, atlas, native licence/build information and documentation. The packager
|
|
34
|
+
checks that its runtime is byte-identical to the shared library output and that
|
|
35
|
+
no tests, examples, source engines or duplicate JavaScript files enter it.
|
|
36
|
+
|
|
37
|
+
## Metadata for each Page
|
|
38
|
+
|
|
39
|
+
Open the Page editor's **EPK Timing** box. Existing timing uploads, validation,
|
|
40
|
+
capability/nonce checks and revisions remain in PHP.
|
|
41
|
+
|
|
42
|
+
| Stored key | Setup |
|
|
43
|
+
|---|---|
|
|
44
|
+
| `_dance_moves_bpm` | Enter the song's own BPM (20–400). Blank removes the explicit value and uses the 120 fallback. Arcadians reference: 145. |
|
|
45
|
+
| `_dance_moves_lyric_timing_id` | Choose a Media Library `.lrc` attachment; this is an attachment ID, not a URL string. |
|
|
46
|
+
| `_dance_moves_cue_timing_id` | Choose a `.lrc`/bracketed `.cue` timing attachment. |
|
|
47
|
+
| `_dance_moves_lyric_popups_enabled` | Explicit checkbox opt-in. Custom song art direction remains page CSS. |
|
|
48
|
+
| `_dance_moves_master_duration_ms` | Advanced duration property, positive milliseconds; no ordinary editor field and not exposed through the standard REST metadata response. Arcadians reference: 273604.558. |
|
|
49
|
+
| `_dance_moves_effect` | Empty or `paper-planes`; no song/page-ID coupling for that effect. |
|
|
50
|
+
|
|
51
|
+
The existing `examples/wordpress/wordpress/configure-page.php` helper and the
|
|
52
|
+
[metadata recipes](wordpress-examples.md) cover validated WP-CLI writes, REST
|
|
53
|
+
boundaries and restoration. Never copy a demo attachment ID to production without
|
|
54
|
+
resolving that site's actual attachment. Upload files as UTF-8; clear lyric lines
|
|
55
|
+
are meaningful. Validation on editor save is stronger than merely sanitizing an
|
|
56
|
+
ID supplied by a programmatic update.
|
|
57
|
+
|
|
58
|
+
No existing keys or page IDs are renamed by the shared-library migration.
|
|
59
|
+
Rudiment choice, amplitude and phase are JavaScript options, not new WordPress
|
|
60
|
+
metadata fields. Existing orientation page mappings and the special Clay target
|
|
61
|
+
remain in `dance_moves_orientation_adapters()` and the Clay page constant.
|
|
62
|
+
|
|
63
|
+
## Existing EPK JavaScript
|
|
64
|
+
|
|
65
|
+
Existing `window.DanceMoves`, `window.DanceMovesEffects`, native and orientation
|
|
66
|
+
aliases remain available. Enqueue page code with dependencies on the existing
|
|
67
|
+
handles rather than loading a second library or hand-writing asset URLs:
|
|
68
|
+
|
|
69
|
+
```php
|
|
70
|
+
add_action('wp_enqueue_scripts', function () {
|
|
71
|
+
if (!is_page(260)) { return; } // Your actual Arcadians Page ID.
|
|
72
|
+
wp_enqueue_script(
|
|
73
|
+
'my-arcadians-effects',
|
|
74
|
+
get_stylesheet_directory_uri() . '/arcadians-effects.js',
|
|
75
|
+
array('dance-moves-rudiments', 'dance-moves-effects'),
|
|
76
|
+
'1.0.0',
|
|
77
|
+
true
|
|
78
|
+
);
|
|
79
|
+
}, 40);
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
```js
|
|
83
|
+
// arcadians-effects.js; no repeated frontend import or timer engine.
|
|
84
|
+
const motion = window.DanceMoves;
|
|
85
|
+
const root = document.querySelector('.ks-epk');
|
|
86
|
+
const target = root.querySelector('.drift');
|
|
87
|
+
const handle = motion.rudiments.animate({
|
|
88
|
+
id:'arcadians:drift', root, target, rudiment:'clay_background',
|
|
89
|
+
clock:'audio', audio:root.querySelector('audio'),
|
|
90
|
+
rate:0.5, amplitude:{x:14,y:10,z:0}
|
|
91
|
+
});
|
|
92
|
+
handle.ready.catch(console.error);
|
|
93
|
+
window.addEventListener('pagehide', () => handle.destroy(), {once:true});
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
The Clay page is already mounted by the adapter. Do not add a second controller
|
|
97
|
+
to the same background. Its eight-beat pace and original rotation/scale/opacity
|
|
98
|
+
accents remain separate from the position-only native pattern. Legacy Clay
|
|
99
|
+
plugin detection still suppresses the shared Clay styles and initializer.
|
|
100
|
+
|
|
101
|
+
`wp_localize_script` converts top-level scalar values to strings. The thin
|
|
102
|
+
JavaScript adapter deliberately normalizes known numbers/booleans before calling
|
|
103
|
+
the shared API; it does not use `Boolean('false')`. The page BPM comes from PHP
|
|
104
|
+
metadata, not a hard-coded song value.
|
|
105
|
+
|
|
106
|
+
## Script handles and assets
|
|
107
|
+
|
|
108
|
+
`dance-moves-core` loads `lib/wordpress.js`. Existing effects, catalogue,
|
|
109
|
+
orientation and rudiment handles remain dependency aliases with `src=false`.
|
|
110
|
+
They do not request another engine. The WordPress admin Media Library selector
|
|
111
|
+
uses the shared `lib/admin.min.js` build and its existing jQuery dependency.
|
|
112
|
+
CSS is still enqueued conditionally so the legacy Clay coexistence guard works.
|
|
113
|
+
|
|
114
|
+
Custom code that explicitly fetches old raw `assets/*.js` URLs must migrate to
|
|
115
|
+
these handles. Building from source produces `lib/`; activating an unbuilt raw
|
|
116
|
+
checkout is not a supported deployment. Purge caches after installing the ZIP.
|
|
117
|
+
|
|
118
|
+
## Server behaviour and acceptance
|
|
119
|
+
|
|
120
|
+
WordPress metadata, revisions, attachment lookup, signed MP3 delivery and private
|
|
121
|
+
motion-capture posts stay in the native PHP integration. Other applications use
|
|
122
|
+
the new Node equivalents; WordPress does not need a Node sidecar.
|
|
123
|
+
|
|
124
|
+
The existing fixed capture token is not reclassified as strong authentication
|
|
125
|
+
by this patch. The generic Node API requires application authorization instead.
|
|
126
|
+
Do not expose capture records publicly, and do not treat client-reported parity
|
|
127
|
+
flags as physical verification.
|
|
128
|
+
|
|
129
|
+
After deployment, inspect affected pages signed out: audio playback/ranges,
|
|
130
|
+
download attachments, exact cue landings, pause/seek/resume, lyric clears,
|
|
131
|
+
responsive layout, Clay native fallback, reduced motion, forced colours and
|
|
132
|
+
physical phone orientation. CI tests and package checks do not establish that a
|
|
133
|
+
particular WordPress installation or cache has been updated.
|
package/lib/admin.min.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(()=>{(function(i){"use strict";function a(t){var e=String(t||"").toLowerCase().split(".");return e.length>1?e.pop():""}i(function(){i(document).on("click",".dance-moves-select-file",function(t){t.preventDefault();var e=i(this).closest(".dance-moves-file-field"),o=String(e.data("allowed-extensions")||"").split(",").filter(Boolean),l=wp.media({title:"Choose timing file",button:{text:"Use timing file"},multiple:!1});l.on("select",function(){var n=l.state().get("selection").first().toJSON(),f=a(n.filename);if(o.indexOf(f)===-1){window.alert("Choose a ."+o.join(" or .")+" timing file.");return}e.find("input[type=hidden]").val(n.id),e.find(".dance-moves-file-name").text(n.filename),e.find(".dance-moves-file-url").attr("href",n.url).prop("hidden",!1),e.find(".dance-moves-clear-file").prop("hidden",!1)}),l.open()}),i(document).on("click",".dance-moves-clear-file",function(t){t.preventDefault();var e=i(this).closest(".dance-moves-file-field");e.find("input[type=hidden]").val(""),e.find(".dance-moves-file-name").text("No file selected"),e.find(".dance-moves-file-url").attr("href","#").prop("hidden",!0),i(this).prop("hidden",!0)})})})(jQuery);})();
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Kieran Simkin
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "dance-moves-rudiments-build/v1",
|
|
3
|
+
"upstream": {
|
|
4
|
+
"repository": "https://github.com/kieransimkin/DanceRudiments",
|
|
5
|
+
"commit": "0df000db8753f04f397311f5b7c6ae6561e1d260",
|
|
6
|
+
"version": "0.1.3",
|
|
7
|
+
"pipsPerBeat": 64,
|
|
8
|
+
"files": {
|
|
9
|
+
"include/dancerudiments/dance_rudiments.hpp": "6414362b2720262c8dd01630d7750b2501fd0c14",
|
|
10
|
+
"src/dance_rudiments.cpp": "565ba1013d66a85834bbbe5cbd341a0df54f88c1",
|
|
11
|
+
"LICENSE": "733ba0df08052fd7d14c10ee17806c26e326a2a8"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"backend": "complete-integer-domain-cpp-wasm-lookup",
|
|
15
|
+
"sampleCount": 1856,
|
|
16
|
+
"wasmSha256": "a5ec6a58d128e3c4cf943b6f8a429f8610f6ccc03173dcbac997a99441715e89",
|
|
17
|
+
"runtimeSha256": "e57bfdb456c871d398f700ce5229e18b3e57df036c41fb6ac079e30f9d5a42bf",
|
|
18
|
+
"lookupSourceSha256": "8f8f8300e8f85f298a95f7b14c302a91348613712db25fd095eddecdc3fdec8a",
|
|
19
|
+
"hostCompiler": "g++ (Debian 14.2.0-19) 14.2.0",
|
|
20
|
+
"wasmCompiler": "clang version 17.0.0 (https://github.com/swiftlang/llvm-project.git 10999b6d034fe318f3d56c83bddb6572593a8bb0)"
|
|
21
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "dancemoves-library-build/v1",
|
|
3
|
+
"name": "@kieransimkin/dancemoves",
|
|
4
|
+
"version": "3.0.2",
|
|
5
|
+
"files": [
|
|
6
|
+
{
|
|
7
|
+
"path": "admin.min.js",
|
|
8
|
+
"bytes": 1157,
|
|
9
|
+
"sha256": "db6ca41f28d0943a52c89093d279cc287a74702d412ea54c80b4c741525b9e43"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"path": "assets/DanceRudiments-build-manifest.json",
|
|
13
|
+
"bytes": 1021,
|
|
14
|
+
"sha256": "d08fcd81a5599cc50d7ed2e8517f031a2c7329dbfcd232491a4a2113c6ba44bd"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"path": "assets/DanceRudiments-LICENSE",
|
|
18
|
+
"bytes": 1070,
|
|
19
|
+
"sha256": "bc73e5152b5fe1716c5c8b5cb2b83d51b2e5300827bfa580eeb7a07a498aeafc"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"path": "assets/paper-dreams-plane-atlas.png",
|
|
23
|
+
"bytes": 989622,
|
|
24
|
+
"sha256": "72a04cfefa5a2daf46034fff5166fba01e9a6918a595257aeba53413b74687fa"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"path": "dancemoves.css",
|
|
28
|
+
"bytes": 31223,
|
|
29
|
+
"sha256": "0d768de1eda07c1981719b87fb6cc87c3e9278efd47d2d8e820cb4e3ba09e3c5"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"path": "dancemoves.min.js",
|
|
33
|
+
"bytes": 160870,
|
|
34
|
+
"sha256": "0ff2f5899a4b6e4d203fa56b294fdf041c968bb59c13a9fdf05e7fa2758fde68"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"path": "index.cjs",
|
|
38
|
+
"bytes": 262051,
|
|
39
|
+
"sha256": "cb0de734231081997bff5d4aef19562f94ba0d8fcff6d983e1fd5772fe91e2de"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"path": "index.d.ts",
|
|
43
|
+
"bytes": 7617,
|
|
44
|
+
"sha256": "fe901c67f8a6222805b742120e6d7ba539afb4164b44829df06e09664059869c"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"path": "index.mjs",
|
|
48
|
+
"bytes": 260966,
|
|
49
|
+
"sha256": "b189c643a880c7e96a6e610c814c476baf24b46688abf8fd401524a350c5aa73"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"path": "react.cjs",
|
|
53
|
+
"bytes": 6595,
|
|
54
|
+
"sha256": "ed117a524b15a7b28264e74267a80963c0bcb0ce7739d256a9089809cdd3f1bd"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"path": "react.d.ts",
|
|
58
|
+
"bytes": 1199,
|
|
59
|
+
"sha256": "46618c4735215242bd1da58bc983528dd4a38c617c1a54c3a33c8c1852e5924e"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"path": "react.mjs",
|
|
63
|
+
"bytes": 4909,
|
|
64
|
+
"sha256": "9513a1e019df45b7eef1e8e703eabbd063ae6b80e3c5e30852cdd0a510f6a635"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"path": "rudiments.d.ts",
|
|
68
|
+
"bytes": 4784,
|
|
69
|
+
"sha256": "b6ad298a9992a8960806a156673d4d2517643882429728b2b156282a30bde3f1"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"path": "server.cjs",
|
|
73
|
+
"bytes": 21735,
|
|
74
|
+
"sha256": "2db5e089683bc23768a5b233ff5c35fb4d3b5babe04a63232152d923feb2ab90"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"path": "server.d.ts",
|
|
78
|
+
"bytes": 1334,
|
|
79
|
+
"sha256": "2d5f35bec6eede2fbed338a8afb718cad1c3dba5fbe3a54bd1603308ac1146d5"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"path": "server.mjs",
|
|
83
|
+
"bytes": 19290,
|
|
84
|
+
"sha256": "cf6a3934f29feffb369ce1e78064e42854e8e10e2b6e457a9b12e41ca0e664af"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"path": "styles/clay-stars-effects.css",
|
|
88
|
+
"bytes": 20862,
|
|
89
|
+
"sha256": "fae940703e782ed8fe13b3dc02a15daefc756429ebaec440c65798d8e3578a00"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"path": "styles/clay-stars-rudiments.css",
|
|
93
|
+
"bytes": 1945,
|
|
94
|
+
"sha256": "c3ec5a979048c98ead93767fe8baf04b27e06425389f9f9d9d0846a8b809d7e6"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"path": "styles/dance-moves-core.css",
|
|
98
|
+
"bytes": 2763,
|
|
99
|
+
"sha256": "5d51caa8f3d33fc703ecd416160fbb9491b55527e54facc9248050d70cbce8a3"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"path": "styles/ks-epk-device-orientation.css",
|
|
103
|
+
"bytes": 3192,
|
|
104
|
+
"sha256": "390215653d0352c6ab9d852dee62a9798ae6de6c1933ed62b72d06bc00fe1be3"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"path": "styles/paper-dreams-flight.css",
|
|
108
|
+
"bytes": 2457,
|
|
109
|
+
"sha256": "6dd2b7e15a74b4386c64358802f44a84323e15bd4121046d649da1c5ba498294"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"path": "wordpress.js",
|
|
113
|
+
"bytes": 159672,
|
|
114
|
+
"sha256": "1a338d5caa4c2f66d594ac086308939386b1e370457c5d3864d5f6781dd1ac48"
|
|
115
|
+
}
|
|
116
|
+
]
|
|
117
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
[data-dance-moves-start-interval]:not([data-dance-moves-started=true]),[data-dance-moves-start-interval]:not([data-dance-moves-started=true]):before,[data-dance-moves-start-interval]:not([data-dance-moves-started=true]):after{animation-play-state:paused!important}html[data-dance-moves-shared-controls=true] .ks-epk .epk-button,html[data-dance-moves-shared-controls=true] .ks-epk .epk-download{transition-property:background-color,color,transform,border-color!important;transition-duration:var(--dance-moves-shared-control-duration)!important;transition-timing-function:ease!important}.ks-epk .ks-epk-lyrics-track summary span[aria-hidden]{transition-property:transform!important;transition-duration:var(--dance-moves-lyric-disclosure-duration)!important;transition-timing-function:ease!important}.dance-moves-lyric-popover{--dance-moves-lyric-bg: rgba(20, 20, 24, .94);--dance-moves-lyric-border: rgba(255, 255, 255, .28);--dance-moves-lyric-color: #fff;position:fixed;z-index:9998;inset-inline:max(1rem,env(safe-area-inset-left)) max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));display:flex;justify-content:center;pointer-events:none;opacity:0;transform:translateY(.75rem) scale(.98);transition:opacity var(--dance-moves-6t) ease,transform var(--dance-moves-6t) ease}.dance-moves-lyric-popover[data-dance-moves-lyric-state=active]{opacity:1;transform:translateY(0) scale(1)}.dance-moves-lyric-popover__text{display:block;max-width:min(44rem,100%);padding:.72rem 1rem;border:1px solid var(--dance-moves-lyric-border);border-radius:.75rem;background:var(--dance-moves-lyric-bg);color:var(--dance-moves-lyric-color);box-shadow:0 .6rem 1.8rem #00000052;font:700 clamp(1rem,2.4vw,1.35rem)/1.3 system-ui,sans-serif;text-align:center;text-wrap:balance}.dance-moves-lyric-popover[data-dance-moves-lyric-pulse=true] .dance-moves-lyric-popover__text{animation:dance-moves-lyric-arrive var(--dance-moves-6t) ease both}@keyframes dance-moves-lyric-arrive{0%{transform:translateY(.4rem) scale(.98)}to{transform:translateY(0) scale(1)}}@media(forced-colors:active){.dance-moves-lyric-popover__text{border:2px solid CanvasText;background:Canvas;color:CanvasText;box-shadow:none}}@media(prefers-reduced-motion:reduce){[data-dance-moves-start-interval],[data-dance-moves-start-interval]:before,[data-dance-moves-start-interval]:after{animation:none!important;transition-duration:.01ms!important}html[data-dance-moves-shared-controls=true] .ks-epk .epk-button,html[data-dance-moves-shared-controls=true] .ks-epk .epk-download,.ks-epk .ks-epk-lyrics-track summary span[aria-hidden]{transition:none!important}.dance-moves-lyric-popover,.dance-moves-lyric-popover__text{animation:none!important;transition:none!important;transform:none!important}}
|
|
2
|
+
|
|
3
|
+
.ks-epk-orientation-control{position:fixed;z-index:999998;left:max(.75rem,env(safe-area-inset-left));bottom:max(.75rem,env(safe-area-inset-bottom));min-height:2.75rem;padding:.65rem .9rem;border:1px solid rgba(255,255,255,.72);border-radius:999px;color:#fff;background:#0c0c10e0;box-shadow:0 .5rem 2rem #0000006b;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font:700 .72rem/1 system-ui,sans-serif;letter-spacing:.05em;cursor:pointer}.ks-epk-orientation-control:focus-visible{outline:3px solid #fff;outline-offset:3px}.ks-epk-orientation-control:disabled{cursor:default;opacity:.72}.ks-epk[data-release=presents-and-chocolate][data-ks-orientation=active] .epk-cover-wrap{animation:none;transform:translate3d(var(--pc-sensor-x, 0px),var(--pc-sensor-y, 0px),0) rotate(var(--pc-sensor-rotate, 0deg))}#light-will-win-top[data-ks-orientation=active] .lww-hero{background-position:calc(50% + var(--lww-cover-x, 0px)) calc(44% + var(--lww-cover-y, 0px))}.ks-epk[data-release=walk-with-me][data-ks-orientation=active] .wwm-cover-stage{transform:perspective(1100px) rotateX(var(--wwm-tilt-x, 0deg)) rotateY(var(--wwm-tilt-y, 0deg)) translate(var(--wwm-shift-x, 0px),var(--wwm-shift-y, 0px))!important}#light-will-win-top[data-ks-orientation=active] .lww-hero{transition:background-position var(--dance-moves-2t, 62.5ms) cubic-bezier(.15,.8,.2,1)!important;will-change:background-position}#light-will-win-top[data-ks-orientation=active] :is(.lww-player-card,.lww-story-quote,.lww-glass,.lww-contact-card,.lww-fact),.dfad-motion-stage[data-ks-orientation=active] :is([data-tilt],[data-parallax] img),[data-ks-orientation-adapter=presents-and-chocolate][data-ks-orientation=active] .epk-cover-wrap,[data-ks-orientation-adapter=fully-nocturnal][data-ks-orientation=active] :is(.fnx-horizon-glow,.fnx-road,.epk-cover-wrap,.epk-cover),[data-ks-orientation-adapter=amnesty-honestly][data-ks-orientation=active] :is(.epk-cover-wrap,.epk-heading),[data-ks-orientation-adapter=walk-with-me][data-ks-orientation=active] .wwm-cover-stage,[data-ks-orientation-adapter=dmitri-my-talisman][data-ks-orientation=active] :is(.chamber,.cover-frame),[data-ks-orientation-adapter=clay-stars][data-ks-orientation=active] :is(.epk-cover-wrap,.ks-warm-bloom,.ks-lens-flare,.ks-specular-sweep),[data-ks-orientation-adapter=california-screamin][data-ks-orientation=active] :is(.cs-cover,.cs-cables,.cs-cover-glow){transition:transform var(--dance-moves-2t, 62.5ms) cubic-bezier(.15,.8,.2,1)!important;will-change:transform}@media(max-width:900px){#light-will-win-top[data-ks-orientation=active] .lww-hero{background-position:calc(58% + var(--lww-cover-x, 0px)) calc(46% + var(--lww-cover-y, 0px))}}@media(prefers-reduced-motion:reduce){.ks-epk-orientation-control{display:none!important}.ks-epk[data-release=presents-and-chocolate] .epk-cover-wrap,.ks-epk[data-release=walk-with-me] .wwm-cover-stage{transform:none!important}[data-ks-orientation] *,[data-ks-orientation] *:before,[data-ks-orientation] *:after{transition:none!important;will-change:auto!important}}@media(forced-colors:active){.ks-epk-orientation-control{color:ButtonText;background:ButtonFace;border-color:ButtonText;forced-color-adjust:auto}}
|
|
4
|
+
|
|
5
|
+
.ks-clay-stars-v2{--ks-master-bpm: 90;--ks-master-beat: var(--dance-moves-beat, .666666667s);--ks-master-intensity: 1;--ks-particle-release-duration: var(--dance-moves-32t, 1.034482758s)}.ks-clay-stars-v2 .epk-actions>p:empty,.ks-clay-stars-v2 .ks-clay-stars-chapters>br,.ks-clay-stars-v2 .epk-cosmology-head>p:empty,.ks-clay-stars-v2 .epk-artwork>p:empty,.ks-clay-stars-v2 .epk-footer>br{display:none!important}.ks-clay-stars-v2 .epk-cover-wrap{--ks-bloom-x: 0px;--ks-bloom-y: 0px;--ks-flare-x: 0px;--ks-flare-y: 0px;--ks-spec-x: 0px;--ks-spec-y: 0px}.ks-clay-stars-v2 .ks-cloud-field{position:absolute;z-index:-1;inset:0;overflow:hidden;pointer-events:none;user-select:none;contain:paint}.ks-clay-stars-v2 .ks-cloud-field:before,.ks-clay-stars-v2 .ks-cloud-field:after{content:"";position:absolute;inset:-22%;display:block;background-repeat:no-repeat;mix-blend-mode:screen;will-change:transform}.ks-clay-stars-v2 .ks-cloud-field:before{background:radial-gradient(ellipse at 18% 28%,rgba(51,64,108,.3) 0 12%,transparent 42%),radial-gradient(ellipse at 72% 24%,rgba(163,101,76,.16) 0 10%,transparent 38%),radial-gradient(ellipse at 48% 68%,rgba(23,27,55,.44) 0 16%,transparent 50%);filter:blur(58px) saturate(.88);opacity:.52;animation:ks-cloud-drift-a var(--dance-moves-1584t, 51.206896552s) ease-in-out infinite alternate}.ks-clay-stars-v2 .ks-cloud-field:after{background:radial-gradient(ellipse at 82% 62%,rgba(138,60,37,.18) 0 10%,transparent 42%),radial-gradient(ellipse at 30% 78%,rgba(51,64,108,.24) 0 14%,transparent 46%),radial-gradient(ellipse at 58% 36%,rgba(196,153,134,.09) 0 7%,transparent 34%);filter:blur(72px) saturate(.82);opacity:.42;animation:ks-cloud-drift-b var(--dance-moves-2208t, 71.379310345s) ease-in-out infinite alternate-reverse}.ks-clay-stars-v2 .epk-atmosphere:after{transform-origin:50% 45%;animation:ks-particle-dance var(--dance-moves-128t, 4.137931034s) linear infinite;will-change:transform,opacity}.ks-clay-stars-v2 .epk-heading,.ks-clay-stars-v2 .ks-clay-stars-player-copy,.ks-clay-stars-v2 .epk-cosmology-head,.ks-clay-stars-v2 .epk-artwork>div,.ks-clay-stars-v2 .ks-epk-lyrics>div:first-child{position:relative}.ks-clay-stars-v2 .epk-heading:before,.ks-clay-stars-v2 .ks-clay-stars-player-copy:before,.ks-clay-stars-v2 .epk-cosmology-head:before,.ks-clay-stars-v2 .epk-artwork>div:before,.ks-clay-stars-v2 .ks-epk-lyrics>div:first-child:before{content:"";position:absolute;z-index:2;top:-34px;left:0;width:100%;pointer-events:none;color:#d4af37;background:linear-gradient(180deg,#ffe28a,#d4af37 28%,#8c650f 63%,#e8c348);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;font:400 clamp(20px,2vw,29px)/1 "Segoe UI Historic","Noto Sans Cuneiform",serif;letter-spacing:.2em;text-align:center;text-shadow:0 1px 0 #5A3B06,0 0 2px rgba(255,226,138,.7),0 0 9px rgba(212,175,55,.48);opacity:.92;transform-origin:center;animation:ks-gold-sparkle var(--dance-moves-192t, 6.206896552s) ease-in-out infinite alternate}.ks-clay-stars-v2 .epk-heading:before{content:"\1214e \1202d \121a0"}.ks-clay-stars-v2 .ks-clay-stars-player-copy:before{content:"\1227f \12157 \122d3"}.ks-clay-stars-v2 .epk-cosmology-head:before{content:"\12146 \12146 \12146"}.ks-clay-stars-v2 .epk-artwork>div:before{content:"\12029 \12146"}.ks-clay-stars-v2 .ks-epk-lyrics>div:first-child:before{content:"\122d3 \12157 \1207e"}.ks-clay-stars-v2 .epk-heading h1,.ks-clay-stars-v2 .ks-clay-stars-player h2,.ks-clay-stars-v2 .epk-cosmology h2,.ks-clay-stars-v2 .epk-artwork h2,.ks-clay-stars-v2 .ks-epk-lyrics h2{text-shadow:0 0 18px rgba(226,189,103,.1),0 4px 32px rgba(0,0,0,.3)}.ks-clay-stars-v2 .epk-button,.ks-clay-stars-v2 .epk-download,.ks-clay-stars-v2 .ks-clay-stars-chapters button{position:relative}.ks-clay-stars-v2 .epk-button:before,.ks-clay-stars-v2 .epk-download:before,.ks-clay-stars-v2 .ks-clay-stars-chapters button:before{content:"";position:absolute;z-index:2;inset:-6.3px;pointer-events:none;background:radial-gradient(circle,#D4AF37 0 1.2px,rgba(140,101,20,.62) 1.8px,transparent 3.4px),radial-gradient(circle,#C99716 0 1.2px,rgba(212,175,55,.44) 1.8px,transparent 3.4px),radial-gradient(circle,#FFD766 0 1px,rgba(212,175,55,.34) 1.7px,transparent 3px);background-repeat:no-repeat;background-size:7px 7px,7px 7px,6px 6px;background-position:0% 0%,100% 33%,33% 100%;filter:drop-shadow(0 0 4px rgba(212,175,55,.48));opacity:calc(.42 * var(--ks-master-intensity));animation:ks-gold-sparkle var(--dance-moves-192t, 6.206896552s) ease-in-out var(--dance-moves-neg-64t, -2.068965517s) infinite alternate;transform-origin:center}.ks-clay-stars-v2 .epk-button:after,.ks-clay-stars-v2 .epk-download:after,.ks-clay-stars-v2 .ks-clay-stars-chapters button:after{content:"";position:absolute;z-index:2;inset:-9.9px;pointer-events:none;background:radial-gradient(circle at 3% 52%,#D4AF37 0 1.1px,rgba(140,101,15,.7) 1.7px,transparent 3.2px),radial-gradient(circle at 18% 2%,#FFD766 0 1px,rgba(212,175,55,.56) 1.6px,transparent 3px),radial-gradient(circle at 48% 98%,#C99716 0 1.2px,rgba(140,101,15,.64) 1.8px,transparent 3.3px),radial-gradient(circle at 77% 1%,#E8C348 0 1px,rgba(212,175,55,.52) 1.6px,transparent 3px),radial-gradient(circle at 98% 46%,#D4AF37 0 1.2px,rgba(140,101,15,.68) 1.8px,transparent 3.3px),radial-gradient(circle at 82% 98%,#FFD766 0 1px,rgba(212,175,55,.5) 1.6px,transparent 3px);opacity:0;transform:rotate(0) scale(.96);transform-origin:center;filter:drop-shadow(0 0 4px rgba(212,175,55,.44));transition:opacity var(--ks-particle-release-duration) cubic-bezier(.22,.61,.36,1),transform var(--ks-particle-release-duration) cubic-bezier(.16,1,.3,1)}.ks-clay-stars-v2 .epk-signal-line{animation-duration:var(--dance-moves-432t, 13.965517241s)!important}.ks-clay-stars-v2 .epk-button:hover:before,.ks-clay-stars-v2 .epk-button:focus-visible:before,.ks-clay-stars-v2 .epk-download:hover:before,.ks-clay-stars-v2 .epk-download:focus-visible:before,.ks-clay-stars-v2 .ks-clay-stars-chapters button:hover:before,.ks-clay-stars-v2 .ks-clay-stars-chapters button:focus-visible:before{animation:ks-gold-button-wake var(--dance-moves-32t, 1.034482758s) cubic-bezier(.22,.68,.28,1) 1 both,ks-gold-button-dance var(--dance-moves-32t, 1.034482758s) ease-in-out var(--dance-moves-32t, 1.034482758s) infinite alternate}.ks-clay-stars-v2 .epk-button:hover:after,.ks-clay-stars-v2 .epk-button:focus-visible:after,.ks-clay-stars-v2 .epk-download:hover:after,.ks-clay-stars-v2 .epk-download:focus-visible:after,.ks-clay-stars-v2 .ks-clay-stars-chapters button:hover:after,.ks-clay-stars-v2 .ks-clay-stars-chapters button:focus-visible:after{animation:ks-gold-orbit-wake var(--dance-moves-32t, 1.034482758s) cubic-bezier(.333333,0,.666667,0) 1 both,ks-gold-orbit-fade-wake var(--dance-moves-32t, 1.034482758s) ease-out 1 both,ks-gold-orbit-dance var(--dance-moves-32t, 1.034482758s) linear var(--dance-moves-32t, 1.034482758s) infinite}.ks-clay-stars-v2 .epk-button.ks-particle-release:after,.ks-clay-stars-v2 .epk-download.ks-particle-release:after,.ks-clay-stars-v2 .ks-clay-stars-chapters button.ks-particle-release:after{animation:ks-gold-orbit-release var(--ks-particle-release-duration) linear 1 both}.ks-clay-stars-v2 .ks-clay-stars-chapters button[aria-current=true]:before{opacity:.72}.ks-clay-stars-v2 .epk-button,.ks-clay-stars-v2 .epk-download,.ks-clay-stars-v2 .ks-clay-stars-chapters button{transition:background-color var(--dance-moves-32t, 1.034482758s) cubic-bezier(.22,.61,.36,1),color var(--dance-moves-32t, 1.034482758s) cubic-bezier(.22,.61,.36,1),border-color var(--dance-moves-32t, 1.034482758s) ease,border-radius var(--dance-moves-32t, 1.034482758s) cubic-bezier(.16,1,.3,1),box-shadow var(--dance-moves-32t, 1.034482758s) ease,text-shadow var(--dance-moves-32t, 1.034482758s) ease}.ks-clay-stars-v2 .epk-button:hover,.ks-clay-stars-v2 .epk-button:focus-visible,.ks-clay-stars-v2 .epk-download:hover,.ks-clay-stars-v2 .epk-download:focus-visible,.ks-clay-stars-v2 .ks-clay-stars-chapters button:hover,.ks-clay-stars-v2 .ks-clay-stars-chapters button:focus-visible{background-color:#75432f;background-image:radial-gradient(circle at 17% 28%,rgba(48,22,16,.28) 0 1px,transparent 1.8px),radial-gradient(circle at 73% 61%,rgba(246,193,99,.13) 0 1px,transparent 2px),linear-gradient(112deg,#8b4f30f5,#683727fa 54%,#7e462cf5);background-size:19px 17px,27px 23px,100% 100%;border-color:#b98522;border-radius:6px 3px 7px 2px;color:#f2c14e;box-shadow:inset 0 2px #f6c16338,inset 0 -3px #3f1c1461,inset 2px 0 #5e2f1f4d,0 0 0 1px #8c650fb8,0 9px 22px #100b1961,0 0 18px #d4af372e;text-shadow:0 1px 0 #FFE28A,0 -1px 0 #5A3B06,0 0 7px rgba(212,175,55,.56)}.ks-clay-stars-v2 .epk-cover-wrap>.epk-cover{position:relative;z-index:1;transform:translateZ(0)}.ks-clay-stars-v2 .ks-warm-bloom,.ks-clay-stars-v2 .ks-lens-flare,.ks-clay-stars-v2 .ks-specular-sweep{position:absolute;display:block;pointer-events:none;user-select:none}.ks-clay-stars-v2 .ks-warm-bloom{z-index:0;inset:-15%;background:radial-gradient(ellipse at 70% 28%,rgba(196,153,134,.36) 0,rgba(163,101,76,.26) 19%,rgba(138,60,37,.12) 42%,transparent 70%),radial-gradient(ellipse at 26% 78%,rgba(138,60,37,.2),transparent 64%);filter:blur(28px) saturate(1.08);opacity:calc(.68 * var(--ks-master-intensity));transform:translate3d(var(--ks-bloom-x),var(--ks-bloom-y),-18px);transition:transform var(--dance-moves-6t, .193965517s) ease-out,opacity var(--dance-moves-6t, .193965517s) ease-out}.ks-clay-stars-v2 .ks-lens-flare{z-index:3;inset:-24%;background:radial-gradient(circle at 72% 24%,rgba(245,241,232,.58) 0 1px,rgba(196,153,134,.34) 2px 5px,rgba(163,101,76,.13) 10px,transparent 34px),radial-gradient(circle at 34% 62%,rgba(196,153,134,.13) 0 7px,transparent 9px 17px,rgba(138,60,37,.1) 19px,transparent 31px),linear-gradient(102deg,transparent 29%,rgba(196,153,134,.05) 43%,rgba(245,241,232,.13) 50%,rgba(163,101,76,.05) 57%,transparent 71%);mix-blend-mode:screen;opacity:calc(.54 * var(--ks-master-intensity));-webkit-mask-image:radial-gradient(ellipse at center,#000 0 43%,rgba(0,0,0,.78) 58%,rgba(0,0,0,.28) 72%,transparent 88%);mask-image:radial-gradient(ellipse at center,#000 0 43%,rgba(0,0,0,.78) 58%,rgba(0,0,0,.28) 72%,transparent 88%);transform:translate3d(var(--ks-flare-x),var(--ks-flare-y),28px);transition:transform var(--dance-moves-6t, .193965517s) ease-out,opacity var(--dance-moves-6t, .193965517s) ease-out}.ks-clay-stars-v2 .ks-specular-sweep{z-index:2;inset:-34%;background:linear-gradient(116deg,transparent 34%,rgba(163,101,76,.03) 42%,rgba(196,153,134,.18) 49%,rgba(245,241,232,.12) 51%,rgba(138,60,37,.04) 58%,transparent 66%);mix-blend-mode:screen;opacity:calc(.62 * var(--ks-master-intensity));-webkit-mask-image:radial-gradient(ellipse at center,#000 0 40%,rgba(0,0,0,.74) 57%,rgba(0,0,0,.22) 73%,transparent 89%);mask-image:radial-gradient(ellipse at center,#000 0 40%,rgba(0,0,0,.74) 57%,rgba(0,0,0,.22) 73%,transparent 89%);transform:translate3d(var(--ks-spec-x),var(--ks-spec-y),18px);transition:transform var(--dance-moves-6t, .193965517s) ease-out,opacity var(--dance-moves-6t, .193965517s) ease-out}.ks-clay-stars-v2 .epk-facts,.ks-clay-stars-v2 .ks-clay-stars-player,.ks-clay-stars-v2 .ks-clay-stars-player-console,.ks-clay-stars-v2 .epk-triptych,.ks-clay-stars-v2 .epk-signal,.ks-clay-stars-v2 .epk-artwork,.ks-clay-stars-v2 .ks-epk-lyrics-track{box-shadow:0 0 34px #8a3c251a,0 0 92px #33406c17,inset 0 1px #f5f1e80b,0 24px 70px #0000002e}.ks-clay-stars-v2 .ks-clay-stars-chapters button[aria-current=true]{box-shadow:0 0 0 1px #c499868f,0 0 26px #a3654c33,inset 0 1px #f5f1e89e}@keyframes ks-cloud-drift-a{0%{transform:translate3d(-3%,-1.5%,0) scale(1.04)}to{transform:translate3d(4%,2.5%,0) scale(1.09)}}@keyframes ks-cloud-drift-b{0%{transform:translate3d(3.5%,-2%,0) scale(1.08)}to{transform:translate3d(-4%,3%,0) scale(1.03)}}@keyframes ks-particle-dance{0%,to{transform:translateZ(0) rotate(0) scale(1);opacity:calc(.38 * var(--ks-master-intensity))}9%{transform:translate3d(2px,-1px,0) rotate(.02deg) scale(1.001);opacity:calc(.44 * var(--ks-master-intensity))}13%{transform:translate3d(13px,-8px,0) rotate(.18deg) scale(1.007);opacity:calc(.6 * var(--ks-master-intensity))}19%{transform:translate3d(5px,-4px,0) rotate(.04deg) scale(1.003);opacity:calc(.48 * var(--ks-master-intensity))}34%{transform:translate3d(-3px,2px,0) rotate(-.04deg) scale(1);opacity:calc(.43 * var(--ks-master-intensity))}39%{transform:translate3d(-14px,9px,0) rotate(-.2deg) scale(1.008);opacity:calc(.62 * var(--ks-master-intensity))}46%{transform:translate3d(-5px,5px,0) rotate(-.05deg) scale(1.002);opacity:calc(.49 * var(--ks-master-intensity))}60%{transform:translate3d(1px,0,0) rotate(0) scale(.999);opacity:calc(.42 * var(--ks-master-intensity))}66%{transform:translate3d(12px,10px,0) rotate(.17deg) scale(1.007);opacity:calc(.6 * var(--ks-master-intensity))}73%{transform:translate3d(4px,5px,0) rotate(.04deg) scale(1.002);opacity:calc(.48 * var(--ks-master-intensity))}84%{transform:translate3d(-2px,-2px,0) rotate(-.02deg) scale(1);opacity:calc(.43 * var(--ks-master-intensity))}89%{transform:translate3d(-10px,-9px,0) rotate(-.15deg) scale(1.006);opacity:calc(.57 * var(--ks-master-intensity))}95%{transform:translate3d(-3px,-3px,0) rotate(-.03deg) scale(1.001);opacity:calc(.45 * var(--ks-master-intensity))}}@keyframes ks-gold-sparkle{0%{opacity:.74;transform:translateZ(0) scale(.995)}to{opacity:.96;transform:translate3d(1px,-1px,0) scale(1.005)}}@keyframes ks-gold-button-wake{0%{opacity:.74;transform:translateZ(0) rotate(0) scale(.995)}45%{opacity:.79;transform:translate3d(.45px,-.36px,0) scale(1.002)}78%{opacity:.84;transform:translate3d(1.08px,-.81px,0) scale(1.006)}to{opacity:.88;transform:translate3d(0,-1.35px,0) scale(1.012)}}@keyframes ks-gold-button-dance{0%{opacity:.82;transform:translate3d(0,-1.35px,0) rotate(-.35deg) scale(1.008)}to{opacity:.96;transform:translate3d(1.4px,-2.1px,0) rotate(.35deg) scale(1.018)}}@keyframes ks-gold-orbit-wake{0%{transform:rotate(0) scale(1.04)}to{transform:translate3d(0,-1.8px,0) rotate(120deg) scale(1.04)}}@keyframes ks-gold-orbit-fade-wake{0%{opacity:0}45%,to{opacity:.86}}@keyframes ks-gold-orbit-dance{0%{opacity:.86;transform:translate3d(0,-1.8px,0) rotate(120deg) scale(1.04)}25%{opacity:.96;transform:translate3d(2.7px,-2.7px,0) rotate(210deg) scale(1.08)}50%{opacity:.84;transform:translate3d(-1.8px,1.8px,0) rotate(300deg) scale(1.03)}75%{opacity:.97;transform:translate3d(2.7px,2.25px,0) rotate(390deg) scale(1.08)}to{opacity:.86;transform:translate3d(0,-1.8px,0) rotate(480deg) scale(1.04)}}@keyframes ks-gold-orbit-release{0%{opacity:var(--ks-orbit-release-opacity, .86);transform:var(--ks-orbit-release-transform, rotate(120deg) scale(1.02))}18%{opacity:calc(var(--ks-orbit-release-opacity, .86) * .7);transform:var(--ks-orbit-release-transform, rotate(120deg) scale(1.02))}32%{opacity:calc(var(--ks-orbit-release-opacity, .86) * .84);transform:var(--ks-orbit-release-transform, rotate(120deg) scale(1.02))}48%{opacity:calc(var(--ks-orbit-release-opacity, .86) * .44);transform:var(--ks-orbit-release-transform, rotate(120deg) scale(1.02))}62%{opacity:calc(var(--ks-orbit-release-opacity, .86) * .56);transform:var(--ks-orbit-release-transform, rotate(120deg) scale(1.02))}78%{opacity:calc(var(--ks-orbit-release-opacity, .86) * .18);transform:var(--ks-orbit-release-transform, rotate(120deg) scale(1.02))}88%{opacity:calc(var(--ks-orbit-release-opacity, .86) * .26);transform:var(--ks-orbit-release-transform, rotate(120deg) scale(1.02))}to{opacity:0;transform:var(--ks-orbit-release-transform, rotate(120deg) scale(1.02))}}.ks-clay-stars-v2:is([data-dance-moves-performance=constrained],[data-dance-moves-performance=minimal]) .ks-cloud-field:before,.ks-clay-stars-v2:is([data-dance-moves-performance=constrained],[data-dance-moves-performance=minimal]) .ks-cloud-field:after{animation:none!important;transform:translateZ(0) scale(1.05)!important;will-change:auto}.ks-clay-stars-v2:is([data-dance-moves-performance=constrained],[data-dance-moves-performance=minimal]) .epk-atmosphere:after{animation:none!important;transform:none!important;opacity:calc(.42 * var(--ks-master-intensity));will-change:auto}.ks-clay-stars-v2:is([data-dance-moves-performance=constrained],[data-dance-moves-performance=minimal]) .epk-heading:before,.ks-clay-stars-v2:is([data-dance-moves-performance=constrained],[data-dance-moves-performance=minimal]) .ks-clay-stars-player-copy:before,.ks-clay-stars-v2:is([data-dance-moves-performance=constrained],[data-dance-moves-performance=minimal]) .epk-cosmology-head:before,.ks-clay-stars-v2:is([data-dance-moves-performance=constrained],[data-dance-moves-performance=minimal]) .epk-artwork>div:before,.ks-clay-stars-v2:is([data-dance-moves-performance=constrained],[data-dance-moves-performance=minimal]) .ks-epk-lyrics>div:first-child:before,.ks-clay-stars-v2:is([data-dance-moves-performance=constrained],[data-dance-moves-performance=minimal]) .epk-button:before,.ks-clay-stars-v2:is([data-dance-moves-performance=constrained],[data-dance-moves-performance=minimal]) .epk-download:before,.ks-clay-stars-v2:is([data-dance-moves-performance=constrained],[data-dance-moves-performance=minimal]) .ks-clay-stars-chapters button:before{animation:none!important;transform:translateZ(0) scale(1)!important}.ks-clay-stars-v2[data-dance-moves-performance=minimal] .ks-cloud-field:before,.ks-clay-stars-v2[data-dance-moves-performance=minimal] .ks-cloud-field:after,.ks-clay-stars-v2[data-dance-moves-performance=minimal] .epk-atmosphere:after{filter:none!important;mix-blend-mode:normal!important}@media(prefers-reduced-motion:reduce){.ks-clay-stars-v2 .epk-cover-wrap,.ks-clay-stars-v2 .ks-warm-bloom,.ks-clay-stars-v2 .ks-lens-flare,.ks-clay-stars-v2 .ks-specular-sweep,.ks-clay-stars-v2 .epk-button,.ks-clay-stars-v2 .epk-download,.ks-clay-stars-v2 .ks-clay-stars-chapters button{transition:none!important}.ks-clay-stars-v2 .ks-cloud-field:before,.ks-clay-stars-v2 .ks-cloud-field:after{animation:none!important;transform:none!important;will-change:auto}.ks-clay-stars-v2 .epk-atmosphere:after{animation:none!important;transform:none!important;filter:none!important;opacity:.42;will-change:auto}.ks-clay-stars-v2 .epk-heading:before,.ks-clay-stars-v2 .ks-clay-stars-player-copy:before,.ks-clay-stars-v2 .epk-cosmology-head:before,.ks-clay-stars-v2 .epk-artwork>div:before,.ks-clay-stars-v2 .ks-epk-lyrics>div:first-child:before,.ks-clay-stars-v2 .epk-button:before,.ks-clay-stars-v2 .epk-download:before,.ks-clay-stars-v2 .ks-clay-stars-chapters button:before,.ks-clay-stars-v2 .epk-button:after,.ks-clay-stars-v2 .epk-download:after,.ks-clay-stars-v2 .ks-clay-stars-chapters button:after{animation:none!important;transition:none!important;transform:none!important}.ks-clay-stars-v2 .epk-button:before,.ks-clay-stars-v2 .epk-download:before,.ks-clay-stars-v2 .ks-clay-stars-chapters button:before{opacity:.62}.ks-clay-stars-v2 .epk-button:hover:after,.ks-clay-stars-v2 .epk-button:focus-visible:after,.ks-clay-stars-v2 .epk-download:hover:after,.ks-clay-stars-v2 .epk-download:focus-visible:after,.ks-clay-stars-v2 .ks-clay-stars-chapters button:hover:after,.ks-clay-stars-v2 .ks-clay-stars-chapters button:focus-visible:after{opacity:.68}.ks-clay-stars-v2 .epk-button.ks-particle-release:after,.ks-clay-stars-v2 .epk-download.ks-particle-release:after,.ks-clay-stars-v2 .ks-clay-stars-chapters button.ks-particle-release:after{animation:none!important;opacity:0!important}.ks-clay-stars-v2 .ks-lens-flare{opacity:.34}.ks-clay-stars-v2 .ks-specular-sweep{opacity:.38}}@media(forced-colors:active){.ks-clay-stars-v2 .ks-warm-bloom,.ks-clay-stars-v2 .ks-lens-flare,.ks-clay-stars-v2 .ks-specular-sweep,.ks-clay-stars-v2 .ks-cloud-field{display:none}.ks-clay-stars-v2 .epk-facts,.ks-clay-stars-v2 .ks-clay-stars-player,.ks-clay-stars-v2 .ks-clay-stars-player-console,.ks-clay-stars-v2 .epk-triptych,.ks-clay-stars-v2 .epk-signal,.ks-clay-stars-v2 .epk-artwork,.ks-clay-stars-v2 .ks-epk-lyrics-track{box-shadow:none}.ks-clay-stars-v2 .epk-heading:before,.ks-clay-stars-v2 .ks-clay-stars-player-copy:before,.ks-clay-stars-v2 .epk-cosmology-head:before,.ks-clay-stars-v2 .epk-artwork>div:before,.ks-clay-stars-v2 .ks-epk-lyrics>div:first-child:before,.ks-clay-stars-v2 .epk-button:before,.ks-clay-stars-v2 .epk-download:before,.ks-clay-stars-v2 .ks-clay-stars-chapters button:before,.ks-clay-stars-v2 .epk-button:after,.ks-clay-stars-v2 .epk-download:after,.ks-clay-stars-v2 .ks-clay-stars-chapters button:after{display:none}.ks-clay-stars-v2 .ks-clay-stars-chapters button[aria-current=true]{box-shadow:none}}@media(max-width:760px),(hover:none),(pointer:coarse){.ks-clay-stars-v2 .ks-cloud-field:before{opacity:.4}.ks-clay-stars-v2 .ks-cloud-field:after{opacity:.32}.ks-clay-stars-v2 .ks-warm-bloom{opacity:.58}.ks-clay-stars-v2 .ks-lens-flare{opacity:.38}.ks-clay-stars-v2 .ks-specular-sweep{opacity:.42}}
|
|
6
|
+
|
|
7
|
+
.ks-clay-stars-v2[data-dance-moves-rudiment-clay=active][data-dance-moves-performance=full] .epk-atmosphere:after{animation:ks-clay-rudiment-treatment var(--dance-moves-128t) linear infinite both!important;animation-play-state:paused!important;translate:var(--ks-clay-rudiment-x, 0px) var(--ks-clay-rudiment-y, 0px);transition:none!important;will-change:translate,transform,opacity}.ks-clay-stars-v2[data-dance-moves-rudiment-clay=suspended] .epk-atmosphere:after{animation:none!important;translate:none!important;will-change:auto}@keyframes ks-clay-rudiment-treatment{0%,to{transform:rotate(0) scale(1);opacity:calc(.38 * var(--ks-master-intensity))}9%{transform:rotate(.02deg) scale(1.001);opacity:calc(.44 * var(--ks-master-intensity))}13%{transform:rotate(.18deg) scale(1.007);opacity:calc(.6 * var(--ks-master-intensity))}19%{transform:rotate(.04deg) scale(1.003);opacity:calc(.48 * var(--ks-master-intensity))}34%{transform:rotate(-.04deg) scale(1);opacity:calc(.43 * var(--ks-master-intensity))}39%{transform:rotate(-.2deg) scale(1.008);opacity:calc(.62 * var(--ks-master-intensity))}46%{transform:rotate(-.05deg) scale(1.002);opacity:calc(.49 * var(--ks-master-intensity))}60%{transform:rotate(0) scale(.999);opacity:calc(.42 * var(--ks-master-intensity))}66%{transform:rotate(.17deg) scale(1.007);opacity:calc(.6 * var(--ks-master-intensity))}73%{transform:rotate(.04deg) scale(1.002);opacity:calc(.48 * var(--ks-master-intensity))}84%{transform:rotate(-.02deg) scale(1);opacity:calc(.43 * var(--ks-master-intensity))}89%{transform:rotate(-.15deg) scale(1.006);opacity:calc(.57 * var(--ks-master-intensity))}95%{transform:rotate(-.03deg) scale(1.001);opacity:calc(.45 * var(--ks-master-intensity))}}@media(prefers-reduced-motion:reduce),(forced-colors:active){.ks-clay-stars-v2[data-dance-moves-rudiment-clay] .epk-atmosphere:after{animation:none!important;translate:none!important;transform:none!important;will-change:auto!important}}
|
|
8
|
+
|
|
9
|
+
.ks-epk[data-release=paper-dreams-from-the-sky] .epk-hero{position:relative;isolation:isolate;overflow:hidden}.paper-dreams-flight{position:absolute;z-index:2;inset:0;overflow:hidden;pointer-events:none;contain:strict;clip-path:inset(0)}.paper-dreams-flight~*{position:relative}.paper-dreams-flight~.epk-cover-wrap{z-index:1}.paper-dreams-flight~.epk-heading{z-index:3}.paper-dreams-flight__plane{position:absolute;left:0;top:0;width:var(--plane-size,110px);aspect-ratio:1.5;background-image:var(--paper-dreams-atlas);background-size:600% 400%;background-position:var(--sprite-x) var(--sprite-y);background-repeat:no-repeat;opacity:var(--plane-opacity,.82);transform-origin:50% 50%;will-change:transform;contain:layout paint}.paper-dreams-flight__plane:before,.paper-dreams-flight__plane:after{content:"";position:absolute;z-index:-1;inset:0;background-image:var(--paper-dreams-atlas);background-size:600% 400%;background-position:var(--sprite-x) var(--sprite-y);background-repeat:no-repeat;pointer-events:none;transform-origin:50% 50%;opacity:.26;transform:translate3d(-20px,0,0) scaleX(1.18)}.paper-dreams-flight__plane:after{opacity:.13;transform:translate3d(-42px,0,0) scaleX(1.34)}.paper-dreams-flight__plane[data-flight-state=drop]:before,.paper-dreams-flight__plane[data-flight-state=recovery]:before,.paper-dreams-flight__plane[data-flight-state=swoop]:before{opacity:.42;transform:translate3d(-32px,0,0) scaleX(1.3)}.paper-dreams-flight__plane[data-flight-state=drop]:after,.paper-dreams-flight__plane[data-flight-state=recovery]:after,.paper-dreams-flight__plane[data-flight-state=swoop]:after{opacity:.22;transform:translate3d(-66px,0,0) scaleX(1.58)}.paper-dreams-flight[data-quality=compact] .paper-dreams-flight__plane:nth-child(n+6){display:none}.paper-dreams-flight[data-quality=static] .paper-dreams-flight__plane{display:none;will-change:auto}.paper-dreams-flight[data-quality=static] .paper-dreams-flight__plane:nth-child(-n+3){display:block;transform:var(--static-transform);opacity:.55}@media(max-width:760px){.paper-dreams-flight__plane{width:var(--plane-size-compact,76px)}.paper-dreams-flight{inset:72px 0 0}}@media(prefers-reduced-motion:reduce){.paper-dreams-flight__plane{display:none!important;will-change:auto!important}.paper-dreams-flight__plane:before,.paper-dreams-flight__plane:after{display:none!important}.ks-epk .epk-story-plane{animation:none!important}}@media(forced-colors:active){.paper-dreams-flight{display:none}}
|