├── settings
├── setup_state
└── onboarding_status
├── webapp
├── images
│ ├── appstart.png
│ ├── explicit.svg
│ ├── bluetooth-icon.svg
│ ├── menu-dots.svg
│ ├── round-corners.svg
│ ├── mobile-signal.svg
│ ├── no-connection.svg
│ ├── setup-qr.svg
│ ├── more-48.svg
│ └── radio-rings-bg.svg
├── static
│ ├── media
│ │ ├── other-media.83237a6ee7e62a4fb53b.png
│ │ ├── CircularSpUIv3T-Bold.8d0a45ccf7017ce6c399.woff2
│ │ ├── CircularSpUIv3T-Book.3466e0ec02233312a508.woff2
│ │ └── CircularSpUIv3T-Black.c21e63c579eddbb69e2b.woff2
│ ├── js
│ │ └── main.js.LICENSE.txt
│ └── css
│ │ ├── main.css
│ │ └── main.css.map
├── index.html
├── asset-manifest.json
└── license
│ └── mw-license.txt
├── README.md
└── .gitignore
/settings/setup_state:
--------------------------------------------------------------------------------
1 | finished
2 |
--------------------------------------------------------------------------------
/settings/onboarding_status:
--------------------------------------------------------------------------------
1 | finished
2 |
--------------------------------------------------------------------------------
/webapp/images/appstart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/williamtcastro/carthing-non-premium-spotify/HEAD/webapp/images/appstart.png
--------------------------------------------------------------------------------
/webapp/static/media/other-media.83237a6ee7e62a4fb53b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/williamtcastro/carthing-non-premium-spotify/HEAD/webapp/static/media/other-media.83237a6ee7e62a4fb53b.png
--------------------------------------------------------------------------------
/webapp/static/media/CircularSpUIv3T-Bold.8d0a45ccf7017ce6c399.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/williamtcastro/carthing-non-premium-spotify/HEAD/webapp/static/media/CircularSpUIv3T-Bold.8d0a45ccf7017ce6c399.woff2
--------------------------------------------------------------------------------
/webapp/static/media/CircularSpUIv3T-Book.3466e0ec02233312a508.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/williamtcastro/carthing-non-premium-spotify/HEAD/webapp/static/media/CircularSpUIv3T-Book.3466e0ec02233312a508.woff2
--------------------------------------------------------------------------------
/webapp/static/media/CircularSpUIv3T-Black.c21e63c579eddbb69e2b.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/williamtcastro/carthing-non-premium-spotify/HEAD/webapp/static/media/CircularSpUIv3T-Black.c21e63c579eddbb69e2b.woff2
--------------------------------------------------------------------------------
/webapp/images/explicit.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/webapp/images/bluetooth-icon.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/webapp/index.html:
--------------------------------------------------------------------------------
1 |
Superbird
--------------------------------------------------------------------------------
/webapp/images/menu-dots.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/webapp/images/round-corners.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/webapp/asset-manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "files": {
3 | "main.css": "./static/css/main.css",
4 | "main.js": "./static/js/main.js",
5 | "static/media/CircularSpUIv3T-Bold.woff2": "./static/media/CircularSpUIv3T-Bold.8d0a45ccf7017ce6c399.woff2",
6 | "static/media/CircularSpUIv3T-Book.woff2": "./static/media/CircularSpUIv3T-Book.3466e0ec02233312a508.woff2",
7 | "static/media/CircularSpUIv3T-Black.woff2": "./static/media/CircularSpUIv3T-Black.c21e63c579eddbb69e2b.woff2",
8 | "static/media/other-media.png": "./static/media/other-media.83237a6ee7e62a4fb53b.png",
9 | "index.html": "./index.html",
10 | "main.css.map": "./static/css/main.css.map",
11 | "main.js.map": "./static/js/main.js.map"
12 | },
13 | "entrypoints": [
14 | "static/css/main.css",
15 | "static/js/main.js"
16 | ]
17 | }
--------------------------------------------------------------------------------
/webapp/images/mobile-signal.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/webapp/images/no-connection.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/webapp/images/setup-qr.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/webapp/images/more-48.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/webapp/static/js/main.js.LICENSE.txt:
--------------------------------------------------------------------------------
1 | /*
2 | object-assign
3 | (c) Sindre Sorhus
4 | @license MIT
5 | */
6 |
7 | /*!
8 | Copyright (c) 2018 Jed Watson.
9 | Licensed under the MIT License (MIT), see
10 | http://jedwatson.github.io/classnames
11 | */
12 |
13 | /** @license React v0.20.2
14 | * scheduler.production.min.js
15 | *
16 | * Copyright (c) Facebook, Inc. and its affiliates.
17 | *
18 | * This source code is licensed under the MIT license found in the
19 | * LICENSE file in the root directory of this source tree.
20 | */
21 |
22 | /** @license React v16.13.1
23 | * react-is.production.min.js
24 | *
25 | * Copyright (c) Facebook, Inc. and its affiliates.
26 | *
27 | * This source code is licensed under the MIT license found in the
28 | * LICENSE file in the root directory of this source tree.
29 | */
30 |
31 | /** @license React v17.0.2
32 | * react-dom.production.min.js
33 | *
34 | * Copyright (c) Facebook, Inc. and its affiliates.
35 | *
36 | * This source code is licensed under the MIT license found in the
37 | * LICENSE file in the root directory of this source tree.
38 | */
39 |
40 | /** @license React v17.0.2
41 | * react-jsx-runtime.production.min.js
42 | *
43 | * Copyright (c) Facebook, Inc. and its affiliates.
44 | *
45 | * This source code is licensed under the MIT license found in the
46 | * LICENSE file in the root directory of this source tree.
47 | */
48 |
49 | /** @license React v17.0.2
50 | * react.production.min.js
51 | *
52 | * Copyright (c) Facebook, Inc. and its affiliates.
53 | *
54 | * This source code is licensed under the MIT license found in the
55 | * LICENSE file in the root directory of this source tree.
56 | */
57 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Car Thing Non-Premium Spotify
2 |
3 | This repo enables the use of the Car thing with a non-premium Spotify account. It removes the need to have the premium account to use the Car Thing but you still have the usual limitations of the Spotify free besides you’re now able to chose the song on the playlist and voice commands works as normal.
4 |
5 | ## JOIN OUR DISCORD COMMUINITY
6 | https://discord.gg/YACmDGAMy5
7 |
8 | ## Tools required
9 |
10 | - [ADB Tools](https://www.xda-developers.com/install-adb-windows-macos-linux/)
11 | - [Python3](https://www.python.org/)
12 | - [Pyamlboot](https://github.com/superna9999/pyamlboot)
13 | - [Superbird Tool - by Bishopdynamics](https://github.com/bishopdynamics/superbird-tool)
14 |
15 | ## Installation
16 |
17 | Flash the already jailbroken firmware provided [here](https://github.com/err4o4/spotify-car-thing-reverse-engineering/issues/22#issue-1432896381) from lmore377 into your Car Thing or use **Superbird Tool** to flash the firmware.
18 |
19 | Run the commands below on the repo folder:
20 |
21 | ```bash
22 | # 1 - Enable carthing to write files
23 | adb shell mount -o remount,rw /
24 |
25 | # 2 - Setup carthing without need the phone app
26 | adb push settings/onboarding_status /var/lib/qt-superbird-app/settings
27 | adb push settings/setup_state /var/lib/qt-superbird-app/settings
28 |
29 | # 3 - Save the original app
30 | adb shell mv /usr/share/qt-superbird-app/webapp /usr/share/qt-superbird-app/webapp-orig
31 | adb push webapp /usr/share/qt-superbird-app/
32 |
33 | # 4 - Reboot the device
34 | adb shell reboot
35 | ```
36 |
37 | Pair with your phone via bluetooth and it’s done.
38 |
39 | ## Troubleshooting
40 |
41 | If you’re car thing us paired with your phone, unpair it and then pair it again after the installation process.
42 |
43 | ## Warranty and Liability
44 |
45 | None. This changes the original firmware from Spotify, and if a OTA Update is made these changes will probably be reverted. By using this tool, you accept responsibility for the outcome.
46 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | build/
12 | develop-eggs/
13 | dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | sdist/
21 | var/
22 | wheels/
23 | pip-wheel-metadata/
24 | share/python-wheels/
25 | *.egg-info/
26 | .installed.cfg
27 | *.egg
28 | MANIFEST
29 |
30 | # PyInstaller
31 | # Usually these files are written by a python script from a template
32 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
33 | *.manifest
34 | *.spec
35 |
36 | # Installer logs
37 | pip-log.txt
38 | pip-delete-this-directory.txt
39 |
40 | # Unit test / coverage reports
41 | htmlcov/
42 | .tox/
43 | .nox/
44 | .coverage
45 | .coverage.*
46 | .cache
47 | nosetests.xml
48 | coverage.xml
49 | *.cover
50 | *.py,cover
51 | .hypothesis/
52 | .pytest_cache/
53 |
54 | # Translations
55 | *.mo
56 | *.pot
57 |
58 | # Django stuff:
59 | *.log
60 | local_settings.py
61 | db.sqlite3
62 | db.sqlite3-journal
63 |
64 | # Flask stuff:
65 | instance/
66 | .webassets-cache
67 |
68 | # Scrapy stuff:
69 | .scrapy
70 |
71 | # Sphinx documentation
72 | docs/_build/
73 |
74 | # PyBuilder
75 | target/
76 |
77 | # Jupyter Notebook
78 | .ipynb_checkpoints
79 |
80 | # IPython
81 | profile_default/
82 | ipython_config.py
83 |
84 | # pyenv
85 | .python-version
86 |
87 | # pipenv
88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies
90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not
91 | # install all needed dependencies.
92 | #Pipfile.lock
93 |
94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow
95 | __pypackages__/
96 |
97 | # Celery stuff
98 | celerybeat-schedule
99 | celerybeat.pid
100 |
101 | # SageMath parsed files
102 | *.sage.py
103 |
104 | # Environments
105 | .env
106 | .venv
107 | env/
108 | venv/
109 | ENV/
110 | env.bak/
111 | venv.bak/
112 |
113 | # Spyder project settings
114 | .spyderproject
115 | .spyproject
116 |
117 | # Rope project settings
118 | .ropeproject
119 |
120 | # mkdocs documentation
121 | /site
122 |
123 | # mypy
124 | .mypy_cache/
125 | .dmypy.json
126 | dmypy.json
127 |
128 | # Pyre type checker
129 | .pyre/
130 |
--------------------------------------------------------------------------------
/webapp/images/radio-rings-bg.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
38 |
--------------------------------------------------------------------------------
/webapp/license/mw-license.txt:
--------------------------------------------------------------------------------
1 | cpp-base64
2 |
3 | https://github.com/ReneNyffenegger/cpp-base64
4 |
5 | Copyright © 2004-2017 by René Nyffenegger
6 |
7 | This source code is provided 'as-is', without any express or implied
8 | warranty. In no event will the author be held liable for any damages
9 | arising from the use of this software.
10 |
11 | Permission is granted to anyone to use this software for any purpose,
12 | including commercial applications, and to alter it and redistribute it
13 | freely, subject to the following restrictions:
14 |
15 | 1. The origin of this source code must not be misrepresented; you must not
16 | claim that you wrote the original source code. If you use this source code
17 | in a product, an acknowledgment in the product documentation would be
18 | appreciated but is not required.
19 |
20 | 2. Altered source versions must be plainly marked as such, and must not be
21 | misrepresented as being the original source code.
22 |
23 | 3. This notice may not be removed or altered from any source distribution.
24 |
25 |
26 | concurrentqueue
27 |
28 | https://github.com/cameron314/concurrentqueue
29 |
30 | This license file applies to everything in this repository except that which
31 | is explicitly annotated as being written by other authors, i.e. the Boost
32 | queue (included in the benchmarks for comparison), Intel's TBB library (ditto),
33 | dlib::pipe (ditto),
34 | the CDSChecker tool (used for verification), the Relacy model checker (ditto),
35 | and Jeff Preshing's semaphore implementation (used in the blocking queue) which
36 | has a zlib license (embedded in lightweightsempahore.h).
37 |
38 | ---
39 |
40 | Simplified BSD License:
41 |
42 | Copyright (c) 2013-2016, Cameron Desrochers.
43 | All rights reserved.
44 |
45 | Redistribution and use in source and binary forms, with or without modification,
46 | are permitted provided that the following conditions are met:
47 |
48 | - Redistributions of source code must retain the above copyright notice, this list of
49 | conditions and the following disclaimer.
50 | - Redistributions in binary form must reproduce the above copyright notice, this list of
51 | conditions and the following disclaimer in the documentation and/or other materials
52 | provided with the distribution.
53 |
54 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
55 | EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
56 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
57 | THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
58 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
59 | OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
60 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
61 | TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
62 | EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
63 |
64 | ---
65 |
66 | I have also chosen to dual-license under the Boost Software License as an alternative to
67 | the Simplified BSD license above:
68 |
69 | Boost Software License - Version 1.0 - August 17th, 2003
70 |
71 | Permission is hereby granted, free of charge, to any person or organization
72 | obtaining a copy of the software and accompanying documentation covered by
73 | this license (the "Software") to use, reproduce, display, distribute,
74 | execute, and transmit the Software, and to prepare derivative works of the
75 | Software, and to permit third-parties to whom the Software is furnished to
76 | do so, all subject to the following:
77 |
78 | The copyright notices in the Software and this entire statement, including
79 | the above license grant, this restriction and the following disclaimer,
80 | must be included in all copies of the Software, in whole or in part, and
81 | all derivative works of the Software, unless such copies or derivative
82 | works are solely in the form of machine-executable object code generated by
83 | a source language processor.
84 |
85 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
86 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
87 | FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
88 | SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
89 | FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
90 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
91 | DEALINGS IN THE SOFTWARE.
92 |
93 |
94 | json
95 |
96 | https://github.com/nlohmann/json
97 |
98 | MIT License
99 |
100 | Copyright (c) 2013-2021 Niels Lohmann
101 |
102 | Permission is hereby granted, free of charge, to any person obtaining a copy
103 | of this software and associated documentation files (the "Software"), to deal
104 | in the Software without restriction, including without limitation the rights
105 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
106 | copies of the Software, and to permit persons to whom the Software is
107 | furnished to do so, subject to the following conditions:
108 |
109 | The above copyright notice and this permission notice shall be included in all
110 | copies or substantial portions of the Software.
111 |
112 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
113 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
114 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
115 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
116 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
117 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
118 | SOFTWARE.
119 |
120 |
121 | hash-library
122 |
123 | https://create.stephan-brumme.com/hash-library/hash-library.zip
124 |
125 | zlib License
126 |
127 | Copyright (c) 2014,2015 Stephan Brumme
128 |
129 | This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
130 | Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
131 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software.
132 | If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
133 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
134 | 3. This notice may not be removed or altered from any source distribution.
135 |
136 |
137 | CLI11
138 |
139 | https://github.com/CLIUtils/CLI11
140 |
141 | CLI11 1.8 Copyright (c) 2017-2019 University of Cincinnati, developed by Henry
142 | Schreiner under NSF AWARD 1414736. All rights reserved.
143 |
144 | Redistribution and use in source and binary forms of CLI11, with or without
145 | modification, are permitted provided that the following conditions are met:
146 |
147 | 1. Redistributions of source code must retain the above copyright notice, this
148 | list of conditions and the following disclaimer.
149 | 2. Redistributions in binary form must reproduce the above copyright notice,
150 | this list of conditions and the following disclaimer in the documentation
151 | and/or other materials provided with the distribution.
152 | 3. Neither the name of the copyright holder nor the names of its contributors
153 | may be used to endorse or promote products derived from this software without
154 | specific prior written permission.
155 |
156 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
157 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
158 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
159 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
160 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
161 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
162 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
163 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
164 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
165 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
166 |
167 |
168 | breakpad
169 |
170 | https://chromium.googlesource.com/breakpad/breakpad
171 |
172 | Copyright (c) 2006, Google Inc.
173 | All rights reserved.
174 |
175 | Redistribution and use in source and binary forms, with or without
176 | modification, are permitted provided that the following conditions are
177 | met:
178 |
179 | * Redistributions of source code must retain the above copyright
180 | notice, this list of conditions and the following disclaimer.
181 | * Redistributions in binary form must reproduce the above
182 | copyright notice, this list of conditions and the following disclaimer
183 | in the documentation and/or other materials provided with the
184 | distribution.
185 | * Neither the name of Google Inc. nor the names of its
186 | contributors may be used to endorse or promote products derived from
187 | this software without specific prior written permission.
188 |
189 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
190 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
191 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
192 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
193 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
194 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
195 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
196 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
197 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
198 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
199 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
200 |
201 | --------------------------------------------------------------------
202 |
203 | Copyright 2001-2004 Unicode, Inc.
204 |
205 | Disclaimer
206 |
207 | This source code is provided as is by Unicode, Inc. No claims are
208 | made as to fitness for any particular purpose. No warranties of any
209 | kind are expressed or implied. The recipient agrees to determine
210 | applicability of information provided. If this file has been
211 | purchased on magnetic or optical media from Unicode, Inc., the
212 | sole remedy for any claim will be exchange of defective media
213 | within 90 days of receipt.
214 |
215 | Limitations on Rights to Redistribute This Code
216 |
217 | Unicode, Inc. hereby grants the right to freely use the information
218 | supplied in this file in the creation of products supporting the
219 | Unicode Standard, and to make copies of this file in any form
220 | for internal or external distribution as long as this notice
221 | remains attached.
222 |
223 | --------------------------------------------------------------------
224 |
225 | libunwind - a platform-independent unwind library
226 | Copyright (C) 2008 Google, Inc
227 | Contributed by Paul Pluzhnikov
228 | Copyright (C) 2010 Konstantin Belousov
229 |
230 | Permission is hereby granted, free of charge, to any person obtaining
231 | a copy of this software and associated documentation files (the
232 | "Software"), to deal in the Software without restriction, including
233 | without limitation the rights to use, copy, modify, merge, publish,
234 | distribute, sublicense, and/or sell copies of the Software, and to
235 | permit persons to whom the Software is furnished to do so, subject to
236 | the following conditions:
237 |
238 | The above copyright notice and this permission notice shall be
239 | included in all copies or substantial portions of the Software.
240 |
241 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
242 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
243 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
244 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
245 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
246 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
247 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
248 |
249 | --------------------------------------------------------------------
250 |
251 | Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
252 |
253 | @APPLE_LICENSE_HEADER_START@
254 |
255 | This file contains Original Code and/or Modifications of Original Code
256 | as defined in and that are subject to the Apple Public Source License
257 | Version 2.0 (the 'License'). You may not use this file except in
258 | compliance with the License. Please obtain a copy of the License at
259 | http://www.opensource.apple.com/apsl/ and read it before using this
260 | file.
261 |
262 | The Original Code and all software distributed under the License are
263 | distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
264 | EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
265 | INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
266 | FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
267 | Please see the License for the specific language governing rights and
268 | limitations under the License.
269 |
270 | @APPLE_LICENSE_HEADER_END@
271 |
272 | --------------------------------------------------------------------
273 |
274 | Copyright (c) 1989, 1993
275 | The Regents of the University of California. All rights reserved.
276 |
277 | Redistribution and use in source and binary forms, with or without
278 | modification, are permitted provided that the following conditions
279 | are met:
280 | 1. Redistributions of source code must retain the above copyright
281 | notice, this list of conditions and the following disclaimer.
282 | 2. Redistributions in binary form must reproduce the above copyright
283 | notice, this list of conditions and the following disclaimer in the
284 | documentation and/or other materials provided with the distribution.
285 | 3. All advertising materials mentioning features or use of this software
286 | must display the following acknowledgement:
287 | This product includes software developed by the University of
288 | California, Berkeley and its contributors.
289 | 4. Neither the name of the University nor the names of its contributors
290 | may be used to endorse or promote products derived from this software
291 | without specific prior written permission.
292 |
293 | THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
294 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
295 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
296 | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
297 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
298 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
299 | OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
300 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
301 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
302 | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
303 | SUCH DAMAGE.
304 |
305 |
306 | libdisasm
307 |
308 | https://sourceforge.net/projects/bastard/files/libdisasm/
309 |
310 |
311 |
312 |
313 |
314 | The "Clarified Artistic License"
315 |
316 | Preamble
317 |
318 | The intent of this document is to state the conditions under which a
319 | Package may be copied, such that the Copyright Holder maintains some
320 | semblance of artistic control over the development of the package,
321 | while giving the users of the package the right to use and distribute
322 | the Package in a more-or-less customary fashion, plus the right to make
323 | reasonable modifications.
324 |
325 | Definitions:
326 |
327 | "Package" refers to the collection of files distributed by the
328 | Copyright Holder, and derivatives of that collection of files
329 | created through textual modification.
330 |
331 | "Standard Version" refers to such a Package if it has not been
332 | modified, or has been modified in accordance with the wishes
333 | of the Copyright Holder as specified below.
334 |
335 | "Copyright Holder" is whoever is named in the copyright or
336 | copyrights for the package.
337 |
338 | "You" is you, if you're thinking about copying or distributing
339 | this Package.
340 |
341 | "Distribution fee" is a fee you charge for providing a copy of this
342 | Package to another party.
343 |
344 | "Freely Available" means that no fee is charged for the right to use
345 | the item, though there may be fees involved in handling the item.
346 |
347 | 1. You may make and give away verbatim copies of the source form of the
348 | Standard Version of this Package without restriction, provided that you
349 | duplicate all of the original copyright notices and associated disclaimers.
350 |
351 | 2. You may apply bug fixes, portability fixes and other modifications
352 | derived from the Public Domain, or those made Freely Available, or from
353 | the Copyright Holder. A Package modified in such a way shall still be
354 | considered the Standard Version.
355 |
356 | 3. You may otherwise modify your copy of this Package in any way, provided
357 | that you insert a prominent notice in each changed file stating how and
358 | when you changed that file, and provided that you do at least ONE of the
359 | following:
360 |
361 | a) place your modifications in the Public Domain or otherwise make them
362 | Freely Available, such as by posting said modifications to Usenet or
363 | an equivalent medium, or placing the modifications on a major archive
364 | site allowing unrestricted access to them, or by allowing the Copyright
365 | Holder to include your modifications in the Standard Version of the
366 | Package.
367 |
368 | b) use the modified Package only within your corporation or organization.
369 |
370 | c) rename any non-standard executables so the names do not conflict
371 | with standard executables, which must also be provided, and provide
372 | a separate manual page for each non-standard executable that clearly
373 | documents how it differs from the Standard Version.
374 |
375 | d) make other distribution arrangements with the Copyright Holder.
376 |
377 | e) permit and encourge anyone who receives a copy of the modified Package
378 | permission to make your modifications Freely Available in some specific
379 | way.
380 |
381 | 4. You may distribute the programs of this Package in object code or
382 | executable form, provided that you do at least ONE of the following:
383 |
384 | a) distribute a Standard Version of the executables and library files,
385 | together with instructions (in the manual page or equivalent) on where
386 | to get the Standard Version.
387 |
388 | b) accompany the distribution with the machine-readable source of
389 | the Package with your modifications.
390 |
391 | c) give non-standard executables non-standard names, and clearly
392 | document the differences in manual pages (or equivalent), together
393 | with instructions on where to get the Standard Version.
394 |
395 | d) make other distribution arrangements with the Copyright Holder.
396 |
397 | e) offer the machine-readable source of the Package, with your
398 | modifications, by mail order.
399 |
400 | 5. You may charge a distribution fee for any distribution of this Package.
401 | If you offer support for this Package, you may charge any fee you choose
402 | for that support. You may not charge a license fee for the right to use
403 | this Package itself. You may distribute this Package in aggregate with
404 | other (possibly commercial and possibly nonfree) programs as part of a
405 | larger (possibly commercial and possibly nonfree) software distribution,
406 | and charge license fees for other parts of that software distribution,
407 | provided that you do not advertise this Package as a product of your own.
408 | If the Package includes an interpreter, You may embed this Package's
409 | interpreter within an executable of yours (by linking); this shall be
410 | construed as a mere form of aggregation, provided that the complete
411 | Standard Version of the interpreter is so embedded.
412 |
413 | 6. The scripts and library files supplied as input to or produced as
414 | output from the programs of this Package do not automatically fall
415 | under the copyright of this Package, but belong to whoever generated
416 | them, and may be sold commercially, and may be aggregated with this
417 | Package. If such scripts or library files are aggregated with this
418 | Package via the so-called "undump" or "unexec" methods of producing a
419 | binary executable image, then distribution of such an image shall
420 | neither be construed as a distribution of this Package nor shall it
421 | fall under the restrictions of Paragraphs 3 and 4, provided that you do
422 | not represent such an executable image as a Standard Version of this
423 | Package.
424 |
425 | 7. C subroutines (or comparably compiled subroutines in other
426 | languages) supplied by you and linked into this Package in order to
427 | emulate subroutines and variables of the language defined by this
428 | Package shall not be considered part of this Package, but are the
429 | equivalent of input as in Paragraph 6, provided these subroutines do
430 | not change the language in any way that would cause it to fail the
431 | regression tests for the language.
432 |
433 | 8. Aggregation of the Standard Version of the Package with a commercial
434 | distribution is always permitted provided that the use of this Package is
435 | embedded; that is, when no overt attempt is made to make this Package's
436 | interfaces visible to the end user of the commercial distribution.
437 | Such use shall not be construed as a distribution of this Package.
438 |
439 | 9. The name of the Copyright Holder may not be used to endorse or promote
440 | products derived from this software without specific prior written permission.
441 |
442 | 10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
443 | IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
444 | WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
445 |
446 | The End
447 |
448 |
449 | asio
450 |
451 | https://think-async.com/Asio/
452 |
453 | Boost Software License - Version 1.0 - August 17th, 2003
454 |
455 | Permission is hereby granted, free of charge, to any person or organization
456 | obtaining a copy of the software and accompanying documentation covered by
457 | this license (the "Software") to use, reproduce, display, distribute,
458 | execute, and transmit the Software, and to prepare derivative works of the
459 | Software, and to permit third-parties to whom the Software is furnished to
460 | do so, all subject to the following:
461 |
462 | The copyright notices in the Software and this entire statement, including
463 | the above license grant, this restriction and the following disclaimer,
464 | must be included in all copies of the Software, in whole or in part, and
465 | all derivative works of the Software, unless such copies or derivative
466 | works are solely in the form of machine-executable object code generated by
467 | a source language processor.
468 |
469 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
470 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
471 | FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
472 | SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
473 | FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
474 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
475 | DEALINGS IN THE SOFTWARE.
476 |
477 |
478 | ogg
479 |
480 | https://github.com/xiph/ogg
481 |
482 | Copyright (c) 2002, Xiph.org Foundation
483 |
484 | Redistribution and use in source and binary forms, with or without
485 | modification, are permitted provided that the following conditions
486 | are met:
487 |
488 | - Redistributions of source code must retain the above copyright
489 | notice, this list of conditions and the following disclaimer.
490 |
491 | - Redistributions in binary form must reproduce the above copyright
492 | notice, this list of conditions and the following disclaimer in the
493 | documentation and/or other materials provided with the distribution.
494 |
495 | - Neither the name of the Xiph.org Foundation nor the names of its
496 | contributors may be used to endorse or promote products derived from
497 | this software without specific prior written permission.
498 |
499 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
500 | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
501 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
502 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION
503 | OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
504 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
505 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
506 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
507 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
508 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
509 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
510 |
511 |
512 | opus
513 |
514 | https://github.com/xiph/opus
515 |
516 | Copyright 2001-2011 Xiph.Org, Skype Limited, Octasic,
517 | Jean-Marc Valin, Timothy B. Terriberry,
518 | CSIRO, Gregory Maxwell, Mark Borgerding,
519 | Erik de Castro Lopo
520 |
521 | Redistribution and use in source and binary forms, with or without
522 | modification, are permitted provided that the following conditions
523 | are met:
524 |
525 | - Redistributions of source code must retain the above copyright
526 | notice, this list of conditions and the following disclaimer.
527 |
528 | - Redistributions in binary form must reproduce the above copyright
529 | notice, this list of conditions and the following disclaimer in the
530 | documentation and/or other materials provided with the distribution.
531 |
532 | - Neither the name of Internet Society, IETF or IETF Trust, nor the
533 | names of specific contributors, may be used to endorse or promote
534 | products derived from this software without specific prior written
535 | permission.
536 |
537 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
538 | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
539 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
540 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
541 | OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
542 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
543 | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
544 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
545 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
546 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
547 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
548 |
549 | Opus is subject to the royalty-free patent licenses which are
550 | specified at:
551 |
552 | Xiph.Org Foundation:
553 | https://datatracker.ietf.org/ipr/1524/
554 |
555 | Microsoft Corporation:
556 | https://datatracker.ietf.org/ipr/1914/
557 |
558 | Broadcom Corporation:
559 | https://datatracker.ietf.org/ipr/1526/
560 |
561 |
562 | jsmn-jsonpath
563 |
564 | https://github.com/jakgra/jsmn-jsonpath
565 |
566 | Copyright (c) 2010 Serge A. Zaitsev
567 |
568 | Permission is hereby granted, free of charge, to any person obtaining a copy
569 | of this software and associated documentation files (the "Software"), to deal
570 | in the Software without restriction, including without limitation the rights
571 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
572 | copies of the Software, and to permit persons to whom the Software is
573 | furnished to do so, subject to the following conditions:
574 |
575 | The above copyright notice and this permission notice shall be included in
576 | all copies or substantial portions of the Software.
577 |
578 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
579 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
580 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
581 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
582 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
583 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
584 | THE SOFTWARE.
585 |
586 |
587 |
588 | jsmn
589 |
590 | https://github.com/zserge/jsmn
591 |
592 | Copyright (c) 2010 Serge A. Zaitsev
593 |
594 | Permission is hereby granted, free of charge, to any person obtaining a copy
595 | of this software and associated documentation files (the "Software"), to deal
596 | in the Software without restriction, including without limitation the rights
597 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
598 | copies of the Software, and to permit persons to whom the Software is
599 | furnished to do so, subject to the following conditions:
600 |
601 | The above copyright notice and this permission notice shall be included in
602 | all copies or substantial portions of the Software.
603 |
604 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
605 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
606 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
607 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
608 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
609 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
610 | THE SOFTWARE.
611 |
612 |
613 |
614 |
--------------------------------------------------------------------------------
/webapp/static/css/main.css:
--------------------------------------------------------------------------------
1 | :root{--font-family:spotify-circular}body{box-sizing:border-box;color:#fff;user-select:none}#corners{pointer-events:none;position:absolute;z-index:1000}#container{height:480px;margin:0 auto;max-height:480px;max-width:800px;overflow:hidden;position:relative;transition:opacity 1s cubic-bezier(.16,1,.3,1) 0ms;width:800px}:focus{outline:none}h1,h2,p{margin:0}.OtaUpdating_background__r--af{background-color:#000;height:100%;padding:32px 72px 36px 40px;position:relative;width:100%}.OtaUpdating_error__yUVBv,.OtaUpdating_title__s4dx\+{color:#fff;font-size:120px;letter-spacing:-.04em;line-height:120px}.OtaUpdating_subtitle__GWWsw{color:#fff;font-size:36px;height:120px;letter-spacing:-.02em;line-height:48px;margin-top:32px}.OtaUpdating_progress__lFQub{bottom:48px;color:#1ed760;font-size:68px;left:36px;letter-spacing:-.04em;line-height:72px;position:absolute}.AppendEllipsis_dot__dtC7N{animation-duration:4s;animation-iteration-count:infinite;animation-timing-function:steps(1);margin-left:4px}.AppendEllipsis_dot1__pEq\+n{animation-name:AppendEllipsis_dot1__pEq\+n}.AppendEllipsis_dot2__CfGfb{animation-name:AppendEllipsis_dot2__CfGfb}.AppendEllipsis_dot3__OZSr2{animation-name:AppendEllipsis_dot3__OZSr2}@keyframes AppendEllipsis_dot1__pEq\+n{0%{opacity:0}25%{opacity:1}50%{opacity:1}75%{opacity:1}to{opacity:0}}@keyframes AppendEllipsis_dot2__CfGfb{0%{opacity:0}25%{opacity:0}50%{opacity:1}75%{opacity:1}to{opacity:0}}@keyframes AppendEllipsis_dot3__OZSr2{0%{opacity:0}25%{opacity:0}50%{opacity:0}75%{opacity:1}to{opacity:0}}.Views_viewArea__Sh\+Na{height:480px;overflow:hidden;position:relative;width:800px}.Views_view__uI34t{border-radius:10px;filter:brightness(.9);height:480px;overflow:hidden;position:absolute;top:0;transform:perspective(800px) translate3d(0,530px,-160px);transition:filter .5s cubic-bezier(.16,1,.3,1),transform .5s cubic-bezier(.16,1,.3,1);width:800px}.Views_underCurrent__r5kxK{filter:brightness(.2);transform:perspective(800px) translate3d(0,10px,-40px)}.Views_current__I9Z6L{filter:brightness(1);transform:translateY(0);transition-delay:.1s}.Views_forceOnTop__fZgrf{z-index:1}.AmbientBackdrop_ambientBackdrop__kNWO5{border-radius:10px;height:480px;overflow:hidden;position:absolute;transition:background .5s cubic-bezier(.16,1,.3,1);width:800px;will-change:transform;z-index:-1}.Button_buttonPrimary__yg58M{align-items:center;background-color:#fff;border:none;border-radius:44px;color:#000;display:flex;font-family:inherit;font-size:32px;font-weight:700;justify-content:center;letter-spacing:-.02em;line-height:40px;padding:24px 64px;width:fit-content}.Button_buttonPrimary__yg58M.Button_pressed__Wv8Ue{opacity:.5}.Button_buttonSecondary__DrIYY{align-items:center;background-color:#0000;border:4px solid #ffffff80;border-radius:44px;color:#fff;display:flex;font-family:inherit;font-size:32px;font-weight:700;justify-content:center;letter-spacing:-.02em;line-height:40px;padding:20px 60px;width:fit-content}.Button_buttonSecondary__DrIYY.Button_pressed__Wv8Ue{opacity:.5}.ButtonGroup_buttonGroupGrid__DtNHz{display:grid;gap:24px;width:fit-content}.ButtonGroup_buttonGroupGrid__DtNHz.ButtonGroup_horizontal__ht3Sn{gap:32px;grid-template-columns:1fr 1fr}.ButtonGroup_buttonGroupGrid__DtNHz>*{width:100%}.bassBold{font-weight:700}.bassBold,.bassBook{font-size:120px;letter-spacing:-.04em;line-height:137px}.forteBold{font-weight:700}.forteBold,.forteBook{font-size:72px;letter-spacing:-.03em;line-height:72px}.brioBold{font-weight:700}.brioBold,.brioBook{font-size:52px;letter-spacing:-.03em;line-height:60px}.altoBold{font-weight:700}.altoBold,.altoBook{font-size:44px;letter-spacing:-.02em;line-height:49px}.canonBold{font-weight:700;letter-spacing:-.02em}.canonBold,.canonBook{font-size:36px;line-height:48px}.canonBook{color:#ffffffb3;letter-spacing:0}.celloBold{font-weight:700;letter-spacing:-.02em}.celloBold,.celloBook{font-size:32px;line-height:40px}.celloBook{color:#ffffffb3;letter-spacing:0}.balladBold{font-weight:700;letter-spacing:-.01em}.balladBold,.balladBook{font-size:28px;line-height:32px}.balladBook{color:#ffffffb3;letter-spacing:0}.mestroBold{font-weight:700;letter-spacing:-.01em}.mestroBold,.mestroBook{font-size:24px;line-height:32px}.mestroBook{color:#ffffffb3;letter-spacing:0}.minuet{font-size:20px;letter-spacing:.1em;line-height:24px}.white.white{fill:#fff}.SpotifySplash_container__Ce3qq{align-items:center;display:flex;height:100%;justify-content:center}.ShelfHeader_shelfTitles__4w4q\+{align-items:center;display:flex;margin-left:44px;margin-top:28px}.ShelfHeader_titleUnderlineContainer__Fdykt{margin-bottom:40px;margin-top:4px}.ShelfHeader_titleUnderline__TbYxj{background-color:#1ed760;height:4px;transform-origin:left;width:1px}.ShelfHeaderItem_withTransition__E8Yec,.ShelfHeader_titleUnderline__TbYxj{transition:transform .5s cubic-bezier(.16,1,.3,1)}.ShelfHeaderItem_titleContainer__J6fDo{display:flex;margin:-28px 0;opacity:.5;padding:28px 0}.ShelfHeaderItem_titleContainer__J6fDo.ShelfHeaderItem_active__IoDt\+{opacity:1}.ShelfHeaderItem_titleContainer__J6fDo.ShelfHeaderItem_hidden__YOp79{opacity:0}.ShelfHeaderItem_titleIcon__SByNl{align-items:center;display:flex}.ShelfHeaderItem_titleText__pE25W{color:#fff;font-size:32px;font-weight:700;letter-spacing:-.02em;line-height:40px;transition:opacity .5s cubic-bezier(.16,1,.3,1) 0ms;white-space:nowrap}.ShelfHeaderItem_titleText__pE25W.ShelfHeaderItem_hidden__YOp79{opacity:0}#shelf{border-radius:0;height:480px;overflow:hidden;width:800px}.ShelfSwiperItem_item__aBYd8{opacity:.8;transition:opacity .5s cubic-bezier(.16,1,.3,1) 0ms,transform .5s cubic-bezier(.16,1,.3,1) 0ms}.ShelfSwiperItem_pressed__LPfrI{opacity:.7}.ShelfSwiperItem_buttonItem__r8815{align-items:center;display:flex;flex-direction:column;height:100%;transition:opacity .5s cubic-bezier(.16,1,.3,1) 0ms,transform .5s cubic-bezier(.16,1,.3,1) 0ms;width:240px}.ShelfSwiperItem_buttonArtwork__QakS4{align-items:center;background-color:#fff;display:flex;height:240px;justify-content:center;opacity:.1;width:240px}.ShelfSwiperItem_buttonIcon__Q4spr{opacity:.8}.ShelfSwiperItem_titleContainer__PwXIf{align-items:baseline;display:flex;font-size:32px;font-weight:400;justify-content:space-between;letter-spacing:-.02em;line-height:40px;margin-top:24px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ShelfSwiperItem_title__Jv5dK{flex:1 1;font-weight:700}.ShelfSwiperItem_subtitle__2RHWs,.ShelfSwiperItem_title__Jv5dK{opacity:.7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ShelfSwiperItem_subtitle__2RHWs{align-items:center;font-size:28px;letter-spacing:-.01em;line-height:32px;margin-top:4px}.ShelfSwiperItem_activeBorder__2dLlU{border:4px solid #fff;border-radius:8px;height:256px;position:absolute;top:-8px;width:256px}.ShelfSwiperItem_artworkCenter__12r89{position:absolute;transform:translateY(120px) translateY(-50%)}.ShelfSwiperItem_circle__CGLsA{border-radius:50%}.ShelfSwiperItem_activeSlide__14Jmu{opacity:1}.ShelfSwiperItem_activeSlide__14Jmu.ShelfSwiperItem_notEnabled__QCtBn,.ShelfSwiperItem_activeSlide__14Jmu.ShelfSwiperItem_pressed__LPfrI{opacity:.8}.ShelfSwiperItem_activeSlide__14Jmu .ShelfSwiperItem_buttonIcon__Q4spr,.ShelfSwiperItem_activeSlide__14Jmu .ShelfSwiperItem_subtitle__2RHWs,.ShelfSwiperItem_activeSlide__14Jmu .ShelfSwiperItem_title__Jv5dK{opacity:1}.ShelfSwiperItem_notEnabled__QCtBn.ShelfSwiperItem_pressed__LPfrI{opacity:.7}.MoreButton_moreIcon__AL9h-{background:#fff;border-radius:50%;height:94px;opacity:.3;width:94px}.Placeholder_placeholder__nPJGP{align-items:center;background-clip:content-box;background-color:#333;display:flex;height:100%;justify-content:center;width:100%}.Placeholder_placeholder__nPJGP.Placeholder_otherMedia__vNpW8{background-color:#ffffff1a}.Placeholder_placeholderIcon__zc1H7{display:flex}.Placeholder_placeholderIcon__zc1H7 svg{color:#7f7f7f}.LazyImage_imageCenter__xeHUb{align-items:center;display:flex;justify-content:center}.LazyImage_outerBorder__HMMbC{border-color:#0000;transition:border-color .5s cubic-bezier(.16,1,.3,1)}.LazyImage_outerBorder__HMMbC.LazyImage_outerBorderActive__ix3xa{border:4px solid;box-sizing:initial;padding:6px}.LazyImage_innerBorder__XLpOU.LazyImage_episode__1Jh-S{border:20px solid;border-radius:16px}.LazyImage_innerBorder__XLpOU.LazyImage_track__AVm0V{border:20px solid}.LazyImage_image__0B\+kz{max-height:100%;max-width:100%;object-fit:cover;transform-origin:top left}.LazyImage_image__0B\+kz.LazyImage_shaded__ZAVfE{filter:brightness(30%)}.LazyImage_radioStation__8zRuq{height:100%;position:relative;width:100%}.LazyImage_radioStation__8zRuq .LazyImage_radioStationBg__e\+vTc{left:0;position:absolute;top:0}.LazyImage_radioStation__8zRuq .LazyImage_imageRadio__ZZ1Bo{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.NowPlaying_nowPlayingWrapper__ni22x{align-items:baseline;display:flex}.NowPlaying_nowPlayingText__Zt98E{margin-left:12px}.Equaliser_bars__44YQ0{align-items:baseline;display:flex;justify-content:space-between;width:20px}.Equaliser_bar__ldmic{background-color:#1ed760;height:20px;transform:scaleY(.2);transform-origin:bottom;transition-duration:.25s;transition-timing-function:linear;width:4px}.Equaliser_bar1__uLJo0.Equaliser_pauseToPlay__haBv4{transform:scaleY(.8)}.Equaliser_bar1__uLJo0.Equaliser_play__YYmT8{animation:Equaliser_play1__qDhWI 1.5s linear infinite normal}.Equaliser_bar1__uLJo0.Equaliser_playToPause__Q30vw{animation:Equaliser_play-to-pause-1__YdW4O .25s linear 1 forwards}.Equaliser_bar2__n-ADz.Equaliser_pauseToPlay__haBv4{transform:scaleY(1)}.Equaliser_bar2__n-ADz.Equaliser_play__YYmT8{animation:Equaliser_play2__bPon8 1.5s linear infinite normal}.Equaliser_bar2__n-ADz.Equaliser_playToPause__Q30vw{animation:Equaliser_play-to-pause-2__UQ5e5 .25s linear 1 forwards}.Equaliser_bar3__WhC3F.Equaliser_pauseToPlay__haBv4{transform:scaleY(.6)}.Equaliser_bar3__WhC3F.Equaliser_play__YYmT8{animation:Equaliser_play3__wQpON 1.5s linear infinite normal}.Equaliser_bar3__WhC3F.Equaliser_playToPause__Q30vw{animation:Equaliser_play-to-pause-3__F5naz .25s linear 1 forwards}@keyframes Equaliser_play1__qDhWI{0%{transform:scaleY(.8)}20%{transform:scaleY(.2)}40%{transform:scaleY(.8)}60%{transform:scaleY(.6)}80%{transform:scaleY(1)}to{transform:scaleY(.8)}}@keyframes Equaliser_play2__bPon8{0%{transform:scaleY(1)}20%{transform:scaleY(.8)}40%{transform:scaleY(.6)}60%{transform:scaleY(.8)}80%{transform:scaleY(.2)}to{transform:scaleY(1)}}@keyframes Equaliser_play3__wQpON{0%{transform:scaleY(.6)}20%{transform:scaleY(.8)}40%{transform:scaleY(.2)}60%{transform:scaleY(1)}80%{transform:scaleY(.8)}to{transform:scaleY(.6)}}@keyframes Equaliser_play-to-pause-1__YdW4O{0%{transform:scaleY(.8)}to{transform:scaleY(.2)}}@keyframes Equaliser_play-to-pause-2__UQ5e5{0%{transform:scaleY(1)}to{transform:scaleY(.2)}}@keyframes Equaliser_play-to-pause-3__F5naz{0%{transform:scaleY(.6)}to{transform:scaleY(.2)}}.InlineTipItem_inlineTipItem__AyZan{display:flex;flex-direction:column;height:324px;justify-content:space-between;transition:opacity .5s cubic-bezier(.16,1,.3,1) 0ms,transform .5s cubic-bezier(.16,1,.3,1) 0ms;width:508px}.InlineTipItem_subtitle__azIVM{display:flex}.InlineTipItem_tryThis__Gmq1b{color:#1ed760}.InlineTipItem_toTheLeft__u9BLt{transform:translateX(-18px)}.InlineTipItem_hidden__iMBRz{opacity:0}.InlineTipItem_voiceTip__zx0o6{height:304px;width:448px}@font-face{font-family:swiper-icons;font-style:normal;font-weight:400;src:url("data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA") format("woff")}:root{--swiper-theme-color:#007aff}.swiper{list-style:none;margin-left:auto;margin-right:auto;overflow:hidden;padding:0;position:relative;z-index:1}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{box-sizing:initial;display:flex;height:100%;position:relative;transition-property:transform;width:100%;z-index:1}.swiper-android .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-pointer-events{touch-action:pan-y}.swiper-pointer-events.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;height:100%;position:relative;transition-property:transform;width:100%}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{backface-visibility:hidden;transform:translateZ(0)}.swiper-3d,.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide,.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:10}.swiper-3d .swiper-slide-shadow{background:#00000026}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(270deg,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(90deg,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(0deg,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(180deg,#00000080,#0000)}.swiper-css-mode>.swiper-wrapper{-ms-overflow-style:none;overflow:auto;scrollbar-width:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-horizontal.swiper-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-vertical.swiper-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-centered>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;width:var(--swiper-centered-offset-after)}.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-vertical>.swiper-wrapper:before{height:var(--swiper-centered-offset-after);width:100%}.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center}.ShelfSwiper_container__j4QY0{overflow:visible!important}.ShelfSwiper_container__j4QY0 .swiper-wrapper .swiper-slide-prev{transform:translateX(-18px)}.Banner_bannerContainer__tMqHz{display:flex;height:72px;justify-content:space-between;padding-right:4px;position:absolute;top:0;width:800px}.Banner_icon__hHbAH{height:32px;margin-left:24px;margin-right:16px;width:32px}.Banner_buttons__Q8Vqc,.Banner_info__jEEdx{align-items:center;display:flex}.Banner_informationalText__Cq0RU{width:100%}.Banner_informationalText__Cq0RU.Banner_information__Yke9j{color:#fff}.Banner_information__Yke9j.Banner_bannerContainer__tMqHz{background-color:#0d72ea}.Banner_information__Yke9j.Banner_bannerContainer__tMqHz .Banner_icon__hHbAH,.Banner_information__Yke9j.Banner_bannerContainer__tMqHz .Banner_informationalText__Cq0RU{color:#fff}.Banner_confirmation__e\+AzZ.Banner_bannerContainer__tMqHz{background-color:#fff}.Banner_confirmation__e\+AzZ.Banner_bannerContainer__tMqHz .Banner_icon__hHbAH,.Banner_confirmation__e\+AzZ.Banner_bannerContainer__tMqHz .Banner_informationalText__Cq0RU{color:#000}.Banner_unavailable__XiyeK.Banner_bannerContainer__tMqHz{background-color:#333}.Banner_unavailable__XiyeK.Banner_bannerContainer__tMqHz .Banner_icon__hHbAH,.Banner_unavailable__XiyeK.Banner_bannerContainer__tMqHz .Banner_informationalText__Cq0RU{color:#fff}.Banner_enter__qSNuk{opacity:0}.Banner_enterActive__Ec71q{opacity:1;transition:opacity .5s cubic-bezier(.16,1,.3,1) 0ms}.Banner_exit__Fwi-T{opacity:1}.Banner_exitActive__C5AbS{opacity:0;transition:opacity .5s cubic-bezier(.16,1,.3,1) 0ms}.BannerButton_buttonContainer__Q\+ynt{align-items:center;display:flex;height:64px;transition:background-color .5s cubic-bezier(.16,1,.3,1)}.BannerButton_touchArea__ktoNE{align-items:center;border-radius:6px;display:flex;height:64px;justify-content:center}.BannerButton_bannerButton__mYRlo{align-items:center;display:flex;height:100%;padding-left:34px;padding-right:38px;width:100%}.BannerButton_pressed__baYRn{background-color:#0000001a}.BannerButton_buttonText__WZVHL{font-weight:400;text-transform:uppercase}.BannerButton_divider__D58Jq{height:40px;margin-left:2px;margin-right:4px;opacity:.3;width:2px}.BannerButton_information__Ax8kP .BannerButton_divider__D58Jq{background-color:#fff}.BannerButton_information__Ax8kP .BannerButton_buttonText__WZVHL{color:#fff}.BannerButton_confirmation__AyKZD .BannerButton_divider__D58Jq{background-color:#000}.BannerButton_confirmation__AyKZD .BannerButton_buttonText__WZVHL{color:#000}.BannerButton_unavailable__tOD80 .BannerButton_divider__D58Jq{background-color:#fff}.BannerButton_unavailable__tOD80 .BannerButton_buttonText__WZVHL{color:#fff}.Artwork_artworkTransitionGroup__xzJgu{display:flex}.Artwork_transitionContainer__Ozzxn{position:absolute}.Artwork_artwork__GaK3g{box-shadow:0 16px 32px #0003;height:248px;width:248px}.PlayingInfoHeader_header__IHd\+C{align-items:center;display:flex;height:32px;justify-content:space-between;min-width:0}.PlayingInfoHeader_contextTitle__9\+ytR{color:#ffffff80;font-size:28px;font-weight:700;letter-spacing:-.01em;line-height:32px;margin:-40px 32px -25px -10px;overflow:hidden;padding:40px 0 25px 10px;text-overflow:ellipsis;white-space:nowrap}.PlayingInfoTitles_transitionContainer__\+gRz\+{position:absolute}.PlayingInfoTitles_texts__tCVsW{margin-top:16px}.PlayingInfoTitles_songTitle__p1-KN{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:#fff;display:-webkit-box;font-weight:700;overflow:hidden;padding-bottom:5px;text-overflow:ellipsis;width:432px;word-break:break-word}.PlayingInfoTitles_songTitleBig__1uqO5{font-size:72px;letter-spacing:-.03em;line-height:72px}.PlayingInfoTitles_songTitleMiddle__r15Nh{font-size:52px;letter-spacing:-.03em;line-height:56px}.PlayingInfoTitles_songTitleSmall__Ukpwe{font-size:44px;letter-spacing:-.02em;line-height:47px;max-height:144px}.PlayingInfoTitles_artistTitle__R17k2{color:#fff;font-size:36px;letter-spacing:-.01em;line-height:40px;margin-top:16px;max-height:80px;overflow:hidden;padding-bottom:3px;position:relative;text-overflow:ellipsis;white-space:nowrap;width:432px}.StatusIcons_statusIcons__MtgjY{align-items:center;color:#fff;display:flex;flex-wrap:nowrap;justify-content:space-between;opacity:.7;right:40px;top:40px}.StatusIcons_statusIcons__MtgjY>div:not(:first-child){margin-left:32px}.PlayingInfo_playingInfo__1kO\+v{display:flex;height:100%;padding:40px 40px 48px;width:100%}.PlayingInfo_animationEnterLeft__FTq3F{opacity:0;transform:translateX(-24px)}.PlayingInfo_animationEnterRight__v9HKT{opacity:0;transform:translateX(24px)}.PlayingInfo_animationEnterActive__\+7lbd{opacity:1;transform:translateX(0);transition:opacity .5s cubic-bezier(.16,1,.3,1) 0ms,transform .5s cubic-bezier(.16,1,.3,1) 0ms}.PlayingInfo_animationExit__xmMSy{opacity:1;transform:translateX(0)}.PlayingInfo_animationExitLeft__iCfyK{transform:translateX(-24px)}.PlayingInfo_animationExitLeft__iCfyK,.PlayingInfo_animationExitRight__dwYWZ{opacity:0;transition:opacity .5s cubic-bezier(.16,1,.3,1) 0ms,transform .5s cubic-bezier(.16,1,.3,1) 0ms}.PlayingInfo_animationExitRight__dwYWZ{transform:translateX(24px)}.PlayingInfo_info__Wz85X{height:248px;margin-left:34px;width:432px}.PlayingInfo_playingInfoHeader__ZapOR{display:flex;height:32px;justify-content:space-between}.Tips_tips__cBBu-{box-sizing:border-box;height:100%;padding:32px 48px 32px 40px;width:100%}.Tips_title__Nm-Pb{color:#1ed760;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Tips_topBar__ZtfOW{display:flex;justify-content:space-between;margin-right:-8px}.Tips_description__wpMHK{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;margin-top:16px;overflow:hidden}.PlayingInfoOrTip_playingInfoOrTip__8IKcu{height:332px;width:100%}.PlayingInfoOrTip_playingInfoEnter__KzuPi{opacity:0;transform:translateY(40px)}.PlayingInfoOrTip_playingInfoEnterActive__3ad1W{opacity:1;transform:translateY(0);transition:opacity .3s ease-in 0ms,transform .3s ease-in 0ms}.PlayingInfoOrTip_playingInfoExit__BNTgp{opacity:1}.PlayingInfoOrTip_playingInfoExitActive__-rER0{opacity:0;transform:translateY(40px);transition:opacity .3s ease-out 0ms,transform .3s ease-out 0ms}.PlayingInfoOrTip_tipEnter__Sjz4G{opacity:0;transform:translateY(72px)}.PlayingInfoOrTip_tipEnterActive__O0ynp{opacity:1;transform:translateY(0);transition:opacity .3s ease-in 0ms,transform .3s ease-in 0ms}.PlayingInfoOrTip_tipExit__HHoeo{opacity:1;transform:translateY(0)}.PlayingInfoOrTip_tipExitActive__m3o7V{opacity:0;transform:translateY(72px);transition:opacity .3s ease-out 0ms,transform .3s ease-out 0ms}.Controls_controls__NbqUI{align-items:center;display:flex;width:800px}.Controls_otherMedia__WPTVw{background-color:#333}.Controls_controlButton__g6LbA{align-items:center;display:flex;height:144px;justify-content:center;width:160px}.Controls_touchArea__CLOjR{align-items:center;border-radius:8px;display:flex;height:112px;justify-content:center;width:144px}.Controls_touchAreaFullSize__cST8X{border-radius:unset;height:100%;width:100%}.Controls_touchAreaDown__prcts{background:#0000004d}.Controls_iconShuffleActive__ded02{padding-top:23px}.Controls_disabledIcon__x\+Iay svg path{fill:#ffffff4d}.Overlays_overlay__aHnZm{border-radius:10px;height:480px;overflow:hidden;position:absolute;top:0;transition:opacity .5s cubic-bezier(.16,1,.3,1) 0ms,transform .5s cubic-bezier(.16,1,.3,1) 0ms;width:800px;z-index:30}.PodcastSpeedOptions_podcastSpeedOverlay__XPrjN{background-color:#000;z-index:31}.PodcastSpeedOptions_podcastSpeedOptions__djkQL{background:#000;border-radius:0;height:480px;left:0;position:relative;top:0;transition:transform .5s cubic-bezier(.16,1,.3,1);width:800px}.PodcastSpeedOptions_podcastSpeedOptions__djkQL.PodcastSpeedOptions_smallHeader__SVV5o{transform:translateY(-48px)}.PodcastSpeedOptions_header__9uuat{align-items:center;display:flex;height:152px;padding:0 40px;width:100%}.PodcastSpeedOptions_title__rdzxc{transform-origin:left;transition:transform .5s cubic-bezier(.16,1,.3,1)}.PodcastSpeedOptions_title__rdzxc.PodcastSpeedOptions_smallTitle__BMe0X{transform:translateY(24px) scale(.7272727273)}.PodcastSpeedItem_speedItem__XFPWq{align-items:center;display:flex;height:112px;justify-content:space-between;padding:0 40px}.PodcastSpeedItem_speedItem__XFPWq svg{margin-right:30px}.PodcastSpeedItem_activeItem__hQSn6{background:#ffffff1a}.PodcastSpeedItem_pressed__UjNPs{opacity:.5}.Scrubbing_scrubbingClickArea__MW2jA{height:72px;position:absolute;top:290px;width:800px;z-index:13}.ScrubbingBar_scrubbingBar__XY46E{background-image:linear-gradient(0deg,#00000080,#00000080);height:4px;position:absolute;transition:background-color .5s cubic-bezier(.16,1,.3,1);width:800px;z-index:31}.ScrubbingBar_progressPlayed__kAqJI{background-color:#fff;height:100%;width:2px;z-index:14}.ScrubbingBackdrop_scrubbingBackdrop__-wVg\+{align-items:center;background:#000000d9;display:flex;flex-direction:column;height:480px;left:0;position:absolute;top:0;width:800px;z-index:12}.ScrubbingBackdrop_time__ZN6zG{display:flex;height:300px;justify-content:space-between;width:720px}.ScrubbingBackdrop_time__ZN6zG span{align-self:flex-end;color:#fff;font-size:72px;height:72px;letter-spacing:-.03em;line-height:72px}.Volume_volume__OfPAH{align-items:center;bottom:0;display:flex;flex-direction:column;height:144px;justify-content:center;position:absolute;width:100%}.Volume_volume__OfPAH svg{color:#fff}.Volume_volume__OfPAH .Volume_volumeInfo__pVuAo{align-items:center;display:flex;justify-content:center;margin-top:24px;width:342px}.Volume_volume__OfPAH .Volume_volumeInfo__pVuAo .Volume_volumeIcon__jJIZE{align-items:center;display:flex;height:40px;justify-content:center;margin-right:15px;width:40px}.VolumeBar_volumeBar__haWEB{background:#333;border-radius:4px;height:8px;position:relative;transform:translateY(2px);width:480px}.VolumeBar_volumeLevelFill__KOb8q{background-color:#fff;border-radius:4px;display:block;height:100%;overflow:hidden}.Npv_npv__oRW8n{height:480px;overflow:hidden;position:relative;transition-delay:.5s;width:800px}.Npv_controlsContainer__KDnWC{background:#0000004d;bottom:0;height:144px;position:absolute;width:100%}.Npv_enter__aNnjE{opacity:0}.Npv_enterActive__Bka8q{opacity:1;transition:opacity .5s cubic-bezier(.16,1,.3,1) 0ms}.Npv_exit__jZenh{opacity:1}.Npv_exitActive__4nYPn{opacity:0;transition:opacity .5s cubic-bezier(.16,1,.3,1) 0ms}.BackToSpotify_backToSpotify__YnKa0{background-color:#333;border-radius:50px;display:flex;padding:8px 16px 8px 12px;width:fit-content}.BackToSpotify_backToSpotify__YnKa0.BackToSpotify_pressed__fggN0{opacity:.5}.BackToSpotify_label__gHHG7{padding-left:8px}.Widget_otherMediaWidget__Ww0aS{background-color:#333;border-radius:16px;display:flex;height:224px;margin-top:20px;overflow:hidden;width:720px}.Widget_artwork__Y\+xfe{box-shadow:0 16px 32px #0003}.Widget_metadata__5aGyh{display:flex;flex-direction:column;justify-content:space-evenly;overflow:hidden;padding:12px 32px;width:100%}.Widget_source__53AQP{color:#ffffffb3}.Widget_title__M4E4S{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.Widget_subtitle__HSlzr{color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.OtherMedia_otherMedia__2xFCs{background:#000;height:336px;padding:24px 40px}.OtherMedia_topBar__Y2ql9{display:flex;justify-content:space-between;margin-right:6px}.Tracklist_tracklist__ihFOC{height:528px;left:0;overflow:hidden;position:relative;top:0;transition:transform .5s cubic-bezier(.16,1,.3,1);width:800px}.Tracklist_tracklist__ihFOC.Tracklist_smallHeader__y6VlO{transform:translateY(-48px)}.Tracklist_container__V145E{height:548px;left:0;overflow:hidden;position:relative;right:0;width:100%;z-index:30}.Tracklist_emptyBody__pMeco{align-items:center;display:flex;height:320px;justify-content:center;width:100%}.Tracklist_emptyBody__pMeco p{color:#b3b3b3;font-size:28px;letter-spacing:-.01em;line-height:32px;text-align:center;transform:translateY(-48px);width:560px}.Tracklist_trackSlideScrolled__RlooV{transform:translateY(48px)}.ProgressBar_progressBar__9mExN{background-color:#5d5d5d;clip-path:inset(0 0 0 0 round 4px);height:8px;margin-left:16px;transform:translateY(2px);width:200px}.ProgressBar_progress__rqvQ6{background-color:#1ed760;clip-path:inset(0 0 0 0 round 4px);height:100%}.TracklistItem_tracklistItem__57r5h{align-items:center;display:flex;height:100%;transition:background .5s cubic-bezier(.16,1,.3,1),opacity .5s cubic-bezier(.16,1,.3,1);width:100%}.TracklistItem_imageContainer__qA0kM{display:flex;justify-content:flex-end;margin-left:40px}.TracklistItem_image__IVr-o{height:96px;width:96px}.TracklistItem_explicit__SYOgW{background:#b3b3b3;border-radius:2px;font-size:12px;height:24px;line-height:12px;margin-right:6px;padding:2px;width:24px}.TracklistItem_downloaded__OeiQO{color:#1ed760;flex:0 0 24px;margin-right:4px}.TracklistItem_playedIcon__6BKfa{color:#1ed760;flex:0 0 24px;margin-left:8px}.TracklistItem_trackInfo__yYzdV{margin-left:40px;overflow:hidden;width:100%}.TracklistItem_trackInfo__yYzdV.TracklistItem_showImage__zoYnO{margin-left:32px}.TracklistItem_title__x3hau{margin-bottom:8px;opacity:.7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.TracklistItem_title__x3hau.TracklistItem_currentlyPlaying__\+6B5T{color:#1ed760}.TracklistItem_subtitleContainer__YAMYe{align-items:center;display:flex;height:32px;justify-content:left}.TracklistItem_subtitleContainer__YAMYe .TracklistItem_subtitle__-MjkH{color:#fff;opacity:.7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.TracklistItem_addToQueue__C1BGN{align-items:center;display:flex;padding:34px 104px 34px 32px;position:relative}.TracklistItem_addToQueue__C1BGN .TracklistItem_addToQueueIcon__9NDlM{color:#ffffff80;transform:scale(2)}.TracklistItem_active__L6ZDj{background:#ffffff1a}.TracklistItem_active__L6ZDj .TracklistItem_title__x3hau{opacity:1}.TracklistItem_active__L6ZDj .TracklistItem_subtitleContainer__YAMYe .TracklistItem_subtitle__-MjkH{opacity:.7}.TracklistItem_active__L6ZDj .TracklistItem_addToQueue__C1BGN .TracklistItem_addToQueueIcon__9NDlM{color:#fff}.TracklistItem_active__L6ZDj.TracklistItem_pressed__zu4jk{opacity:.5}.TracklistItem_pressed__zu4jk{background:#ffffff1a;opacity:.5}.Trailer_box__i0Pnw{background-color:#b3b3b3;border-radius:3px;margin-right:8px;padding:4px;width:fit-content}.Trailer_text__pXrwq{color:#000;font-size:18px;font-weight:700;letter-spacing:0;line-height:16px}.TracklistHeader_headerWrapper__t-z6O{display:flex;height:152px;padding-right:72px;transition:background .5s cubic-bezier(.16,1,.3,1);width:100%;z-index:40}.TracklistHeader_header__F-AvO{align-items:center;display:flex;justify-content:space-between;transition:transform .5s cubic-bezier(.16,1,.3,1)}.TracklistHeader_header__F-AvO.TracklistHeader_smallHeader__IuXv2{transform:translateY(40px)}.TracklistHeaderDetails_infoWrapper__I1MHK{align-items:center;display:flex;margin-left:40px;width:592px}.TracklistHeaderDetails_imageWrapper__X0Ita{margin-right:24px;transform-origin:top left;transition:transform .5s cubic-bezier(.16,1,.3,1)}.TracklistHeaderDetails_imageWrapper__X0Ita.TracklistHeaderDetails_smallHeader__vlmcG{transform:scale(.65)}.TracklistHeaderDetails_titles__XwguM{display:flex;flex-direction:column;height:88px;justify-content:center;overflow:hidden;text-overflow:ellipsis;transition:transform .5s cubic-bezier(.16,1,.3,1);white-space:nowrap}.TracklistHeaderDetails_titles__XwguM.TracklistHeaderDetails_moveLeftAndUp__AxTER{transform:translate(-33.6px,-8px)}.TracklistHeaderDetails_titles__XwguM.TracklistHeaderDetails_moveLeftAndDown__WsJD7{transform:translate(-33.6px,8px)}.TracklistHeaderDetails_titles__XwguM.TracklistHeaderDetails_moveUp__57cNT{transform:translateY(-8px)}.TracklistHeaderDetails_titles__XwguM.TracklistHeaderDetails_moveDown__hspBz{transform:translateY(8px)}.TracklistHeaderDetails_tracklistTitle__qUx-H{color:#fff;font-size:44px;font-weight:700;height:50px;letter-spacing:-.03em;line-height:48px;overflow:hidden;text-overflow:ellipsis;transform-origin:top left;transition:transform .5s cubic-bezier(.16,1,.3,1);white-space:nowrap;width:100%}.TracklistHeaderDetails_tracklistTitle__qUx-H.TracklistHeaderDetails_smallHeader__vlmcG{transform:scale(.7272727273)}.TracklistHeaderDetails_trackCount__vG1HO{color:#ffffffb3;font-size:28px;height:32px;letter-spacing:-.01em;line-height:32px;overflow:hidden;text-overflow:ellipsis;transition:opacity .5s cubic-bezier(.16,1,.3,1) 0ms,transform .5s cubic-bezier(.16,1,.3,1) 0ms;white-space:nowrap;width:100%}.TracklistHeaderDetails_trackCount__vG1HO.TracklistHeaderDetails_smallHeader__vlmcG{opacity:0;transform:translateY(-12px)}.TracklistHeaderActions_actions__baXl2{align-items:center;display:flex;height:80px;justify-content:center;transition:transform .5s cubic-bezier(.16,1,.3,1);width:100px}.TracklistHeaderActions_actions__baXl2.TracklistHeaderActions_smallHeader__FimwT{transform:translateY(-12px)}.Queue_queue__Vu0Fz{height:528px;overflow:hidden;position:relative;transition:transform .5s cubic-bezier(.16,1,.3,1);width:800px}.Queue_queue__Vu0Fz.Queue_smallHeader__fkuqT{transform:translateY(-48px)}.QueueSwiper_container__zxzfd{height:548px;overflow:hidden;position:relative;width:100%}.QueueSwiper_queueSlideScrolled__hWhJi{transform:translateY(48px)}.QueueListItem_queueListItem__JMd-7{align-items:center;display:flex;height:100%;transition:background .5s cubic-bezier(.16,1,.3,1),opacity .5s cubic-bezier(.16,1,.3,1);width:100%}.QueueListItem_imageContainer__TWBRw{margin-left:40px}.QueueListItem_image__DnedD{height:96px;width:96px}.QueueListItem_trackInfo__2b52q{margin-left:32px;width:528px}.QueueListItem_title__a-F2S{margin-bottom:8px;opacity:.7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.QueueListItem_title__a-F2S.QueueListItem_currentlyPlaying__iVv-V{color:#1ed760}.QueueListItem_subtitle__-C4D3{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.QueueListItem_selected__MOSzG{background:#ffffff1a}.QueueListItem_selected__MOSzG .QueueListItem_title__a-F2S{opacity:1}.QueueListItem_selected__MOSzG.QueueListItem_pressed__m7yS8{opacity:.5}.QueueListItem_pressed__m7yS8{background:#ffffff1a;opacity:.5}.QueueHeader_headerWrapper__k\+1gY{display:flex;height:152px;padding-left:40px;padding-right:104px;transition:background .5s cubic-bezier(.16,1,.3,1)}.QueueHeader_header__iylhQ{align-items:center;display:flex;justify-content:space-between;transition:transform .5s cubic-bezier(.16,1,.3,1),width .5s cubic-bezier(.16,1,.3,1);width:100%}.QueueHeader_header__iylhQ.QueueHeader_smallHeader__POQnR{transform:translateY(38px);width:134%}.QueueHeader_queueTitle__PuoN\+{font-weight:700;overflow:hidden;text-overflow:ellipsis;transform-origin:top left;transition:transform .5s cubic-bezier(.16,1,.3,1);white-space:nowrap}.QueueHeader_queueTitle__PuoN\+.QueueHeader_smallHeader__POQnR{transform:scale(.7272727273)}.EmptyQueueState_emptyBody__IR6Mf{align-items:center;display:flex;height:330px;justify-content:center;width:100%}.EmptyQueueState_infoText__jlYl7{text-align:center;transform:translateY(-48px);width:560px}.SwipeDownHandle_swipeDownHandle__pQOw3{height:10px;position:absolute;top:0;width:800px;z-index:30}.Listening_listeningWrapper__WY9pW{background:#000;height:480px;padding:40px;width:800px}.Listening_currentlyListening__prb6e{background:radial-gradient(100% 100% at 0 100%,#000 27.85%,#0009 100%)}.Listening_centered__tMwcl{left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%)}.Listening_voiceConfirmation__TczYo{align-items:center;display:flex;flex-direction:column}.Listening_voiceConfirmationText__h28rk{margin-top:40px}.Listening_textConfirmation__n\+vRs{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.Listening_jellyfish__1FmYd{bottom:40px;height:156px;left:40px;position:absolute}.Listening_fadeIn__sNhpY{animation:Listening_fade-in__vLl5- 1.5s forwards}@keyframes Listening_fade-in__vLl5-{0%{opacity:0}to{opacity:1}}.VoiceConfirmation_confirmationIcon__Azxu4{color:#fff;display:block}.Presets_presetsBackground__a-rZ3{background:#000;height:480px;position:relative;width:800px}.Presets_presetIndicatorsWrapper__i3HbY{height:85px}.Presets_presetCardsWrapper__q5X7K,.Presets_presetIndicatorsWrapper__i3HbY{display:flex;justify-content:center;width:100%}.PresetNumberIndicator_presetTopWrapper__z8UGL{align-items:center;display:flex;flex-direction:column;margin:0 auto;width:200px;z-index:31}.PresetNumberIndicator_presetIndicator__gsCiO{background:#ffffff4d;clip-path:inset(0 0 0 0 round 0 0 4px 4px);height:4px;width:80px}.PresetNumberIndicator_presetNumber__Zlzhx{margin:16px 0 32px}.PresetNumberIndicator_presetNumber__Zlzhx .PresetNumberIndicator_number__GCNad{color:#ffffffb3}.PresetNumberIndicator_active__2rmaM{z-index:31}.PresetNumberIndicator_active__2rmaM .PresetNumberIndicator_presetNumber__Zlzhx .PresetNumberIndicator_number__GCNad{color:#fff}.PresetNumberIndicator_active__2rmaM .PresetNumberIndicator_presetIndicator__gsCiO{background-color:#1ed760;transition:background-color .5s cubic-bezier(.16,1,.3,1)}.PresetCard_presetCard__FN3wt{align-items:center;display:flex;flex-direction:column;margin:0 auto;transition:opacity .4s cubic-bezier(.3,0,0,1) 0ms,transform .4s cubic-bezier(.3,0,0,1) 0ms;width:200px;will-change:transform}.PresetCard_appear__h2loU{opacity:0;transform:translateY(-350px)}.PresetCard_appearActive__Ya15I{opacity:1;transform:translateY(0)}.PresetCard_appearActive__Ya15I.PresetCard_presetCard1__tx0Gk{transition-delay:0ms}.PresetCard_appearActive__Ya15I.PresetCard_presetCard2__XOyII{transition-delay:50ms}.PresetCard_appearActive__Ya15I.PresetCard_presetCard3__8ereo{transition-delay:.1s}.PresetCard_appearActive__Ya15I.PresetCard_presetCard4__m8vvD{transition-delay:.15s}.PresetCard_exit__mTtRw{opacity:1;transform:translateY(0)}.PresetCard_exitActive__1HREx{opacity:0;transform:translateY(-350px)}.PresetContent_presetTitle__FFY\+H{align-items:center;display:flex;flex-direction:column;margin-top:24px;white-space:nowrap}.PresetContent_presetTitle__FFY\+H div{overflow:hidden;padding:0;text-align:center;text-overflow:ellipsis}.PresetContent_presetTitle__FFY\+H .PresetContent_title__Z6CWp{color:#ffffffb3;width:168px}.PresetContent_presetTitle__FFY\+H .PresetContent_active__xVMcg{color:#fff}.PresetContent_presetTitle__FFY\+H .PresetContent_subtitle__bc6DL{width:168px}.PresetPlaceholder_presetPlaceholder__qLq3p{text-align:center}.PresetPlaceholder_presetPlaceholder__qLq3p .PresetPlaceholder_title__sw\+-E{color:#ffffffb3;width:168px}.PresetPlaceholder_presetPlaceholder__qLq3p .PresetPlaceholder_active__wzh6H{color:#fff}.PresetUnavailable_presetUnavailableTitles__6\+ZEg{align-items:center;display:flex;flex-direction:column;margin-top:24px}.Modal_title__rBbm7{font-size:52px;font-weight:700;letter-spacing:-.03em;line-height:56px;margin-bottom:32px;margin-top:24px}.Modal_subtitle__7\+slG{align-items:center;flex-direction:column;font-size:44px;font-weight:700;letter-spacing:-.02em;line-height:48px;margin-top:32px}.Modal_subtitle__7\+slG p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Modal_description__xTS3o{font-size:32px;letter-spacing:-.01em;line-height:40px;margin-bottom:40px;width:540px}.Modal_pairingCode__A4YfO{color:#1ed760;font-size:52px;letter-spacing:-.03em;line-height:56px}.Modal_iconCheck__VAAsM{color:#1ed760;margin-bottom:42px;margin-top:42px;transform:scale(6.5)}.Modal_dialog__8\+bm9{align-items:center;background-color:#000000e6;display:flex;flex-direction:column;height:480px;justify-content:center;padding:0 100px;text-align:center}.Modal_logoSpotify__0lKWP{color:#fff}.ModalContent_errorModal__LrUE\+{height:365px;width:560px}.ModalContent_modalRoot__orvtL{align-items:center;display:flex;flex-direction:column}.ModalContent_modalRoot__orvtL .ModalContent_modalIcon__NiLhi{margin-top:38px;transform:scale(2.5)}.ModalContent_modalRoot__orvtL .ModalContent_iconNowPlaying__1PS1M{color:#1ed760}.ModalContent_modalRoot__orvtL .ModalContent_modalTitle__AsfTX{color:#1ed760;font-size:48px;font-weight:700;letter-spacing:-.04em;line-height:36px;margin-top:23px}.ModalContent_modalRoot__orvtL .ModalContent_modalError__H1S0D{color:#e22134}.ModalContent_modalRoot__orvtL .ModalContent_modalText__snLtt{color:#000;font-size:32px;letter-spacing:-.02em;line-height:40px;margin-top:24px;text-align:center;width:485px}.ModalContent_modalRoot__orvtL .ModalContent_modalText__snLtt .ModalContent_boldText__tw9u7{font-weight:700}.LegacyModal_legacyModal__QJKk7{background-color:#0c0b0b80;display:flex;height:480px;position:absolute;width:800px;z-index:30}.LegacyModal_content__G7oNs{background-color:#fff;border-radius:15px;box-shadow:0 0 15px 2px #000;margin:auto;position:relative}.LegacyModal_icon__LiqBQ{color:#fff;margin-top:-12px;position:absolute;right:-74px}.NonSupportedType_nonSupportedType__81-IJ{align-items:center;display:flex;flex-direction:column;height:365px;width:560px}.NonSupportedType_icon__eEzCx{color:#000;margin-top:59px}.NonSupportedType_text__ZsxLr{color:#000;font-size:36px;font-weight:700;letter-spacing:-.02em;line-height:40px;margin-top:24px;text-align:center;width:420px}.SavingPresetFailed_icon__1Ez\+N{margin-bottom:10px}.NoNetwork_noNetworkWrapper__pX7A\+{background-color:#000;display:grid;height:480px;width:800px}.NoNetwork_noNetworkWrapper__pX7A\+>*{margin:auto}.NoNetwork_noNetwork__Mr766{display:grid;gap:24px;width:624px}.NoNetwork_noNetwork__Mr766>*{margin:auto}.NoNetwork_noNetworkContent__FILt1{display:grid;gap:16px;text-align:center}.NoNetwork_noNetworkContent__FILt1>*{margin:auto}.PhoneCall_phoneCall__IQq15{display:flex;flex-direction:column;height:480px;position:relative;width:800px}.PhoneCall_infoWrapper__c5ET1{align-items:center;display:flex;flex-direction:column;height:345px;padding-top:58px;width:100%}.PhoneCall_infoWrapper__c5ET1 img{border-radius:50%;height:64px;margin-top:0;width:64px}.PhoneCall_infoWrapper__c5ET1 img,.PhoneCall_infoWrapper__c5ET1 svg{margin-bottom:24px}.PhoneCall_infoWrapper__c5ET1 .PhoneCall_subtitle__9H4LL,.PhoneCall_infoWrapper__c5ET1 .PhoneCall_title__6ohQU{margin-bottom:16px;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:624px}.PhoneCall_infoWrapper__c5ET1 .PhoneCall_subtitle__9H4LL{height:40px}.PhoneCall_actions__FGcDa{display:flex;height:148px;margin-left:173px;width:100%}.PhoneCallTimer_enter__QVyc\+{opacity:0}.PhoneCallTimer_enterActive__jMZ4L{opacity:1;transition:opacity .5s cubic-bezier(.16,1,.3,1) 0ms}.PhoneCallTimer_exit__6p4JF{opacity:1}.PhoneCallTimer_exitActive__1h0Fu{opacity:0;transition:opacity .5s cubic-bezier(.16,1,.3,1) 0ms}.PhoneCallTimer_timer__0lOhm{display:flex;height:40px;justify-content:center;width:100%}.PhoneCallTimer_timerDiv__5swI\+{height:40px;width:90px}.DeclineButton_enter__pHbx5{opacity:0;transform:translateX(150px)}.DeclineButton_enterActive__ZxvJy{opacity:1;transform:translateX(0);transition:opacity .5s cubic-bezier(.16,1,.3,1) 0ms,transform .5s cubic-bezier(.16,1,.3,1) 0ms}.DeclineButton_exit__Veu7c{opacity:1;transform:translateX(0)}.DeclineButton_exitActive__7OYoy{opacity:0;transform:translateX(150px);transition:opacity .5s cubic-bezier(.16,1,.3,1) 0ms,transform .5s cubic-bezier(.16,1,.3,1) 0ms}.DeclineButton_decline__b2qNN{margin-left:40px}.AnswerButton_toDecline__xyNio{opacity:1;transform:translateX(123.5px);transition:opacity .5s cubic-bezier(.16,1,.3,1) 0ms,transform .5s cubic-bezier(.16,1,.3,1) 0ms}.AnswerButton_toDecline__xyNio svg{margin-top:10px;transform:rotate(135deg);transition:transform .5s cubic-bezier(.16,1,.3,1)}.AnswerButton_toDecline__xyNio svg path{fill:#e91429;transition:fill .5s cubic-bezier(.16,1,.3,1)}.Promo_promo__JVB\+y{display:flex;height:480px;width:800px}.Promo_textAndConfirm__n4D7w{background:#fff;display:flex;flex-direction:column;height:100%;justify-content:space-between;padding:40px 0 32px 40px;width:422px}.Promo_text__zjWwJ{color:#503750;max-width:328px}.Promo_subText__eYOjv{color:#503750;max-width:315px}.Promo_confirmButton__1pm5N{background-color:#503750;color:#fff}.Promo_imageAndOption__A2eRn{background:#ffcdd2;display:flex;flex-direction:column;height:100%;width:378px}.Promo_image__wd39\+{border-radius:16px;box-shadow:0 39px 44px -30px #000c;height:274.8px;margin-left:-30px;margin-top:56px;width:458px}.Promo_optionButtonWrapper__cXY1O{display:flex;justify-content:flex-end;margin-top:29px;padding-right:40px;width:100%}.StartSetup_screen__VeVu2{background:#503750;height:480px;padding:32px 48px 40px;width:800px}.StartSetup_title__Qnlhv{color:#ffcdd2;font-size:120px;letter-spacing:-.04em;line-height:120px;width:704px}.StartSetup_subtitle__AEKr1{color:#ffcdd2;font-size:36px;letter-spacing:-.02em;line-height:48px;max-width:408px}.StartSetup_content__2iX60{display:flex;justify-content:space-between;margin-top:32px;width:704px}.StartSetup_texts__XQOWE{display:flex;flex-direction:column;justify-content:space-between}.StartSetup_qrContainer__8bavt{align-items:center;background-color:#fff;border-radius:24px;display:flex;height:256px;justify-content:center;width:256px}.StartSetup_needHelp__\+W3q7{color:#ffcdd2;font-size:36px;font-weight:700;letter-spacing:-.02em;line-height:40px}.SetupHelp_screen__Ko2wl{background:#503750;height:480px;padding:32px 48px 40px;width:800px}.SetupHelp_subtitle__4d8Y-{color:#ffcdd2;font-size:36px;letter-spacing:-.03em;line-height:48px;max-width:704px}.SetupHelp_texts__NuN0O{height:300px}.SetupHelp_content__I2NmJ{display:flex;flex-direction:column;height:410px;justify-content:space-between;width:704px}.SetupHelp_backToSetup__lVq70{color:#ffcdd2;font-size:36px;font-weight:700;letter-spacing:-.02em;line-height:40px;margin-top:20px}.SetupHelp_white__xfM6k{color:#fff}.Connected_screen__n0gC8{background:#503750;height:480px;padding:32px 48px 40px;width:800px}.Connected_title__bpzTz{color:#ffcdd2;font-size:120px;letter-spacing:-.04em;line-height:120px;width:704px}.Connected_subtitle__QF497{color:#ffcdd2;font-size:36px;letter-spacing:-.02em;line-height:48px;margin-top:32px;max-width:700px}.BTPairing_screen__u4puA{background:#503750;height:480px;padding:32px 48px 40px;width:800px}.BTPairing_content__qe5gh{display:flex;flex-direction:column;height:260px;justify-content:space-between}.BTPairing_title__c\+78y{color:#ffcdd2;font-size:120px;letter-spacing:-.04em;line-height:120px;margin-bottom:32px}.BTPairing_texts__Xbdsh{color:#ffcdd2;font-size:36px;letter-spacing:-.02em;line-height:48px;width:650px}.BTPairing_pinCode__0XeX0{color:#ffcdd2;font-size:72px;letter-spacing:-.03em;line-height:72px}.Welcome_screen__oLnYy{align-items:center;background-color:#ffcdd2;display:flex;flex-direction:column;height:480px;justify-content:space-between;width:800px}.Welcome_title__8qhOr{color:#503750;font-size:120px;letter-spacing:-.04em;line-height:120px;margin-left:40px;margin-top:32px}.Welcome_subtitle__sWPdU{color:#503750;font-size:72px;letter-spacing:-.03em;line-height:72px}.Welcome_buttonBackground__h6KWs{align-items:center;background:#503750;border-radius:50%;display:flex;height:88px;justify-content:space-around;width:88px}.Welcome_button__7KCRl{color:#ffcdd2;transform:scale(3)}.Welcome_subtitleAndButton__DSMG0{align-items:center;display:flex;justify-content:space-between;margin-bottom:28px;margin-left:40px;margin-right:48px;width:720px}.Updating_screen__-2xUT{background:#503750;height:480px;padding:32px 48px 40px;width:800px}.Updating_content__yhhCK{display:flex;flex-direction:column;height:260px;justify-content:space-between}.Updating_title__2LwHH{color:#ffcdd2;font-size:120px;letter-spacing:-.04em;line-height:120px;margin-bottom:32px}.Updating_subtitle__seeWo{color:#ffcdd2;font-size:36px;letter-spacing:-.02em;line-height:48px;max-width:700px}.Updating_progress__vaeYa{color:#ffcdd2;font-size:72px;letter-spacing:-.03em;line-height:72px}.Failed_screen__qRLB5{background-color:#503750;height:480px;padding:32px 48px 40px;width:800px}.Failed_title__kFrSU{color:#ffcdd2;font-size:120px;letter-spacing:-.04em;line-height:120px;margin-bottom:32px}.Failed_subtitle__jdV0E{color:#ffcdd2;font-size:36px;letter-spacing:-.03em;line-height:48px;max-width:704px}.Waiting_screen__mkLMc{background:#503750;height:480px;padding:32px 48px 40px;width:800px}.Waiting_title__GY6pe{color:#ffcdd2;font-size:120px;letter-spacing:-.04em;line-height:120px;width:704px}.Waiting_subtitle__6c\+eH{color:#ffcdd2;font-size:36px;letter-spacing:-.02em;line-height:48px;margin-top:32px;max-width:700px}.Settings_settingsLayer__-7w7k{background-color:#000;position:absolute;transition:opacity .5s cubic-bezier(.16,1,.3,1) 0ms,transform .5s cubic-bezier(.16,1,.3,1) 0ms;width:800px}.Settings_transparent__\+fVvv{background-color:#000000e6;z-index:1}.Submenu_submenu__nkxEq{height:480px;width:800px}.SubmenuHeader_header__Yxa0g{align-items:center;display:flex;height:144px;justify-content:space-between;position:sticky;width:100%}.SubmenuHeader_headerDetails__8CB8H{align-items:center;display:flex;margin-left:40px;width:100%}.SubmenuHeader_headerDetails__8CB8H svg{margin-right:16px}.SubmenuItem_item__d6vjj{align-items:center;color:#fff;display:flex;height:96px;justify-content:space-between;opacity:.7;padding:0 32px;transition:background .5s cubic-bezier(.16,1,.3,1),opacity .5s cubic-bezier(.16,1,.3,1);transition:margin-right .5s cubic-bezier(.16,1,.3,1),opacity .5s cubic-bezier(.16,1,.3,1)}.SubmenuItem_disabled__ZzEB6{opacity:.3}.SubmenuItem_pressed__c8ceu{background:#ffffff1a;opacity:.5}.SubmenuItem_onOffToggle__ftxEV{margin-right:13px;opacity:.5;text-align:center}.SubmenuItem_keyValueValue__UruV\+,.SubmenuItem_onOffToggle__ftxEV{color:#fff;transition:transform .5s cubic-bezier(.16,1,.3,1)}.SubmenuItem_movedForDial__QDZbZ{transform:translateX(-56px)}.SubmenuItem_green__HyKig{color:#1ed760;opacity:.7}.SubmenuItem_white70__xiS1m{color:#ffffffb3}.SubmenuItem_active__nmhZF:not(.SubmenuItem_disabled__ZzEB6){background:#ffffff1a;opacity:1}.SubmenuItem_active__nmhZF:not(.SubmenuItem_disabled__ZzEB6).SubmenuItem_pressed__c8ceu{opacity:.5}.SubmenuItem_active__nmhZF:not(.SubmenuItem_disabled__ZzEB6) .SubmenuItem_onOffToggle__ftxEV{opacity:1}.MainMenuItem_setting__Y9oIz{align-items:center;display:flex;font-weight:700;height:128px;transition:background .5s cubic-bezier(.16,1,.3,1),opacity .5s cubic-bezier(.16,1,.3,1);width:100%}.MainMenuItem_icon__1-TWT{display:flex;justify-content:center;margin-left:48px;margin-right:48px;max-height:64px;max-width:64px;min-width:64px;opacity:.7}.MainMenuItem_label__WuHeM{color:#fff;font-size:36px;font-weight:700;letter-spacing:-.02em;line-height:40px;opacity:.7;transition:opacity .5s cubic-bezier(.16,1,.3,1) 0ms;width:514px}.MainMenuItem_active__Gqjer:not(.MainMenuItem_disabled__OjS\+b){background:#ffffff1a}.MainMenuItem_active__Gqjer:not(.MainMenuItem_disabled__OjS\+b) .MainMenuItem_icon__1-TWT,.MainMenuItem_active__Gqjer:not(.MainMenuItem_disabled__OjS\+b) .MainMenuItem_label__WuHeM{opacity:1}.MainMenuItem_active__Gqjer:not(.MainMenuItem_disabled__OjS\+b).MainMenuItem_pressed__wcYYJ{opacity:.5}.MainMenuItem_pressed__wcYYJ{background:#ffffff1a;opacity:.5}.MainMenuItem_disabled__OjS\+b>div{opacity:.3}.MainMenuItem_micStatus__0TuiP{color:#fff;font-size:36px;letter-spacing:-.02em;line-height:40px;margin-right:72px;opacity:.5;text-align:center}.MainMenuItem_green__7i11m{color:#1ed760;opacity:1}.MainMenuItem_white__MkkVz{color:#fff;opacity:1}.MainMenu_mainMenu__oaLg3{background-color:#000;height:480px}.MainMenu_header__uj9cM{align-items:center;background:#000;display:flex;height:144px;width:100%}.MainMenu_header__uj9cM p{color:#fff;font-size:44px;font-weight:700;letter-spacing:-.02em;line-height:49px;margin-left:40px;padding:0}.AirVentInterference_aviHeader__iKizA{align-items:center;background-color:#000;display:flex;height:128px;position:sticky;width:100%;z-index:50}.AirVentInterference_aviHeader__iKizA .AirVentInterference_iconLeft__w\+qxC{color:#fff;left:20px;margin-left:16px;position:absolute;transform:scale(3);width:10%}.AirVentInterference_aviHeader__iKizA span{color:#fff;font-size:44px;letter-spacing:-.02em;line-height:48px;margin-left:40px}.AirVentInterference_aviContainer__LQSEw{background:#000;height:352px;overflow:scroll}.AirVentInterference_aviContainer__LQSEw .AirVentInterference_notification__R5xwv{align-items:center;border-bottom:1px solid #fff3;border-top:1px solid #fff3;box-sizing:border-box;color:#fff;display:flex;font-size:36px;font-weight:700;height:96px;justify-content:space-between;letter-spacing:-.02em;line-height:48px;margin-bottom:40px;margin-right:72px;padding-left:40px;padding-right:72px;transition:background .5s cubic-bezier(.16,1,.3,1),border .5s cubic-bezier(.16,1,.3,1);width:800px}.AirVentInterference_aviContainer__LQSEw .AirVentInterference_notification__R5xwv.AirVentInterference_pressed__llDf3{background:#ffffff0d;color:#ffffffb3}.AirVentInterference_aviContainer__LQSEw .AirVentInterference_notification__R5xwv.AirVentInterference_focused__dyn3a{background:#ffffff1a;border:none}.AirVentInterference_aviContainer__LQSEw .AirVentInterference_notification__R5xwv.AirVentInterference_pressed__llDf3.AirVentInterference_focused__dyn3a{background:#ffffff0d;border:none}.AirVentInterference_aviContainer__LQSEw .AirVentInterference_texts__feB2O{box-sizing:border-box;color:#d9d9d9;padding:16px 40px 48px;width:100%}.AirVentInterference_aviContainer__LQSEw .AirVentInterference_texts__feB2O p,.AirVentInterference_aviContainer__LQSEw .AirVentInterference_texts__feB2O span,.AirVentInterference_aviContainer__LQSEw .AirVentInterference_texts__feB2O ul{width:100%}.AirVentInterference_aviContainer__LQSEw .AirVentInterference_texts__feB2O p{font-size:32px;letter-spacing:-.03em;line-height:48px}.AirVentInterference_aviContainer__LQSEw .AirVentInterference_texts__feB2O .AirVentInterference_intro__YneNY{color:#ccc;margin-bottom:36px}.AirVentInterference_aviContainer__LQSEw .AirVentInterference_texts__feB2O .AirVentInterference_intro__YneNY svg{transform:translateY(6px)}.AirVentInterference_aviContainer__LQSEw .AirVentInterference_texts__feB2O .AirVentInterference_thingsList__Ic-yG{margin-bottom:24px}.AirVentInterference_aviContainer__LQSEw .AirVentInterference_texts__feB2O ul{margin-bottom:32px}.AirVentInterference_aviContainer__LQSEw .AirVentInterference_texts__feB2O ul li{font-size:32px;font-weight:700;letter-spacing:-.02em;line-height:40px;margin-bottom:14px}.AirVentInterference_aviContainer__LQSEw .AirVentInterference_texts__feB2O .AirVentInterference_support__1w-EU{color:#7f7f7f;font-size:28px;letter-spacing:-.01em;line-height:32px;margin:0 8px}.AirVentInterference_aviContainer__LQSEw .AirVentInterference_texts__feB2O .AirVentInterference_support__1w-EU span{font-weight:700}.AirVentInterference_onOff__aHRNJ{color:#19b551}.Licenses_licenses__p0mXi{background-color:#fff;color:#000;height:480px;padding:42px;width:800px}.Licenses_header__qU1sb{margin-bottom:42px;width:800px}.Licenses_textAsList__YAgx0{font-family:monospace;font-size:12px;line-height:12px;white-space:pre-wrap}.Spinner_greenCircle__WMTHQ{stroke-dasharray:440;stroke-dashoffset:1000;stroke:#1ed760;stroke-linecap:round;fill:#0000;transform-origin:50% 50%}.Spinner_spin__31Aok{animation:Spinner_rotate__JP5fW 1s linear infinite;display:flex}@keyframes Spinner_rotate__JP5fW{to{transform:rotate(1turn)}}.DevOptions_devOptions__QkkHd{background:#000;color:#fff;height:480px;left:0;overflow:scroll;padding:24px;position:relative;top:0;width:100%}.DevOptions_title__z0JYy{font-size:35px;font-weight:700;margin-bottom:20px}.DevOptions_devOptionsToggle__rqCBj+span{margin-left:16px;margin-right:16px;transform:scale(2)}.DevOptions_options__rK99f{grid-gap:22px;display:grid;grid-template-columns:320px 320px;grid-template-rows:repeat(4,86px)}.DevOptions_options__rK99f label{align-items:center;background:#fff3;border-radius:24px;display:flex;justify-content:flex-start;padding:0 24px}.DevOptions_options__rK99f label span{color:#fff}.DevOptions_options__rK99f label p,.DevOptions_options__rK99f label span{font-size:18px;font-weight:700;padding-right:8px}.DevOptions_options__rK99f label span:last-of-type{padding-left:0}.DevOptions_options__rK99f label:nth-child(-n+2){display:flex;flex-direction:row-reverse;justify-content:space-between}.DevOptions_requestTipBtn__D907J.DevOptions_requestTipBtn__D907J{align-items:center;display:flex;font-size:20px;height:80px;justify-content:center}.DevOptions_devOptionsCounting__Ulse8 section{display:flex;justify-content:space-between;width:88px}.DevOptions_devOptionsCounting__Ulse8 section button{border-radius:5px;color:#fff;cursor:pointer;font-size:30px;margin-left:6px;padding:10px;text-align:center}.DevOptions_statsTable__MfRvp{margin-top:10px}.DevOptions_statsTable__MfRvp td{padding-right:20px}.PhoneCalls_scrollContainer__zaq42{height:352px;overflow:scroll}.PhoneCalls_text__rDMTq{padding:40px}.PhoneCalls_submenuItemWrapper__EYU6D{margin-bottom:8px;margin-top:8px}.PhoneConnection_phoneConnection__RHO00{background:#000;height:480px;width:800px}.PhoneConnection_phoneConnectionItem__ZL4mY{align-items:center;display:flex;height:100%;justify-content:space-between;padding-left:32px;transition:background .5s cubic-bezier(.16,1,.3,1),opacity .5s cubic-bezier(.16,1,.3,1);width:100%}.PhoneConnection_phoneConnectionItem__ZL4mY .PhoneConnection_titles__SjMA7{display:flex;flex-direction:column;width:520px}.PhoneConnection_addMorePhone__AlaiK{height:96px!important}.PhoneConnection_title__X1APS{color:#ffffff80;font-size:36px;letter-spacing:-.02em;line-height:40px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.PhoneConnection_subtitle__hwrxv{color:#ffffff80;display:flex;font-size:28px;letter-spacing:-.02em;line-height:32px;margin-top:10px;vertical-align:center}.PhoneConnection_subtitleText__bMCBn{margin-right:24px}.PhoneConnection_menuButton__djppt{align-items:center;display:flex;height:100%;justify-content:center;position:relative;transition:margin-right .5s cubic-bezier(.16,1,.3,1);width:228px}.PhoneConnection_menuButton__djppt .PhoneConnection_menuIcon__pzY\+p{color:#ffffff80;transform:scale(2)}.PhoneConnection_active__r40RS{background:#ffffff1a}.PhoneConnection_active__r40RS .PhoneConnection_title__X1APS{color:#fff}.PhoneConnection_active__r40RS .PhoneConnection_menuButton__djppt{margin-right:40px}.PhoneConnection_active__r40RS .PhoneConnection_menuButton__djppt .PhoneConnection_menuIcon__pzY\+p{color:#fff}.PhoneConnection_active__r40RS.PhoneConnection_pressed__6ZsKG{opacity:.5}.PhoneConnection_connected__TUTSm{color:#1ed760}.PhoneConnection_pressed__6ZsKG{background:#ffffff1a;opacity:.5}.PhoneConnectionContextMenu_phoneConnectionContextMenu__QY8n7{background:#000;height:480px;width:800px}.PhoneConnectionContextMenu_item__qxjb1{align-items:center;display:flex;height:100%;transition:background .5s cubic-bezier(.16,1,.3,1);width:100%}.PhoneConnectionContextMenu_label__-AomP{color:#ffffff80;margin-left:54px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.PhoneConnectionContextMenu_icon__s8GSR{color:#ffffff80;margin-left:54px;margin-top:7px;transform:scale(2)}.PhoneConnectionContextMenu_header__LwwaF{align-items:center;display:flex;height:144px;justify-content:space-between;margin-left:54px;position:sticky;text-align:left;width:100%}.PhoneConnectionContextMenu_headerDetails__t8Azb{display:flex;flex-direction:column;width:100%}.PhoneConnectionContextMenu_subtitle__a9nGS{color:#ffffff80;display:flex;margin-top:10px;vertical-align:center}.PhoneConnectionContextMenu_connected__EqSIN{color:#1ed760}.PhoneConnectionContextMenu_pressed__A\+aDs{background:#ffffff1a;opacity:.5}.PhoneConnectionContextMenu_active__OTE8l{background:#ffffff1a}.PhoneConnectionContextMenu_active__OTE8l .PhoneConnectionContextMenu_icon__s8GSR,.PhoneConnectionContextMenu_active__OTE8l .PhoneConnectionContextMenu_label__-AomP,.PhoneConnectionContextMenu_active__OTE8l .PhoneConnectionContextMenu_label__-AomP .PhoneConnectionContextMenu_menu__T7Yvg{color:#fff}.PowerTutorial_powerTutorial__j5jfN{align-items:center;display:flex;flex-direction:column;height:480px;justify-content:center;width:800px}.PowerTutorial_title__mTPM6{margin-bottom:32px}.PowerTutorial_description__0SimW{max-width:560px;text-align:center}.FactoryReset_factoryReset__T0kjl{display:flex;flex-direction:column;height:480px;justify-content:center;padding:68px 112px;width:800px}.FactoryReset_description__4uqQ9{font-size:32px;letter-spacing:0;line-height:40px;margin-bottom:32px;text-align:center}.FactoryReset_buttons__IWIjo{align-items:center;display:flex;justify-content:space-between}.RestartConfirm_restartConfirm__3NRus{align-items:center;display:flex;flex-direction:column;height:480px;padding:116px 120px;width:800px}.RestartConfirm_title__sxL6M{font-size:44px;font-weight:700;letter-spacing:-.02em;line-height:48px;margin-bottom:32px}.RestartConfirm_description__RfsDw{font-size:32px;letter-spacing:0;line-height:40px;margin-bottom:40px}.TipsOnDemand_nextButton__y3Rp7{align-items:center;background-color:#ffffff4d;border-radius:50%;color:#fff;display:flex;height:128px;justify-content:center;width:128px}.TipsOnDemand_pressed__KCVtB{opacity:.7}.TipsOnDemand_buttonContainer__ufb3p{display:flex;justify-content:flex-end}.TipsOnDemand_background__2i8dd{background:linear-gradient(0deg,#0b63ca33,#0b63ca33),radial-gradient(100% 100% at 0 0,#000 27.85%,#ffffff1a 100%);height:480px;width:100%}.TipsOnDemand_tipsOnDemand__E6OTT{box-sizing:border-box;padding:32px 48px 32px 40px;will-change:transform}.TipsOnDemand_error__aoG2Y,.TipsOnDemand_tipsOnDemand__E6OTT{display:flex;flex-direction:column;height:100%;justify-content:space-between}.TipsOnDemand_error__aoG2Y{align-items:center;padding:72px 120px;text-align:center}.TipsOnDemand_tipOnDemandEnter__QOSIr{opacity:0;transform:translateX(40px)}.TipsOnDemand_tipOnDemandEnterActive__mnVX5{opacity:1;transform:translateX(0);transition:opacity .3s ease-in 0ms,transform .3s ease-in 0ms}.TipsOnDemand_tipOnDemandExit__T9UYb{opacity:1}.TipsOnDemand_tipOnDemandExitActive__7cfbK{opacity:0;transform:translateX(-40px);transition:opacity .3s ease-out 0ms,transform .3s ease-out 0ms}.DisplayAndBrightness_header__nP092{align-items:center;background-color:#000;display:flex;height:128px;position:sticky;width:100%;z-index:50}.DisplayAndBrightness_header__nP092 span{color:#fff;margin-left:40px}.DisplayAndBrightness_container__eObZo{background:#000;height:352px;overflow:scroll}.DisplayAndBrightness_container__eObZo .DisplayAndBrightness_notification__hVggI{align-items:center;background:#ffffff1a;display:flex;font-size:36px;font-weight:700;height:96px;justify-content:space-between;letter-spacing:-.02em;line-height:48px;margin-bottom:40px;padding-left:40px;padding-right:72px;transition:background .5s cubic-bezier(.16,1,.3,1),border .5s cubic-bezier(.16,1,.3,1)}.DisplayAndBrightness_container__eObZo .DisplayAndBrightness_notification__hVggI.DisplayAndBrightness_pressed__EzNGr{background:#ffffff0d;border:none;color:#ffffffb3}.DisplayAndBrightness_container__eObZo .DisplayAndBrightness_text__-NBhm{color:#ccc;padding-left:40px;padding-right:40px}::-webkit-scrollbar{background:#0000;height:0;width:0}.LearnVoiceStep_learnVoiceStep__MQcpA{display:flex;flex-direction:column;height:400px;justify-content:space-between;margin:40px 128px 40px 40px}.LearnVoiceStep_headerAndTitle__AXXb7{position:relative}.LearnVoiceStep_transition__1Wgzx{position:absolute}.LearnVoiceStep_voiceActive__xQ0C8{opacity:.1;position:absolute;transition:opacity .2s}.LearnVoiceStep_header__CWk4E{color:#1db954;font-weight:700;margin-bottom:24px}.LearnVoiceStep_errorContent__VKdGQ{margin-bottom:32px}.LearnVoiceStep_animationAppear__V6ewU{opacity:0;transform:translateY(24px)}.LearnVoiceStep_animationAppearActive__jbiN0{opacity:1;transform:translateY(0);transition:opacity .8s cubic-bezier(.33,1,.68,1) 1s,transform .8s cubic-bezier(.33,1,.68,1) 1s}.LearnVoiceStep_animationAppearDone__\+l6ca{opacity:1;transform:translateY(0)}.LearnVoiceStep_animationEnter__lc8Ev{opacity:0;transform:translateY(24px)}.LearnVoiceStep_animationEnterActive__mth\+1{opacity:1;transform:translateY(0);transition:opacity .8s cubic-bezier(.33,1,.68,1) 1s,transform .8s cubic-bezier(.33,1,.68,1) 1s}.LearnVoiceStep_animationEnterDone__sh6Tj{opacity:1;transform:translateY(0)}.LearnVoiceStep_animationExit__O\+kVo{opacity:1}.LearnVoiceStep_animationExitActive__dwoME{opacity:0;transition:opacity .5s cubic-bezier(.33,1,.68,1) 0ms}.LearnVoiceStep_animationExitDone__J1svQ{opacity:0}.LearnVoiceStep_skipOrJellyfish__3oJe2{align-items:center;display:flex;height:128px;justify-content:center;width:128px}.LearnVoiceStep_jellyfishContainer__oElUG{bottom:40px;left:40px;position:absolute}.SkipButton_skipButtonWrapper__6Hmpv{align-items:center;border:4px solid #333;border-radius:50%;color:#b3b3b3;display:flex;height:128px;justify-content:center;width:128px}.SkipButton_pressed__9Y2By{opacity:.5}.SkipButton_animationEnter__AwIgZ{opacity:0}.SkipButton_animationEnterActive__7066\+{opacity:1;transition:opacity .8s ease-out 1.5s}.Onboarding_animationExit__sq0rj,.SkipButton_animationEnterDone__muus0{opacity:1}.Onboarding_animationExitActive__iR0fm{opacity:0;transition:opacity 1.3s cubic-bezier(.33,1,.68,1)}.Onboarding_animationExitDone__um1w-{opacity:0}.Start_start__WjlfI{align-items:center;background-color:#ffcdd2;display:flex;flex-direction:column;height:480px;justify-content:space-between;padding:32px 40px;width:800px}.Start_title__vSYOj{color:#503750;font-size:120px;letter-spacing:-.04em;line-height:120px}.Start_tourAction__Y7pqC{align-items:center;display:flex;justify-content:space-between;width:100%}.Start_tourAction__Y7pqC .Start_subtitle__Las\+C{color:#503750;font-size:72px;letter-spacing:-.03em;line-height:72px}.Start_tourAction__Y7pqC .Start_arrowWrapper__Lmhqh{align-items:center;background:#503750;border-radius:50%;display:flex;height:88px;justify-content:center;width:88px}.Start_tourAction__Y7pqC .Start_arrowWrapper__Lmhqh svg{color:#ffcdd2;transform:scale(3)}.LearnTactile_learnTactile__sn6vy{background-color:#0000;height:480px;position:relative;width:800px}.LearnTactile_blockTouch__Ccy00{background-color:#0000;height:480px;position:absolute;top:0;width:800px;z-index:26}.BackPressBanner_banner__XDpjB{align-items:center;background:#fff;border-radius:48px;bottom:24px;display:flex;height:96px;padding:0 40px;position:absolute;right:-45px;width:351px;z-index:25}.BackPressBanner_banner__XDpjB span{color:#000;font-size:36px;font-weight:700;letter-spacing:-.02em;line-height:40px}.BackPressBanner_banner__XDpjB svg{animation:BackPressBanner_ani__qu4AF 1.7s infinite;color:#1db954;margin-left:30px}@keyframes BackPressBanner_ani__qu4AF{0%{transform:scale(2.6)}50%{transform:scale(2.6) translateX(8px)}to{transform:scale(2.6)}}.DialPressPulse_outerCircle__FsggG{background:#fff;border-radius:50%;height:432px;left:688px;position:absolute;top:-61px;width:432px;z-index:25}.DialPressPulse_innerCircle__EjRbP{animation-duration:1s;animation-iteration-count:infinite;animation-name:DialPressPulse_pulse__jjqOI;animation-timing-function:linear;background:#1db954;border-radius:50%;height:300px;position:absolute;right:65px;top:65px;width:300px;z-index:26}@keyframes DialPressPulse_pulse__jjqOI{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.44)}}.DialTurnDots_outerCircle__rIY6j{background:#fff;border-radius:50%;height:432px;left:688px;position:absolute;top:-61px;width:432px;z-index:25}.DialTurnDots_innerCircle__eRZFf{animation-duration:5s;animation-iteration-count:infinite;animation-name:DialTurnDots_spin__TegXV;animation-timing-function:linear;background:#282828;border:1px solid #000;border-radius:50%;height:300px;position:absolute;right:65px;top:65px;width:300px;z-index:26}.DialTurnDots_dot1__9A7p5{left:0;top:25px}.DialTurnDots_dot1__9A7p5,.DialTurnDots_dot2__vlSo8{background:#1db954;border-radius:50%;height:20px;position:absolute;width:20px}.DialTurnDots_dot2__vlSo8{left:240px;top:290px}@keyframes DialTurnDots_spin__TegXV{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.NoInteractionModal_noInteraction__BsWdO{align-items:center;background-color:#000000e6;border-radius:10px;display:flex;flex-direction:column;height:480px;justify-content:center;overflow:hidden;position:absolute;text-align:center;top:0;width:800px;z-index:26}@font-face{font-family:spotify-circular;font-style:normal;font-weight:400;src:url(../../static/media/CircularSpUIv3T-Book.3466e0ec02233312a508.woff2) format("woff2")}@font-face{font-family:spotify-circular;font-style:normal;font-weight:700;src:url(../../static/media/CircularSpUIv3T-Bold.8d0a45ccf7017ce6c399.woff2) format("woff2")}@font-face{font-family:spotify-circular;font-style:normal;font-weight:900;src:url(../../static/media/CircularSpUIv3T-Black.c21e63c579eddbb69e2b.woff2) format("woff2")}
2 | /*# sourceMappingURL=main.css.map*/
--------------------------------------------------------------------------------
/webapp/static/css/main.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"static/css/main.css","mappings":"AAEA,MACE,8BAA+B,CAGjC,KAEE,sBACA,WAFA,gBAEA,CAGF,SAEE,oBADA,kBAEA,YCIgB,CDDlB,WAGE,YCjBc,CDoBd,cADA,gBCnBc,CDkBd,eCnBa,CDsBb,gBANA,kBCkEA,mDDjEA,WCiEA,CDxDF,OACE,aAGF,QAGE,SElCF,+BAKE,sBAHA,YACA,4BACA,kBAHA,UC4TM,CD/SR,qDAGE,WDoGA,eCtGoB,CDwGpB,qBCxGkC,CDuGlC,iBEwMM,CD1SR,6BAME,WD2FA,cC7FoB,CAHpB,aDkGA,qBC/FgC,CD8FhC,gBC9F0B,CAF1B,eCwSM,CDjSR,6BAME,YAHA,aC0RY,CFrMZ,cCvFoB,CAIpB,UDqFA,qBCzFgC,CDwFhC,gBCxF0B,CAG1B,iBAEA,CErCF,2BAEE,sBACA,mCACA,mCAHA,eAGA,CAGF,6BACE,2CAGF,4BACE,0CAGF,4BACE,0CAGF,uCACE,GACE,UAGF,IACE,UAGF,IACE,UAGF,IACE,UAGF,GACE,WAIJ,sCACE,GACE,UAGF,IACE,UAGF,IACE,UAGF,IACE,UAGF,GACE,WAIJ,sCACE,GACE,UAGF,IACE,UAGF,IACE,UAGF,IACE,UAGF,GACE,WC/EJ,wBACE,YJCc,CIEd,gBADA,kBJDc,WIEd,CAGF,mBJ6HE,mBIvHA,sBADA,aJyHA,gBI7HA,kBACA,MACA,yDJ+CA,sFI9CA,WJ0HA,CIlHF,2BAEE,sBADA,sDACA,CAGF,sBAGE,qBADA,wBADA,oBAEA,CAGF,yBACE,UC/BF,wCASE,mBANA,YLDc,CKEd,gBACA,kBLyBA,mDKxBA,WLLa,CKMb,sBACA,UACA,CCQF,6BATE,mBAYA,qBJ0SM,CIzTN,YACA,mBAeA,WAdA,aAJA,oBNkHA,cM3GoB,CANpB,gBAKA,uBN8GA,qBM7GgC,CN4GhC,gBM5G0B,CAR1B,kBADA,iBJ4TM,CIjTN,mDACE,WAWJ,+BAhBE,mBAmBA,uBAEA,2BAvBA,mBAsBA,UJkSM,CIvTN,aAJA,oBNkHA,cM3GoB,CANpB,gBAKA,uBN8GA,qBM7GgC,CN4GhC,gBM5G0B,CAoB1B,kBA7BA,iBA6BA,CAlBA,qDACE,WCfJ,oCACE,aACA,SACA,kBAGA,kEAEE,SADA,6BACA,CAGF,sCACE,WCVJ,UAGE,gBAGF,oBR+GE,eQpHoB,CRsHpB,qBQtHkC,CRqHlC,iBQ/GkC,CAGpC,WAGE,gBAGF,sBRqGE,cQ1GoB,CR4GpB,qBQ5GgC,CR2GhC,gBQrGgC,CAGlC,UAGE,gBAGF,oBR2FE,cQhGoB,CRkGpB,qBQlGgC,CRiGhC,gBQ3FgC,CAGlC,UAGE,gBAGF,oBRiFE,cQtFoB,CRwFpB,qBQxFgC,CRuFhC,gBQjFgC,CAGlC,WAGE,gBR4EA,qBQ5EA,CAGF,sBRuEE,cQ5EoB,CR6EpB,gBEnDiB,CMrBnB,WAGE,gBRsEA,gBEpDiB,CMfnB,WAGE,gBRgEA,qBQhEA,CAGF,sBR2DE,cQhEoB,CRiEpB,gBEnDiB,CMTnB,WAGE,gBR0DA,gBEpDiB,CMHnB,YAGE,gBRoDA,qBQpDA,CAGF,wBR+CE,cQpDoB,CRqDpB,gBEnDiB,CMGnB,YAGE,gBR8CA,gBEpDiB,CMSnB,YAGE,gBRwCA,qBQxCA,CAGF,wBRmCE,cQxCoB,CRyCpB,gBEnDiB,CMenB,YAGE,gBRkCA,gBEpDiB,CMqBnB,QR6BE,cQ5BoB,CR8BpB,oBADA,gBQ7BgC,CCzFlC,aACE,SP6TM,CQ9TR,gCAIE,mBAHA,aAEA,YADA,sBAEA,CCJF,iCAEE,mBADA,aAGA,iBADA,eACA,CAGF,4CAEE,mBADA,cACA,CAGF,mCAIE,wBT0SY,CSzSZ,WAFA,sBAGA,UClBF,0EZmGE,kDY/FF,uCACE,aAGA,eAFA,WACA,cACA,CAEA,sEACE,UAGF,qEACE,UAIJ,kCAEE,mBADA,YACA,CAGF,kCAIE,UVkSM,CFzMN,cY5FoB,CAEpB,gBZ4FA,qBY9FgC,CZ6FhC,gBY7F0B,CZ0D1B,oDYtDA,kBZsDA,CYlDA,gEACE,UClCJ,OAIE,eAAc,CAFd,aACA,gBAFA,WAGA,CCCF,6BACE,WdqFA,+FchFF,gCACE,WAGF,mCAIE,mBADA,aAEA,sBAHA,Yd0EA,+Fc3EA,Wd2EA,CclEF,sCAIE,mBAEA,qBZ+RM,CYlSN,aAFA,aAIA,uBAEA,WALA,WAKA,CAGF,mCACE,WAGF,uCAIE,qBADA,ad2E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","sources":["App.scss","style/_variables.scss","component/OtaUpdating/OtaUpdating.module.scss","../node_modules/@spotify-internal/encore-foundation/web/tokens.scss","component/CarthingUIComponents/AppendEllipsis/AppendEllipsis.module.scss","component/Views/Views.module.scss","component/AmbientBackdrop/AmbientBackdrop.module.scss","component/CarthingUIComponents/Button/Button.module.scss","component/CarthingUIComponents/ButtonGroup/ButtonGroup.module.scss","component/CarthingUIComponents/Type/Type.scss","component/CarthingUIComponents/SpotifyLogo/SpotifyLogo.scss","component/CarthingUIComponents/SpotifySplash/SpotifySplash.module.scss","component/Shelf/ShelfHeader/ShelfHeader.module.scss","component/Shelf/ShelfHeader/ShelfHeaderItem.module.scss","component/Shelf/Shelf.scss","component/Shelf/ShelfItem/ShelfSwiperItem.module.scss","component/Shelf/ShelfItem/MoreButton.module.scss","component/LazyImage/Placeholder/Placeholder.module.scss","component/LazyImage/LazyImage.module.scss","component/CarthingUIComponents/NowPlaying/NowPlaying.module.scss","component/CarthingUIComponents/Equaliser/Equaliser.module.scss","component/Shelf/ShelfItem/InlineTipItem.module.scss","../node_modules/swiper/swiper.scss","component/Shelf/ShelfSwiper/ShelfSwiper.module.scss","component/CarthingUIComponents/Banner/Banner.module.scss","component/CarthingUIComponents/Banner/BannerButton.module.scss","component/Npv/PlayingInfo/Artwork.module.scss","component/Npv/PlayingInfo/PlayingInfoHeader.module.scss","component/Npv/PlayingInfo/PlayingInfoTitles/PlayingInfoTitles.module.scss","component/Npv/PlayingInfo/StatusIcons.module.scss","component/Npv/PlayingInfo/PlayingInfo.module.scss","component/Npv/Tips/Tips.module.scss","component/Npv/PlayingInfoOrTip/PlayingInfoOrTip.module.scss","component/Npv/ControlButtons/Controls.module.scss","component/Overlays/Overlays.module.scss","component/Npv/PodcastSpeedOptions/PodcastSpeedOptions.module.scss","component/Npv/PodcastSpeedOptions/PodcastSpeedItem.module.scss","component/Npv/Scrubbing/Scrubbing.module.scss","component/Npv/Scrubbing/ScrubbingBar.module.scss","component/Npv/Scrubbing/ScrubbingBackdrop.module.scss","component/Npv/Volume/Volume.module.scss","component/Npv/Volume/VolumeBar.module.scss","component/Npv/Npv.module.scss","component/Npv/OtherMedia/BackToSpotify/BackToSpotify.module.scss","component/Npv/OtherMedia/Widget/Widget.module.scss","component/Npv/OtherMedia/OtherMedia.module.scss","component/Tracklist/Tracklist.module.scss","component/Tracklist/ProgressBar.module.scss","component/Tracklist/TracklistItem.module.scss","component/CarthingUIComponents/Trailer/Trailer.module.scss","component/Tracklist/TracklistHeader.module.scss","component/Tracklist/TracklistHeaderDetails.module.scss","component/Tracklist/TracklistHeaderActions.module.scss","component/Queue/Queue.module.scss","component/Queue/QueueSwiper/QueueSwiper.module.scss","component/Queue/QueueListItem/QueueListItem.module.scss","component/Queue/QueueHeader/QueueHeader.module.scss","component/Queue/QueueEmptyState/EmptyQueueState.module.scss","component/SwipeDownHandle/SwipeDownHandle.module.scss","component/Listening/Listening.module.scss","component/VoiceConfirmation/VoiceConfirmation.module.scss","component/Presets/Presets.module.scss","component/Presets/PresetIndicator/PresetNumberIndicator.module.scss","component/Presets/PresetCard/PresetCard.module.scss","component/Presets/PresetCard/PresetContent.module.scss","component/Presets/PresetCard/PresetPlaceholder.module.scss","component/Presets/PresetCard/PresetUnavailable.module.scss","component/Modals/Modal.module.scss","component/Modals/ModalContent.module.scss","component/Modals/LegacyModal.module.scss","component/Modals/NonSupportedType.module.scss","component/Presets/SavingPresetFailed.module.scss","component/Modals/NoNetwork.module.scss","component/PhoneCall/PhoneCall.module.scss","component/PhoneCall/PhoneCallTimer.module.scss","component/PhoneCall/DeclineButton.module.scss","component/PhoneCall/AnswerButton.module.scss","component/Promo/Promo.module.scss","component/Setup/StartSetup.module.scss","component/Setup/SetupHelp.module.scss","component/Setup/Connected.module.scss","component/Setup/BTPairing.module.scss","component/Setup/Welcome.module.scss","component/Setup/Updating.module.scss","component/Setup/Failed.module.scss","component/Setup/Waiting.module.scss","component/Settings/Settings.module.scss","component/Settings/Submenu/Submenu.module.scss","component/Settings/Submenu/SubmenuHeader.module.scss","component/Settings/Submenu/SubmenuItem.module.scss","component/Settings/MainMenu/MainMenuItem.module.scss","component/Settings/MainMenu/MainMenu.module.scss","component/Settings/AirVentInterference/AirVentInterference.module.scss","component/Settings/Licenses/Licenses.module.scss","component/CarthingUIComponents/Spinner/Spinner.module.scss","component/DevOptions/DevOptions.module.scss","component/Settings/PhoneCalls/PhoneCalls.module.scss","component/Settings/PhoneConnection/PhoneConnection.module.scss","component/Settings/PhoneConnection/contextmenu/PhoneConnectionContextMenu.module.scss","component/Settings/PowerTutorial/PowerTutorial.module.scss","component/Settings/FactoryReset/FactoryReset.module.scss","component/Settings/RestartConfirm/RestartConfirm.module.scss","component/Settings/TipsOnDemand/TipsOnDemand.module.scss","component/Settings/DisplayAndBrightness/DisplayAndBrightness.module.scss","component/Onboarding/LearnVoiceStep.module.scss","component/Onboarding/SkipButton.module.scss","component/Onboarding/Onboarding.module.scss","component/Onboarding/Start.module.scss","component/Onboarding/LearnTactile.module.scss","component/Onboarding/BackPressBanner.module.scss","component/Onboarding/DialPressPulse.module.scss","component/Onboarding/DialTurnDots.module.scss","component/Onboarding/NoInteractionModal.module.scss","Fonts.css"],"sourcesContent":["@import 'style/variables';\n\n:root {\n --font-family: spotify-circular;\n}\n\nbody {\n user-select: none;\n box-sizing: border-box;\n color: white;\n}\n\n#corners {\n position: absolute;\n pointer-events: none;\n z-index: $corners-z-index;\n}\n\n#container {\n position: relative;\n width: $device-width;\n height: $device-height;\n max-width: $device-width;\n max-height: $device-height;\n margin: 0 auto;\n overflow: hidden;\n @include transition-opacity(1000ms);\n}\n\n*:focus {\n outline: none;\n}\n\np,\nh1,\nh2 {\n margin: 0;\n}\n","@import 'node_modules/@spotify-internal/encore-foundation/web/tokens';\n\n// SIZE\n$device-width: 800px;\n$device-height: 480px;\n\n// COLORS\n$announcement: $blue-100;\n$positive: $green-135;\n$warning: $pumpkin-135;\n$negative: $bright-red-100;\n$backdrop-overlay: rgb(12 11 11 / 50%);\n\n// Z-index\n$overlay-z-index: 30;\n$navigation-views: 10;\n$onboarding-tactile-z-index: 25;\n$scrubbing-overlay-z-index: $navigation-views + 2;\n$scrubber-z-index: $scrubbing-overlay-z-index + 1;\n$corners-z-index: 1000;\n\n// TRANSITION\n$easing-function: cubic-bezier(0.16, 1, 0.3, 1); // easeOutExpo\n$easing-function-ease-out-cubic: cubic-bezier(0.33, 1, 0.68, 1);\n$duration-ms: 500;\n$duration-default: $duration-ms + 0ms;\n$advance-default-cubic: cubic-bezier(0.3, 0, 0, 1);\n$generic-cubic: cubic-bezier(0.3, 0, 0.7, 1);\n$recede-default-cubic: cubic-bezier(1, 0, 0.7, 1);\n\n@mixin transition-background() {\n /* stylelint-disable-next-line plugin/no-low-performance-animation-properties */\n transition: background $duration-default $easing-function;\n}\n\n@mixin transition-background-color() {\n /* stylelint-disable-next-line plugin/no-low-performance-animation-properties */\n transition: background-color $duration-default $easing-function;\n}\n\n@mixin transition-background-opacity() {\n /* stylelint-disable-next-line plugin/no-low-performance-animation-properties */\n transition: background $duration-default $easing-function,\n opacity $duration-default $easing-function;\n}\n\n@mixin transition-background-border() {\n /* stylelint-disable */\n transition: background $duration-default $easing-function,\n border $duration-default $easing-function;\n /* stylelint-enable */\n}\n\n@mixin transition-border-color() {\n /* stylelint-disable-next-line plugin/no-low-performance-animation-properties */\n transition: border-color $duration-default $easing-function;\n}\n\n@mixin transition-filter-transform() {\n transition: filter $duration-default $easing-function,\n transform $duration-default $easing-function;\n}\n\n@mixin transition-margin-right() {\n /* stylelint-disable-next-line plugin/no-low-performance-animation-properties */\n transition: margin-right $duration-default $easing-function;\n}\n\n@mixin transition-margin-right-opacity() {\n /* stylelint-disable-next-line plugin/no-low-performance-animation-properties */\n transition: margin-right $duration-default $easing-function,\n opacity $duration-default $easing-function;\n}\n\n@mixin transition-margin-right-transform() {\n /* stylelint-disable-next-line plugin/no-low-performance-animation-properties */\n transition: margin-right $duration-default $easing-function,\n transform $duration-default $easing-function;\n}\n\n@mixin transition-opacity(\n $duration: $duration-default,\n $easingFunction: $easing-function,\n $delay: 0ms\n) {\n transition: opacity $duration $easingFunction $delay;\n}\n\n@mixin transition-opacity-transform(\n $duration: $duration-default,\n $easingFunction: $easing-function,\n $delay: 0ms\n) {\n transition: opacity $duration $easingFunction $delay,\n transform $duration $easingFunction $delay;\n}\n\n@mixin transition-transform(\n $duration: $duration-default,\n $easingFunction: $easing-function\n) {\n transition: transform $duration $easingFunction;\n}\n\n@mixin transition-transform-width(\n $duration: $duration-default,\n $easingFunction: $easing-function\n) {\n /* stylelint-disable plugin/no-low-performance-animation-properties */\n transition: transform $duration $easingFunction,\n width $duration $easingFunction;\n /* stylelint-enable plugin/no-low-performance-animation-properties */\n}\n\n@mixin transition-fill() {\n transition: fill $duration-default $easing-function;\n}\n\n@mixin text-style($fs, $lh, $ls) {\n font-size: $fs;\n line-height: $lh;\n letter-spacing: $ls;\n}\n\n@mixin home-indicator($bg) {\n position: absolute;\n width: 134px;\n height: 5px;\n left: calc(50% - 134px / 2);\n background: $bg;\n border-radius: 100px;\n}\n\n@mixin rounded-corners {\n border-radius: 10px;\n overflow: hidden;\n}\n\n:export {\n easing-function: $easing-function;\n generic-cubic: $generic-cubic;\n transition-duration-ms: $duration-ms;\n recede-default-cubic: $recede-default-cubic;\n green-light: $green-light;\n}\n","@import 'src/style/variables';\n\n.background {\n width: 100%;\n height: 100%;\n padding: 32px 72px 36px 40px;\n position: relative;\n background-color: $black;\n}\n\n.error {\n @include text-style(120px, 120px, -0.04em);\n\n color: $white;\n}\n\n.title {\n @include text-style(120px, 120px, -0.04em);\n\n color: $white;\n}\n\n.subtitle {\n height: 120px;\n margin-top: 32px;\n\n @include text-style(36px, 48px, -0.02em);\n\n color: $white;\n}\n\n.progress {\n @include text-style(68px, 72px, -0.04em);\n\n color: $green-light;\n position: absolute;\n left: 36px;\n bottom: 48px;\n}\n","\n/**\n * Encore Foundation - 4.0.0\n * \n * The contents of this file is owned and generated by the Global Design Systems team.\n * If you require making changes to the values stored here please reach out\n * to #encore on Slack.\n * \n * Links:\n * \n * - Source & Documentation: https://ghe.spotify.net/encore/foundation\n * \n * Tack!\n * \n * Global Design Systems\n * encore.spotify.net\n */\n$aquamarine: #9bf0e1;\n$aubergine: #503750;\n$azure: #509bf5;\n$bole: #c87d55;\n$bright-red: #e61e32;\n$chocolate: #7d4b32;\n$citric: #cdf564;\n$electric-seafoam: #19e68c;\n$factory-yellow: #fae62d;\n$forest: #006450;\n$fuchsia: #dc148c;\n$gold: #f59b23;\n$klein-blue: #4100f5;\n$lavender: #b49bc8;\n$maroon: #8c1932;\n$midnight: #1e3264;\n$neon-green: #5ff550;\n$orange: #ff6437;\n$pink: #ffcdd2;\n$plum: #705378;\n$powder-green: #c3f0c8;\n$royal-blue: #2d46b9;\n$salmon: #f573a0;\n$spearmint: #27856a;\n$storm: #a0c3d2;\n$sunflower: #ffc864;\n$tan: #c39687;\n$tangerine: #e3230e;\n$violet: #af2896;\n$gray-7: #121212;\n$gray-10: #181818;\n$gray-15: #282828;\n$gray-20: #333333;\n$gray-30: #535353;\n$gray-50: #7f7f7f;\n$gray-70: #b3b3b3;\n$gray-80: #cccccc;\n$gray-85: #d9d9d9;\n$gray-90: #eeeeee;\n$gray-95: #f8f8f8;\n$opacity-black-0: rgba(0, 0, 0, 0);\n$opacity-black-10: rgba(0, 0, 0, 0.1);\n$opacity-black-30: rgba(0, 0, 0, 0.3);\n$opacity-black-50: rgba(0, 0, 0, 0.5);\n$opacity-black-60: rgba(0, 0, 0, 0.6);\n$opacity-black-70: rgba(0, 0, 0, 0.7);\n$opacity-black-90: rgba(0, 0, 0, 0.9);\n$opacity-white-0: rgba(255, 255, 255, 0);\n$opacity-white-10: rgba(255, 255, 255, 0.1);\n$opacity-white-30: rgba(255, 255, 255, 0.3);\n$opacity-white-50: rgba(255, 255, 255, 0.5);\n$opacity-white-60: rgba(255, 255, 255, 0.6);\n$opacity-white-70: rgba(255, 255, 255, 0.7);\n$opacity-white-90: rgba(255, 255, 255, 0.9);\n$black-0: rgba(0, 0, 0, 0);\n$black-10: rgba(0, 0, 0, 0.1);\n$black-30: rgba(0, 0, 0, 0.3);\n$black-50: rgba(0, 0, 0, 0.5);\n$black-60: rgba(0, 0, 0, 0.6);\n$black-70: rgba(0, 0, 0, 0.7);\n$black-90: rgba(0, 0, 0, 0.9);\n$white-0: rgba(255, 255, 255, 0);\n$white-10: rgba(255, 255, 255, 0.1);\n$white-30: rgba(255, 255, 255, 0.3);\n$white-50: rgba(255, 255, 255, 0.5);\n$white-60: rgba(255, 255, 255, 0.6);\n$white-70: rgba(255, 255, 255, 0.7);\n$white-90: rgba(255, 255, 255, 0.9);\n$black-20: rgba(0, 0, 0, 0.2);\n$black-40: rgba(0, 0, 0, 0.4);\n$white-5: rgba(255, 255, 255, 0.05);\n$white-20: rgba(255, 255, 255, 0.2);\n$white-40: rgba(255, 255, 255, 0.4);\n$solid-black-0: #000000;\n$solid-white-200: #ffffff;\n$spotify-black-7: #121212;\n$midnight-35: #202f72;\n$aubergine-46: #503659;\n$maroon-55: #8a202b;\n$royal-blue-55: #283ea3;\n$klein-blue-61: #4100f4;\n$forest-75: #056952;\n$chocolate-75: #834f34;\n$violet-84: #b02897;\n$bright-red-100: #e91429;\n$spearmint-114: #4b917d;\n$fuchsia-115: #f036a4;\n$tangerine-120: #ff4834;\n$bole-123: #c87d55;\n$salmon-135: #ef77a1;\n$lavender-135: #af93c4;\n$azure-135: #59a0f6;\n$pumpkin-135: #ff7439;\n$tan-135: #c19384;\n$storm-155: #a5bbd1;\n$gold-155: #ffa42b;\n$spotify-green-157: #1ed760;\n$sunflower-172: #ffc862;\n$rose-180: #ffd2d7;\n$aquamarine-180: #91eeda;\n$factory-yellow-184: #fce54f;\n$powder-green-185: #c5f0c9;\n$citric-186: #cff56a;\n$neon-green-176: #5ff550;\n$electric-seafoam-167: #19e68c;\n$red-orange-25: #560f00;\n$red-orange-55: #911600;\n$red-orange-75: #b71800;\n$red-orange-100: #e81b00;\n$red-orange-120: #ff4834;\n$red-orange-135: #ff7163;\n$red-orange-155: #ff9e95;\n$red-orange-180: #ffd3cf;\n$brown-25: #3d2418;\n$brown-55: #683e2a;\n$brown-75: #834f34;\n$brown-100: #a96440;\n$brown-123: #c87d55;\n$brown-135: #d38e67;\n$brown-155: #e5ac8a;\n$brown-180: #f7d7c3;\n$brown-desat-25: #3b251d;\n$brown-desat-55: #653f32;\n$brown-desat-75: #805040;\n$brown-desat-100: #a36652;\n$brown-desat-135: #c19384;\n$brown-desat-155: #d2b1a6;\n$brown-desat-180: #eadad5;\n$orange-25: #4f1800;\n$orange-55: #862800;\n$orange-75: #a83200;\n$orange-100: #d64000;\n$orange-135: #ff7439;\n$orange-155: #ffa178;\n$orange-180: #ffd4c2;\n$brown-yellow-25: #491e00;\n$brown-yellow-55: #793500;\n$brown-yellow-75: #964400;\n$brown-yellow-100: #bc5900;\n$brown-yellow-135: #f47e00;\n$brown-yellow-155: #ffa42b;\n$brown-yellow-172: #ffc862;\n$brown-yellow-180: #ffd97e;\n$brown-yellowdesat-25: #39260e;\n$brown-yellowdesat-55: #624218;\n$brown-yellowdesat-75: #7c531e;\n$brown-yellowdesat-100: #9f6b27;\n$brown-yellowdesat-135: #d0913f;\n$brown-yellowdesat-155: #deb076;\n$brown-yellowdesat-180: #efdabf;\n$yellow-25: #352901;\n$yellow-55: #594602;\n$yellow-75: #705903;\n$yellow-100: #8e7203;\n$yellow-135: #bd9a03;\n$yellow-155: #dab503;\n$yellow-184: #fce54f;\n$yellow-green-25: #222e03;\n$yellow-green-55: #3b4f05;\n$yellow-green-75: #4a6406;\n$yellow-green-100: #5f8008;\n$yellow-green-135: #80ac0b;\n$yellow-green-155: #95c90d;\n$yellow-green-186: #cff56a;\n$yellow-greendesat-25: #262d11;\n$yellow-greendesat-55: #414d1e;\n$yellow-greendesat-75: #526226;\n$yellow-greendesat-100: #697d30;\n$yellow-greendesat-135: #8da841;\n$yellow-greendesat-155: #a9c261;\n$yellow-greendesat-180: #d7e3b5;\n$green-25: #073116;\n$green-55: #0c5426;\n$green-75: #0f6a2f;\n$green-100: #13873c;\n$green-135: #19b551;\n$green-157: #1ed760;\n$green-180: #96f0b6;\n$green-desat-25: #182f21;\n$green-desat-55: #265135;\n$green-desat-75: #2d6740;\n$green-desat-100: #34854d;\n$green-desat-135: #3db35e;\n$green-desat-155: #5cce77;\n$green-desat-185: #c5f0c9;\n$green-blue-25: #013126;\n$green-blue-55: #035341;\n$green-blue-75: #056952;\n$green-blue-100: #088569;\n$green-blue-135: #10b28e;\n$green-blue-155: #16d0a6;\n$green-blue-180: #91eeda;\n$green-bluedesat-25: #182e28;\n$green-bluedesat-55: #294f44;\n$green-bluedesat-75: #346557;\n$green-bluedesat-100: #43816f;\n$green-bluedesat-114: #4b917d;\n$green-bluedesat-135: #5eac96;\n$green-bluedesat-155: #8bc3b3;\n$green-bluedesat-180: #c9e3db;\n$blue-25: #052a56;\n$blue-55: #084791;\n$blue-75: #0a59b8;\n$blue-100: #0d72ea;\n$blue-135: #59a0f6;\n$blue-155: #89bcf8;\n$blue-180: #c8e0fc;\n$blue-desat-25: #1d2b3a;\n$blue-desat-55: #324b64;\n$blue-desat-75: #405e7e;\n$blue-desat-100: #5179a1;\n$blue-desat-135: #82a1c0;\n$blue-desat-155: #a5bbd1;\n$blue-desat-180: #d4dfe9;\n$blue-violet-25: #26008d;\n$blue-violet-55: #3c00e4;\n$blue-violet-61: #4100f4;\n$blue-violet-75: #5925ff;\n$blue-violet-100: #7358ff;\n$blue-violet-135: #9691ff;\n$blue-violet-155: #afb1ff;\n$blue-violet-180: #d7dbff;\n$blue-violetdesat-25: #1b2658;\n$blue-violetdesat-35: #202f72;\n$blue-violetdesat-55: #283ea3;\n$blue-violetdesat-75: #334fcd;\n$blue-violetdesat-100: #576dd6;\n$blue-violetdesat-135: #8a9ae3;\n$blue-violetdesat-155: #aab6ea;\n$blue-violetdesat-180: #d7dcf5;\n$violet-25: #400073;\n$violet-55: #6900ba;\n$violet-75: #8400e7;\n$violet-100: #a833ff;\n$violet-135: #c87dff;\n$violet-155: #d8a3ff;\n$violet-180: #edd4ff;\n$violet-desat-25: #35243a;\n$violet-desat-46: #503659;\n$violet-desat-75: #734d85;\n$violet-desat-100: #8e65a9;\n$violet-desat-135: #af93c4;\n$violet-desat-155: #c4b1d4;\n$violet-desat-180: #e3daeb;\n$violet-pink-25: #4c1141;\n$violet-pink-55: #801d6d;\n$violet-pink-75: #a1258a;\n$violet-pink-84: #b02897;\n$violet-pink-100: #cc2faf;\n$violet-pink-135: #e079cd;\n$violet-pink-155: #e9a1dc;\n$violet-pink-180: #f5d3ef;\n$violet-pinkdesat-25: #3c1c4c;\n$violet-pinkdesat-55: #673081;\n$violet-pinkdesat-67: #773796;\n$violet-pinkdesat-100: #9e57bf;\n$violet-pinkdesat-135: #bb8dd0;\n$violet-pinkdesat-155: #cdaddc;\n$violet-pinkdesat-180: #e7d9ed;\n$pink-25: #550635;\n$pink-55: #8d0b58;\n$pink-75: #b00d6e;\n$pink-100: #df118b;\n$pink-115: #f036a4;\n$pink-135: #f46ebe;\n$pink-155: #f79bd2;\n$pink-180: #fcd2eb;\n$pink-desat-25: #4c172a;\n$pink-desat-55: #871f43;\n$pink-desat-75: #ad2152;\n$pink-desat-100: #de2666;\n$pink-desat-135: #ef77a1;\n$pink-desat-155: #f1a2bc;\n$pink-desat-180: #f4d6df;\n$red-25: #590810;\n$red-55: #930d1a;\n$red-75: #b81021;\n$red-100: #e91429;\n$red-135: #f97481;\n$red-155: #fe9da7;\n$red-180: #ffd2d7;\n$red-desat-25: #521319;\n$red-desat-55: #8a202b;\n$red-desat-75: #ad2836;\n$red-desat-100: #d33f4e;\n$red-desat-135: #e2828c;\n$red-desat-155: #eaa6ad;\n$red-desat-180: #f5d6d9;\n$blue-facebook-100: #2374e1;\n$fluorescent-red-109: #ff001a;\n$fluorescent-orange-144: #ff8b1f;\n$fluorescent-yellow-194: #f3ff46;\n$fluorescent-green-176: #5ff550;\n$fluorescent-greenblue-167: #19e68c;\n$fluorescent-cyan-185: #00ffff;\n$fluorescent-blueviolet-69: #2d28ff;\n$fluorescent-violet-111: #c13fff;\n$fluorescent-pink-119: #ff1abf;\n$green: #1db954;\n$green-light: #1ed760;\n$green-focus: #1da64d;\n$green-dark: #14833b;\n$black: #000000;\n$white: #ffffff;\n$red: #cd1a2b;\n$red-light: #e22134;\n$red-dark: #941320;\n$blue: #2e77d0;\n$blue-light: #4687d6;\n$blue-facebook: #1877f2;\n$blue-dark: #1d4c85;\n$orange-light: #ff5722;\n$opacity-0: 0;\n$opacity-10: 0.1;\n$opacity-30: 0.3;\n$opacity-50: 0.5;\n$opacity-70: 0.7;\n$opacity-90: 0.9;\n$spacer-4: 4px;\n$spacer-8: 8px;\n$spacer-12: 12px;\n$spacer-16: 16px;\n$spacer-20: 20px;\n$spacer-24: 24px;\n$spacer-32: 32px;\n$spacer-40: 40px;\n$spacer-48: 48px;\n$spacer-56: 56px;\n$spacer-64: 64px;\n$spacer-72: 72px;\n$spacer-80: 80px;\n$screen-xxs-max: 479px;\n$screen-xs-min: 480px;\n$screen-xs-max: 767px;\n$screen-sm-min: 768px;\n$screen-sm-max: 991px;\n$screen-md-min: 992px;\n$screen-md-max: 1199px;\n$screen-lg-min: 1200px;\n$screen-lg-max: 1919px;\n$screen-xl-min: 1920px",".dot {\n margin-left: 4px;\n animation-duration: 4s;\n animation-iteration-count: infinite;\n animation-timing-function: steps(1);\n}\n\n.dot1 {\n animation-name: dot1;\n}\n\n.dot2 {\n animation-name: dot2;\n}\n\n.dot3 {\n animation-name: dot3;\n}\n\n@keyframes dot1 {\n 0% {\n opacity: 0;\n }\n\n 25% {\n opacity: 1;\n }\n\n 50% {\n opacity: 1;\n }\n\n 75% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n}\n\n@keyframes dot2 {\n 0% {\n opacity: 0;\n }\n\n 25% {\n opacity: 0;\n }\n\n 50% {\n opacity: 1;\n }\n\n 75% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n}\n\n@keyframes dot3 {\n 0% {\n opacity: 0;\n }\n\n 25% {\n opacity: 0;\n }\n\n 50% {\n opacity: 0;\n }\n\n 75% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n}\n","@import 'src/style/variables';\n\n.viewArea {\n height: $device-height;\n width: $device-width;\n position: relative;\n overflow: hidden;\n}\n\n.view {\n position: absolute;\n top: 0;\n transform: perspective(800px) translate3d(0, 530px, -160px);\n width: 800px;\n height: 480px;\n filter: brightness(0.9);\n\n @include transition-filter-transform;\n @include rounded-corners;\n}\n\n.underCurrent {\n transform: perspective(800px) translate3d(0, 10px, -40px);\n filter: brightness(0.2);\n}\n\n.current {\n transition-delay: 100ms;\n transform: translateY(0);\n filter: brightness(1);\n}\n\n.forceOnTop {\n z-index: 1;\n}\n","@import 'src/style/variables';\n\n.ambientBackdrop {\n @include transition-background;\n\n height: $device-height;\n overflow: hidden;\n position: absolute;\n width: $device-width;\n will-change: transform;\n z-index: -1;\n border-radius: 10px;\n}\n","@import 'src/style/variables';\n\n@mixin ct-button-base-style() {\n width: fit-content;\n padding: 24px 64px;\n font-family: inherit;\n font-weight: bold;\n border: none;\n border-radius: 44px;\n display: flex;\n align-items: center;\n justify-content: center;\n @include text-style(32px, 40px, -0.02em);\n\n &.pressed {\n opacity: 0.5;\n }\n}\n\n.buttonPrimary {\n @include ct-button-base-style;\n\n background-color: $white;\n color: $black;\n}\n\n.buttonSecondary {\n @include ct-button-base-style;\n\n background-color: transparent;\n color: $white;\n border: 4px solid $opacity-white-50;\n padding: 20px 60px;\n}\n",".buttonGroupGrid {\n display: grid;\n gap: 24px;\n width: fit-content;\n\n // Only supporting 2 horizontal buttons? 🤔\n &.horizontal {\n grid-template-columns: 1fr 1fr;\n gap: 32px;\n }\n\n & > * {\n width: 100%;\n }\n}\n","@import 'src/style/variables';\n\n.bassBold {\n @include text-style(120px, 137px, -0.04em);\n\n font-weight: bold;\n}\n\n.bassBook {\n @include text-style(120px, 137px, -0.04em);\n}\n\n.forteBold {\n @include text-style(72px, 72px, -0.03em);\n\n font-weight: bold;\n}\n\n.forteBook {\n @include text-style(72px, 72px, -0.03em);\n}\n\n.brioBold {\n @include text-style(52px, 60px, -0.03em);\n\n font-weight: bold;\n}\n\n.brioBook {\n @include text-style(52px, 60px, -0.03em);\n}\n\n.altoBold {\n @include text-style(44px, 49px, -0.02em);\n\n font-weight: bold;\n}\n\n.altoBook {\n @include text-style(44px, 49px, -0.02em);\n}\n\n.canonBold {\n @include text-style(36px, 48px, -0.02em);\n\n font-weight: bold;\n}\n\n.canonBook {\n @include text-style(36px, 48px, 0);\n\n color: $opacity-white-70;\n}\n\n.celloBold {\n @include text-style(32px, 40px, -0.02em);\n\n font-weight: bold;\n}\n\n.celloBook {\n @include text-style(32px, 40px, 0);\n\n color: $opacity-white-70;\n}\n\n.balladBold {\n @include text-style(28px, 32px, -0.01em);\n\n font-weight: bold;\n}\n\n.balladBook {\n @include text-style(28px, 32px, 0);\n\n color: $opacity-white-70;\n}\n\n.mestroBold {\n @include text-style(24px, 32px, -0.01em);\n\n font-weight: bold;\n}\n\n.mestroBook {\n @include text-style(24px, 32px, 0);\n\n color: $opacity-white-70;\n}\n\n.minuet {\n @include text-style(20px, 24px, 0.1em);\n}\n","@import 'src/style/variables';\n\n.white.white {\n fill: $white;\n}\n","@import 'src/style/variables';\n\n.container {\n display: flex;\n justify-content: center;\n height: 100%;\n align-items: center;\n}\n","@import 'src/style/variables';\n\n.shelfTitles {\n display: flex;\n align-items: center;\n margin-top: 28px;\n margin-left: 44px;\n}\n\n.titleUnderlineContainer {\n margin-top: 4px;\n margin-bottom: 40px;\n}\n\n.titleUnderline {\n @include transition-transform;\n\n transform-origin: left;\n background-color: $green-light;\n height: 4px;\n width: 1px;\n}\n","@import 'src/style/variables';\n\n.withTransition {\n @include transition-transform;\n}\n\n.titleContainer {\n display: flex;\n opacity: 0.5;\n padding: 28px 0;\n margin: -28px 0;\n\n &.active {\n opacity: 1;\n }\n\n &.hidden {\n opacity: 0;\n }\n}\n\n.titleIcon {\n display: flex;\n align-items: center;\n}\n\n.titleText {\n @include text-style(32px, 40px, -0.02em);\n\n font-weight: bold;\n color: $white;\n white-space: nowrap;\n\n @include transition-opacity;\n\n &.hidden {\n opacity: 0;\n }\n}\n","@import 'src/style/variables';\n\n#shelf {\n width: $device-width;\n height: $device-height;\n overflow: hidden;\n border-radius: 0;\n}\n","@use 'sass:math';\n\n// https://github.com/stylelint/stylelint/issues/5492\n@import 'src/style/variables'; /* stylelint-disable no-invalid-position-at-import-rule */\n\n$slide-width: 240px;\n\n.item {\n opacity: 0.8;\n\n @include transition-opacity-transform;\n}\n\n.pressed {\n opacity: 0.7;\n}\n\n.buttonItem {\n width: $slide-width;\n height: 100%;\n display: flex;\n align-items: center;\n flex-direction: column;\n\n @include transition-opacity-transform;\n}\n\n.buttonArtwork {\n height: 240px;\n width: $slide-width;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: $white;\n opacity: 0.1;\n}\n\n.buttonIcon {\n opacity: 0.8;\n}\n\n.titleContainer {\n @include text-style(32px, 40px, -0.02em);\n\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n margin-top: 24px;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.title {\n flex: 1;\n opacity: 0.7;\n font-weight: bold;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.subtitle {\n @include text-style(28px, 32px, -0.01em);\n\n margin-top: 4px;\n opacity: 0.7;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.activeBorder {\n position: absolute;\n width: 256px;\n height: 256px;\n top: -8px;\n border: 4px solid white;\n border-radius: 8px;\n}\n\n.artworkCenter {\n position: absolute;\n transform: translateY(math.div($slide-width, 2)) translateY(-50%);\n}\n\n.circle {\n border-radius: 50%;\n}\n\n.activeSlide {\n opacity: 1;\n\n &.pressed {\n opacity: 0.8;\n }\n\n &.notEnabled {\n opacity: 0.8;\n }\n\n .title {\n opacity: 1;\n }\n\n .subtitle {\n opacity: 1;\n }\n\n .buttonIcon {\n opacity: 1;\n }\n}\n\n.notEnabled {\n &.pressed {\n opacity: 0.7;\n }\n}\n","@import 'src/style/variables';\n\n.moreIcon {\n width: 94px;\n height: 94px;\n border-radius: 50%;\n background: $white;\n opacity: 0.3;\n}\n","@import 'src/style/variables';\n\n.placeholder {\n height: 100%;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: $gray-20;\n background-clip: content-box;\n\n &.otherMedia {\n background-color: $opacity-white-10;\n }\n}\n\n.placeholderIcon {\n display: flex;\n\n svg {\n color: $gray-50;\n }\n}\n","@import 'src/style/variables';\n\n.imageCenter {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.outerBorder {\n @include transition-border-color;\n\n border-color: transparent;\n\n &.outerBorderActive {\n box-sizing: content-box;\n border: 4px solid;\n padding: 6px;\n }\n}\n\n.innerBorder {\n &.episode {\n border-radius: 16px;\n border: 20px solid;\n }\n\n &.track {\n border: 20px solid;\n }\n}\n\n.image {\n max-height: 100%;\n max-width: 100%;\n object-fit: cover;\n transform-origin: top left;\n\n &.shaded {\n filter: brightness(30%);\n }\n}\n\n.radioStation {\n position: relative;\n height: 100%;\n width: 100%;\n\n .radioStationBg {\n position: absolute;\n top: 0;\n left: 0;\n }\n\n .imageRadio {\n position: absolute;\n margin: auto;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n }\n}\n","@import 'src/style/variables';\n\n.nowPlayingWrapper {\n display: flex;\n align-items: baseline;\n}\n\n.nowPlayingText {\n margin-left: 12px;\n}\n","@import 'src/style/variables';\n\n// -- ANIMATION -- //\n\n// PAUSED\n// (t) (1) (2) (3)\n// 0ms: 0%, 0%, 0%\n\n// PAUSE-TO-PLAY\n// (t) (1) (2) (3)\n// 0ms: 0%, 0%, 0%\n// 250ms: 75, 100%, 50%\n\n// PLAYING\n// (t) (1) (2) (3)\n// 0ms: 75%, 100%, 50%\n// 300ms: 0%, 75%, 75%\n// 600ms: 75%, 50%, 0%\n// 900ms: 50%, 75%, 100%\n// 1200ms: 100%, 0%, 75%\n// 1500ms: 75%, 100%, 50%\n\n// PLAY-TO-PAUSE\n// (t) (1) (2) (3)\n// 0ms: 75, 100%, 50%\n// 250ms: 0%, 0%, 0%\n\n$off: 0.2;\n$low: 0.6;\n$mid: 0.8;\n$high: 1;\n$play-to-pause-ms: 250ms;\n$play-ms: 1500ms;\n\n.bars {\n width: 20px;\n display: flex;\n justify-content: space-between;\n align-items: baseline;\n}\n\n.bar {\n background-color: $green-light;\n width: 4px;\n height: 20px;\n transform: scaleY($off);\n transition-duration: $play-to-pause-ms;\n transition-timing-function: linear;\n transform-origin: bottom;\n}\n\n.bar1 {\n &.pauseToPlay {\n transform: scaleY($mid);\n }\n\n &.play {\n animation: play1 linear infinite normal $play-ms;\n }\n\n &.playToPause {\n animation: play-to-pause-1 linear 1 $play-to-pause-ms forwards;\n }\n}\n\n.bar2 {\n &.pauseToPlay {\n transform: scaleY($high);\n }\n\n &.play {\n animation: play2 linear infinite normal $play-ms;\n }\n\n &.playToPause {\n animation: play-to-pause-2 linear 1 $play-to-pause-ms forwards;\n }\n}\n\n.bar3 {\n &.pauseToPlay {\n transform: scaleY($low);\n }\n\n &.play {\n animation: play3 linear infinite normal $play-ms;\n }\n\n &.playToPause {\n animation: play-to-pause-3 linear 1 $play-to-pause-ms forwards;\n }\n}\n\n@keyframes play1 {\n 0% {\n transform: scaleY($mid);\n }\n\n 20% {\n transform: scaleY($off);\n }\n\n 40% {\n transform: scaleY($mid);\n }\n\n 60% {\n transform: scaleY($low);\n }\n\n 80% {\n transform: scaleY($high);\n }\n\n 100% {\n transform: scaleY($mid);\n }\n}\n\n@keyframes play2 {\n 0% {\n transform: scaleY($high);\n }\n\n 20% {\n transform: scaleY($mid);\n }\n\n 40% {\n transform: scaleY($low);\n }\n\n 60% {\n transform: scaleY($mid);\n }\n\n 80% {\n transform: scaleY($off);\n }\n\n 100% {\n transform: scaleY($high);\n }\n}\n\n@keyframes play3 {\n 0% {\n transform: scaleY($low);\n }\n\n 20% {\n transform: scaleY($mid);\n }\n\n 40% {\n transform: scaleY($off);\n }\n\n 60% {\n transform: scaleY($high);\n }\n\n 80% {\n transform: scaleY($mid);\n }\n\n 100% {\n transform: scaleY($low);\n }\n}\n\n@keyframes play-to-pause-1 {\n 0% {\n transform: scaleY($mid);\n }\n\n 100% {\n transform: scaleY($off);\n }\n}\n\n@keyframes play-to-pause-2 {\n 0% {\n transform: scaleY($high);\n }\n\n 100% {\n transform: scaleY($off);\n }\n}\n\n@keyframes play-to-pause-3 {\n 0% {\n transform: scaleY($low);\n }\n\n 100% {\n transform: scaleY($off);\n }\n}\n","@import 'src/style/variables';\n\n.inlineTipItem {\n width: 508px;\n height: 324px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n @include transition-opacity-transform;\n}\n\n.subtitle {\n display: flex;\n}\n\n.tryThis {\n color: $green-light;\n}\n\n.toTheLeft {\n transform: translateX(-18px);\n}\n\n.hidden {\n opacity: 0;\n}\n\n.voiceTip {\n width: 448px;\n height: 304px;\n}\n","/**\n * Swiper 8.3.0\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2022 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: July 6, 2022\n */\n\n@import 'swiper-vars.scss';\n@at-root {\n @font-face {\n font-family: 'swiper-icons';\n src: url('data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA')\n format('woff');\n font-weight: 400;\n font-style: normal;\n }\n}\n@at-root {\n :root {\n --swiper-theme-color: #{$themeColor};\n }\n}\n.swiper {\n margin-left: auto;\n margin-right: auto;\n position: relative;\n overflow: hidden;\n list-style: none;\n padding: 0;\n /* Fix of Webkit flickering */\n z-index: 1;\n}\n.swiper-vertical > .swiper-wrapper {\n flex-direction: column;\n}\n.swiper-wrapper {\n position: relative;\n width: 100%;\n height: 100%;\n z-index: 1;\n display: flex;\n transition-property: transform;\n box-sizing: content-box;\n}\n.swiper-android .swiper-slide,\n.swiper-wrapper {\n transform: translate3d(0px, 0, 0);\n}\n.swiper-pointer-events {\n touch-action: pan-y;\n &.swiper-vertical {\n touch-action: pan-x;\n }\n}\n.swiper-slide {\n flex-shrink: 0;\n width: 100%;\n height: 100%;\n position: relative;\n transition-property: transform;\n}\n.swiper-slide-invisible-blank {\n visibility: hidden;\n}\n/* Auto Height */\n.swiper-autoheight {\n &,\n .swiper-slide {\n height: auto;\n }\n\n .swiper-wrapper {\n align-items: flex-start;\n transition-property: transform, height;\n }\n}\n.swiper-backface-hidden .swiper-slide {\n transform: translateZ(0);\n backface-visibility: hidden;\n}\n/* 3D Effects */\n.swiper-3d {\n &,\n &.swiper-css-mode .swiper-wrapper {\n perspective: 1200px;\n }\n .swiper-wrapper,\n .swiper-slide,\n .swiper-slide-shadow,\n .swiper-slide-shadow-left,\n .swiper-slide-shadow-right,\n .swiper-slide-shadow-top,\n .swiper-slide-shadow-bottom,\n .swiper-cube-shadow {\n transform-style: preserve-3d;\n }\n .swiper-slide-shadow,\n .swiper-slide-shadow-left,\n .swiper-slide-shadow-right,\n .swiper-slide-shadow-top,\n .swiper-slide-shadow-bottom {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: 10;\n }\n .swiper-slide-shadow {\n background: rgba(0, 0, 0, 0.15);\n }\n .swiper-slide-shadow-left {\n background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n }\n .swiper-slide-shadow-right {\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n }\n .swiper-slide-shadow-top {\n background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n }\n .swiper-slide-shadow-bottom {\n background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n }\n}\n\n/* CSS Mode */\n.swiper-css-mode {\n > .swiper-wrapper {\n overflow: auto;\n scrollbar-width: none; /* For Firefox */\n -ms-overflow-style: none; /* For Internet Explorer and Edge */\n &::-webkit-scrollbar {\n display: none;\n }\n }\n > .swiper-wrapper > .swiper-slide {\n scroll-snap-align: start start;\n }\n}\n.swiper-horizontal.swiper-css-mode {\n > .swiper-wrapper {\n scroll-snap-type: x mandatory;\n }\n}\n.swiper-vertical.swiper-css-mode {\n > .swiper-wrapper {\n scroll-snap-type: y mandatory;\n }\n}\n.swiper-centered {\n > .swiper-wrapper::before {\n content: '';\n flex-shrink: 0;\n order: 9999;\n }\n &.swiper-horizontal {\n > .swiper-wrapper > .swiper-slide:first-child {\n margin-inline-start: var(--swiper-centered-offset-before);\n }\n > .swiper-wrapper::before {\n height: 100%;\n width: var(--swiper-centered-offset-after);\n }\n }\n &.swiper-vertical {\n > .swiper-wrapper > .swiper-slide:first-child {\n margin-block-start: var(--swiper-centered-offset-before);\n }\n > .swiper-wrapper::before {\n width: 100%;\n height: var(--swiper-centered-offset-after);\n }\n }\n\n > .swiper-wrapper > .swiper-slide {\n scroll-snap-align: center center;\n }\n}\n\n\n\n","/* stylelint-disable */\n\n.container {\n overflow: visible !important; // Override swiper default behaviour\n\n :global {\n .swiper-wrapper {\n // Push previous slide out of view\n .swiper-slide-prev {\n transform: translateX(-18px);\n }\n }\n }\n}\n\n/* stylelint-enable */\n","@import '../../../style/variables';\n\n.bannerContainer {\n position: absolute;\n top: 0;\n width: 800px;\n height: 72px;\n display: flex;\n justify-content: space-between;\n padding-right: 4px;\n}\n\n.icon {\n height: 32px;\n width: 32px;\n margin-left: 24px;\n margin-right: 16px;\n}\n\n.info {\n display: flex;\n align-items: center;\n}\n\n.buttons {\n display: flex;\n align-items: center;\n}\n\n.informationalText {\n width: 100%;\n\n &.information {\n color: $white;\n }\n}\n\n.information {\n &.bannerContainer {\n background-color: $blue-100;\n\n .informationalText {\n color: $white;\n }\n\n .icon {\n color: $white;\n }\n }\n}\n\n.confirmation {\n &.bannerContainer {\n background-color: $white;\n\n .informationalText {\n color: $black;\n }\n\n .icon {\n color: $black;\n }\n }\n}\n\n.unavailable {\n &.bannerContainer {\n background-color: $gray-20;\n\n .informationalText {\n color: $white;\n }\n\n .icon {\n color: $white;\n }\n }\n}\n\n.enter {\n opacity: 0;\n}\n\n.enterActive {\n opacity: 1;\n\n @include transition-opacity;\n}\n\n.exit {\n opacity: 1;\n}\n\n.exitActive {\n opacity: 0;\n\n @include transition-opacity;\n}\n","@import '../../../style/variables';\n\n.buttonContainer {\n display: flex;\n align-items: center;\n height: 64px;\n\n @include transition-background-color;\n}\n\n.touchArea {\n height: 64px;\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 6px;\n}\n\n.bannerButton {\n padding-left: 34px;\n padding-right: 38px;\n display: flex;\n align-items: center;\n height: 100%;\n width: 100%;\n}\n\n.pressed {\n background-color: rgb(0 0 0 / 10%);\n}\n\n.buttonText {\n font-weight: 400;\n text-transform: uppercase;\n}\n\n.divider {\n margin-left: 2px;\n margin-right: 4px;\n width: 2px;\n height: 40px;\n opacity: 0.3;\n}\n\n.information {\n .divider {\n background-color: $white;\n }\n\n .buttonText {\n color: $white;\n }\n}\n\n.confirmation {\n .divider {\n background-color: $black;\n }\n\n .buttonText {\n color: $black;\n }\n}\n\n.unavailable {\n .divider {\n background-color: $white;\n }\n\n .buttonText {\n color: $white;\n }\n}\n","$artwork-container-width: 248px;\n$artwork-container-height: 248px;\n\n.artworkTransitionGroup {\n display: flex;\n}\n\n.transitionContainer {\n position: absolute;\n}\n\n.artwork {\n width: $artwork-container-width;\n height: $artwork-container-height;\n box-shadow: 0 16px 32px rgb(0 0 0 / 20%);\n}\n","@import 'src/style/variables';\n\n.header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n height: 32px;\n min-width: 0;\n}\n\n.contextTitle {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: bold;\n color: rgb(255 255 255 / 50%);\n padding: 40px 0 25px 10px;\n margin: -40px 32px -25px -10px;\n\n @include text-style(28px, 32px, -0.01em);\n}\n","@import 'src/style/variables';\n\n$info-container-width: 432px;\n\n.transitionContainer {\n position: absolute;\n}\n\n.texts {\n margin-top: 16px;\n}\n\n.songTitle {\n color: $white;\n font-weight: bold;\n width: $info-container-width;\n text-overflow: ellipsis;\n overflow: hidden;\n display: -webkit-box;\n word-break: break-word;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n padding-bottom: 5px;\n}\n\n.songTitleBig {\n @include text-style(72px, 72px, -0.03em);\n}\n\n.songTitleMiddle {\n @include text-style(52px, 56px, -0.03em);\n}\n\n.songTitleSmall {\n @include text-style(44px, 47px, -0.02em);\n\n max-height: 144px;\n}\n\n.artistTitle {\n @include text-style(36px, 40px, -0.01em);\n\n max-height: 80px;\n margin-top: 16px;\n width: $info-container-width;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n position: relative;\n color: $white;\n padding-bottom: 3px;\n}\n","@import 'src/style/variables';\n\n.statusIcons {\n top: 40px;\n right: 40px;\n align-items: center;\n flex-wrap: nowrap;\n justify-content: space-between;\n display: flex;\n color: $white;\n opacity: 0.7;\n\n > div:not(:first-child) {\n margin-left: 32px;\n }\n}\n","@import 'src/style/variables';\n\n$info-container-width: 432px;\n$info-container-height: 248px;\n\n.playingInfo {\n height: 100%;\n width: 100%;\n padding: 40px 40px 48px;\n display: flex;\n}\n\n.animationEnterLeft {\n opacity: 0;\n transform: translateX(-24px);\n}\n\n.animationEnterRight {\n opacity: 0;\n transform: translateX(24px);\n}\n\n.animationEnterActive {\n opacity: 1;\n transform: translateX(0);\n\n @include transition-opacity-transform;\n}\n\n.animationExit {\n opacity: 1;\n transform: translateX(0);\n}\n\n.animationExitLeft {\n opacity: 0;\n transform: translateX(-24px);\n\n @include transition-opacity-transform;\n}\n\n.animationExitRight {\n opacity: 0;\n transform: translateX(24px);\n\n @include transition-opacity-transform;\n}\n\n.info {\n margin-left: 34px;\n width: $info-container-width;\n height: $info-container-height;\n}\n\n.playingInfoHeader {\n display: flex;\n justify-content: space-between;\n height: 32px;\n}\n","@import 'src/style/variables';\n\n.tips {\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n padding: 32px 48px 32px 40px;\n}\n\n.title {\n color: $green-light;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.topBar {\n display: flex;\n justify-content: space-between;\n margin-right: -8px;\n}\n\n.description {\n margin-top: 16px;\n display: -webkit-box;\n overflow: hidden;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n}\n","@import 'src/style/variables';\n\n.playingInfoOrTip {\n height: 332px;\n width: 100%;\n}\n\n.playingInfoEnter {\n opacity: 0;\n transform: translateY(40px);\n}\n\n.playingInfoEnterActive {\n @include transition-opacity-transform(300ms, ease-in);\n\n opacity: 1;\n transform: translateY(0);\n}\n\n.playingInfoExit {\n opacity: 1;\n}\n\n.playingInfoExitActive {\n @include transition-opacity-transform(300ms, ease-out);\n\n opacity: 0;\n transform: translateY(40px);\n}\n\n.tipEnter {\n opacity: 0;\n transform: translateY(72px);\n}\n\n.tipEnterActive {\n @include transition-opacity-transform(300ms, ease-in);\n\n opacity: 1;\n transform: translateY(0);\n}\n\n.tipExit {\n opacity: 1;\n transform: translateY(0);\n}\n\n.tipExitActive {\n @include transition-opacity-transform(300ms, ease-out);\n\n opacity: 0;\n transform: translateY(72px);\n}\n","@import 'src/style/variables';\n\n.controls {\n width: 800px;\n display: flex;\n align-items: center;\n}\n\n.otherMedia {\n background-color: $gray-20;\n}\n\n.controlButton {\n height: 144px;\n width: 160px;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.touchArea {\n width: 144px;\n height: 112px;\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 8px;\n}\n\n.touchAreaFullSize {\n width: 100%;\n height: 100%;\n border-radius: unset;\n}\n\n.touchAreaDown {\n background: $opacity-black-30;\n}\n\n.iconShuffleActive {\n padding-top: 23px;\n}\n\n.disabledIcon {\n svg {\n path {\n fill: $opacity-white-30;\n }\n }\n}\n","@import 'src/style/variables';\n\n.overlay {\n height: $device-height;\n width: $device-width;\n position: absolute;\n top: 0;\n z-index: $overlay-z-index;\n\n @include transition-opacity-transform;\n @include rounded-corners;\n}\n","@import 'src/style/variables';\n\n.podcastSpeedOverlay {\n z-index: $overlay-z-index + 1;\n background-color: $black;\n}\n\n.podcastSpeedOptions {\n width: $device-width;\n height: $device-height;\n border-radius: 0;\n position: relative;\n top: 0;\n left: 0;\n background: $black;\n\n @include transition-transform;\n\n &.smallHeader {\n transform: translateY(-48px);\n }\n}\n\n.header {\n height: 152px;\n width: 100%;\n display: flex;\n align-items: center;\n padding: 0 40px;\n}\n\n.title {\n @include transition-transform;\n\n transform-origin: left;\n\n &.smallTitle {\n transform: translateY(24px) scale(calc(32 / 44));\n }\n}\n","@import 'src/style/variables';\n\n.speedItem {\n height: 112px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0 40px;\n\n svg {\n margin-right: 30px;\n }\n}\n\n.activeItem {\n background: $opacity-white-10;\n}\n\n.pressed {\n opacity: 0.5;\n}\n","@import 'src/style/variables';\n\n.scrubbingClickArea {\n z-index: $scrubber-z-index;\n position: absolute;\n top: 290px;\n height: 72px;\n width: $device-width;\n}\n","@import 'src/style/variables';\n\n$progress-bar-height: 4px;\n$container-height: -4px;\n\n.scrubbingBar {\n @include transition-background-color;\n\n position: absolute;\n z-index: $overlay-z-index + 1;\n width: $device-width;\n height: $progress-bar-height;\n background-image: linear-gradient(0deg, rgb(0 0 0 / 50%), rgb(0 0 0 / 50%));\n}\n\n.progressPlayed {\n z-index: $scrubber-z-index + 1;\n background-color: $white;\n width: 2px;\n height: 100%;\n}\n","@import 'src/style/variables';\n\n.scrubbingBackdrop {\n position: absolute;\n width: $device-width;\n height: $device-height;\n background: rgb(0 0 0 / 85%);\n top: 0;\n left: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n z-index: $scrubbing-overlay-z-index;\n}\n\n.time {\n width: $device-width - 80px;\n height: $device-height - 180px;\n display: flex;\n justify-content: space-between;\n\n span {\n @include text-style(72px, 72px, -0.03em);\n\n height: 72px;\n color: $white;\n align-self: flex-end;\n }\n}\n","@import 'src/style/variables';\n\n.volume {\n height: 144px;\n width: 100%;\n position: absolute;\n bottom: 0;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n\n svg {\n color: $white;\n }\n\n .volumeInfo {\n margin-top: 24px;\n width: 342px;\n display: flex;\n justify-content: center;\n align-items: center;\n\n .volumeIcon {\n width: 40px;\n height: 40px;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 15px;\n }\n }\n}\n","@import 'src/style/variables';\n\n.volumeBar {\n height: 8px;\n width: 480px;\n position: relative;\n border-radius: 4px;\n transform: translateY(2px);\n background: $gray-20;\n}\n\n.volumeLevelFill {\n display: block;\n height: 100%;\n border-radius: 4px;\n background-color: $white;\n overflow: hidden;\n}\n","@import 'src/style/variables';\n\n.npv {\n position: relative;\n width: $device-width;\n height: $device-height;\n overflow: hidden;\n transition-delay: $duration-default;\n}\n\n.controlsContainer {\n height: 144px;\n position: absolute;\n width: 100%;\n bottom: 0;\n background: $opacity-black-30;\n}\n\n.enter {\n opacity: 0;\n}\n\n.enterActive {\n opacity: 1;\n\n @include transition-opacity;\n}\n\n.exit {\n opacity: 1;\n}\n\n.exitActive {\n opacity: 0;\n\n @include transition-opacity;\n}\n","@import 'src/style/variables';\n\n.backToSpotify {\n background-color: $gray-20;\n width: fit-content;\n padding: 8px 16px 8px 12px;\n border-radius: 50px;\n display: flex;\n\n &.pressed {\n opacity: 0.5;\n }\n}\n\n.label {\n padding-left: 8px;\n}\n","@import 'src/style/variables';\n\n.otherMediaWidget {\n margin-top: 20px;\n width: 720px;\n height: 224px;\n background-color: $gray-20;\n border-radius: 16px;\n display: flex;\n overflow: hidden;\n}\n\n.artwork {\n box-shadow: 0 16px 32px rgb(0 0 0 / 20%);\n}\n\n.metadata {\n width: 100%;\n padding: 12px 32px;\n display: flex;\n flex-direction: column;\n justify-content: space-evenly;\n overflow: hidden;\n}\n\n.source {\n color: $opacity-white-70;\n}\n\n.title {\n overflow: hidden;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n.subtitle {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n color: white;\n}\n","@import 'src/style/variables';\n\n.otherMedia {\n background: $black;\n height: 336px;\n padding: 24px 40px;\n}\n\n.topBar {\n display: flex;\n justify-content: space-between;\n margin-right: 6px;\n}\n","@import 'src/style/variables';\n\n$dial-center-diff: 68px;\n$small-header-diff: 48px;\n\n.tracklist {\n @include transition-transform;\n\n width: $device-width;\n height: $device-height + $small-header-diff;\n position: relative;\n top: 0;\n left: 0;\n overflow: hidden;\n\n &.smallHeader {\n transform: translateY(-$small-header-diff);\n }\n}\n\n.container {\n position: relative;\n left: 0;\n right: 0;\n width: 100%;\n height: $device-height + $dial-center-diff;\n overflow: hidden;\n z-index: $overlay-z-index;\n}\n\n.emptyBody {\n width: 100%;\n height: 320px;\n display: flex;\n align-items: center;\n justify-content: center;\n\n p {\n width: 560px;\n text-align: center;\n transform: translateY(-48px);\n\n @include text-style(28px, 32px, -0.01em);\n\n color: $gray-70;\n }\n}\n\n.trackSlideScrolled {\n transform: translateY(48px);\n}\n","@import 'src/style/variables';\n\n$progress-backgroud-color: rgb(93 93 93);\n\n.progressBar {\n margin-left: 16px;\n height: 8px;\n width: 200px;\n background-color: $progress-backgroud-color;\n clip-path: inset(0 0 0 0 round 4px);\n transform: translateY(2px);\n}\n\n.progress {\n background-color: $green-light;\n clip-path: inset(0 0 0 0 round 4px);\n height: 100%;\n}\n","@import 'src/style/variables';\n\n.tracklistItem {\n @include transition-background-opacity;\n\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n}\n\n.imageContainer {\n margin-left: 40px;\n display: flex;\n justify-content: flex-end;\n}\n\n.image {\n height: 96px;\n width: 96px;\n}\n\n.explicit {\n background: $gray-70;\n width: 24px;\n height: 24px;\n font-size: 12px;\n line-height: 12px;\n border-radius: 2px;\n padding: 2px;\n margin-right: 6px;\n}\n\n.downloaded {\n margin-right: 4px;\n color: $green-light;\n flex: 0 0 24px;\n}\n\n.playedIcon {\n margin-left: 8px;\n color: $green-light;\n flex: 0 0 24px;\n}\n\n.trackInfo {\n width: 100%;\n margin-left: 40px;\n overflow: hidden;\n\n &.showImage {\n margin-left: 32px;\n }\n}\n\n.title {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n margin-bottom: 8px;\n opacity: 0.7;\n\n &.currentlyPlaying {\n color: $green-light;\n }\n}\n\n.subtitleContainer {\n height: 32px;\n display: flex;\n justify-content: left;\n align-items: center;\n\n .subtitle {\n opacity: 0.7;\n color: $white;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n}\n\n.addToQueue {\n padding: 34px 104px 34px 32px;\n display: flex;\n align-items: center;\n position: relative;\n\n .addToQueueIcon {\n transform: scale(2);\n color: $opacity-white-50;\n }\n}\n\n.active {\n background: $opacity-white-10;\n\n .title {\n opacity: 1;\n }\n\n .subtitleContainer {\n .subtitle {\n opacity: 0.7;\n }\n }\n\n .addToQueue {\n .addToQueueIcon {\n color: $white;\n }\n }\n\n &.pressed {\n opacity: 0.5;\n }\n}\n\n.pressed {\n background: $opacity-white-10;\n opacity: 0.5;\n}\n","@import 'src/style/variables';\n\n.box {\n background-color: $gray-70;\n padding: 4px;\n border-radius: 3px;\n margin-right: 8px;\n width: fit-content;\n}\n\n.text {\n @include text-style(18px, 16px, 0);\n\n color: $black;\n font-weight: bold;\n}\n","@import 'src/style/variables';\n\n.headerWrapper {\n height: 152px;\n width: 100%;\n padding-right: 72px;\n z-index: $overlay-z-index + 10;\n display: flex;\n\n @include transition-background;\n}\n\n.header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n @include transition-transform;\n\n &.smallHeader {\n transform: translateY(40px);\n }\n}\n","@import 'src/style/variables';\n\n$artwork-small-scale: 0.65;\n\n.infoWrapper {\n margin-left: 40px;\n width: 592px;\n display: flex;\n align-items: center;\n}\n\n.imageWrapper {\n @include transition-transform;\n\n transform-origin: top left;\n margin-right: 24px;\n\n &.smallHeader {\n transform: scale($artwork-small-scale);\n }\n}\n\n.titles {\n @include transition-transform;\n\n height: 88px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n &.moveLeftAndUp {\n transform: translate(calc(-1 * 96px * (1 - $artwork-small-scale)), -8px);\n }\n\n &.moveLeftAndDown {\n transform: translate(calc(-1 * 96px * (1 - $artwork-small-scale)), 8px);\n }\n\n &.moveUp {\n transform: translateY(-8px);\n }\n\n &.moveDown {\n transform: translateY(8px);\n }\n}\n\n.tracklistTitle {\n @include transition-transform;\n\n transform-origin: top left;\n width: 100%;\n height: 50px;\n\n @include text-style(44px, 48px, -0.03em);\n\n color: $white;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: bold;\n\n &.smallHeader {\n transform: scale(calc(32 / 44));\n }\n}\n\n.trackCount {\n @include transition-opacity-transform;\n\n width: 100%;\n height: 32px;\n\n @include text-style(28px, 32px, -0.01em);\n\n color: $opacity-white-70;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &.smallHeader {\n opacity: 0;\n transform: translateY(-12px);\n }\n}\n","@import 'src/style/variables';\n\n.actions {\n @include transition-transform;\n\n height: 80px;\n width: 100px;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &.smallHeader {\n transform: translateY(-12px);\n }\n}\n","@import 'src/style/variables';\n\n$small-header-diff: 48px;\n\n.queue {\n @include transition-transform;\n\n width: $device-width;\n height: $device-height + $small-header-diff;\n position: relative;\n overflow: hidden;\n\n &.smallHeader {\n transform: translateY(-$small-header-diff);\n }\n}\n","@import 'src/style/variables';\n\n$dial-center-diff: 68px;\n\n.container {\n position: relative;\n width: 100%;\n height: $device-height + $dial-center-diff;\n overflow: hidden;\n}\n\n.queueSlideScrolled {\n transform: translateY(48px);\n}\n","@import 'src/style/variables';\n\n$track-info-width: 528px;\n$track-info-margin-left: 32px;\n\n.queueListItem {\n @include transition-background-opacity;\n\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n}\n\n.imageContainer {\n margin-left: 40px;\n}\n\n.image {\n height: 96px;\n width: 96px;\n}\n\n.trackInfo {\n width: $track-info-width;\n margin-left: $track-info-margin-left;\n}\n\n.title {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n margin-bottom: 8px;\n opacity: 0.7;\n\n &.currentlyPlaying {\n color: $green-light;\n }\n}\n\n.subtitle {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.selected {\n background: $opacity-white-10;\n\n .title {\n opacity: 1;\n }\n\n &.pressed {\n opacity: 0.5;\n }\n}\n\n.pressed {\n background: $opacity-white-10;\n opacity: 0.5;\n}\n","@import 'src/style/variables';\n\n.headerWrapper {\n height: 152px;\n display: flex;\n padding-left: 40px;\n padding-right: 104px;\n @include transition-background;\n}\n\n.header {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n @include transition-transform-width;\n\n &.smallHeader {\n transform: translateY(38px);\n width: 134%;\n }\n}\n\n.queueTitle {\n @include transition-transform;\n\n transform-origin: top left;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: bold;\n\n &.smallHeader {\n transform: scale(calc(32 / 44));\n }\n}\n",".emptyBody {\n width: 100%;\n height: 330px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.infoText {\n width: 560px;\n text-align: center;\n transform: translateY(-48px);\n}\n","@import 'src/style/variables';\n\n.swipeDownHandle {\n position: absolute;\n top: 0;\n height: 10px;\n width: $device-width;\n z-index: $overlay-z-index;\n}\n","@import 'src/style/variables';\n\n$listening-wrapper-padding: 40px;\n\n.listeningWrapper {\n height: $device-height;\n width: $device-width;\n background: $black;\n padding: $listening-wrapper-padding;\n}\n\n.currentlyListening {\n background: radial-gradient(\n 100% 100% at 0% 100%,\n #000 27.85%,\n rgb(0 0 0 / 60%) 100%\n );\n}\n\n.centered {\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translateX(-50%) translateY(-50%);\n}\n\n.voiceConfirmation {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.voiceConfirmationText {\n margin-top: 40px;\n}\n\n.textConfirmation {\n overflow: hidden;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n}\n\n.jellyfish {\n position: absolute;\n bottom: $listening-wrapper-padding;\n left: $listening-wrapper-padding;\n height: 156px;\n}\n\n.fadeIn {\n animation: fade-in 1.5s forwards;\n}\n\n@keyframes fade-in {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n","@import 'src/style/variables';\n\n.confirmationIcon {\n display: block;\n color: $white;\n}\n","@import 'src/style/variables';\n\n.presetsBackground {\n height: $device-height;\n position: relative;\n width: $device-width;\n background: $black;\n}\n\n.presetIndicatorsWrapper {\n display: flex;\n justify-content: center;\n width: 100%;\n height: 85px;\n}\n\n.presetCardsWrapper {\n display: flex;\n justify-content: center;\n width: 100%;\n}\n","@import 'src/style/variables';\n\n.presetTopWrapper {\n width: 200px;\n margin: 0 auto;\n display: flex;\n flex-direction: column;\n align-items: center;\n z-index: $overlay-z-index + 1;\n}\n\n.presetIndicator {\n width: 80px;\n height: 4px;\n background: $opacity-white-30;\n clip-path: inset(0 0 0 0 round 0 0 4px 4px);\n}\n\n.presetNumber {\n margin: 16px 0 32px;\n\n .number {\n color: $opacity-white-70;\n }\n}\n\n.active {\n z-index: $overlay-z-index + 1;\n\n .presetNumber .number {\n color: $white;\n }\n\n .presetIndicator {\n background-color: $green-light;\n @include transition-background-color;\n }\n}\n","@import 'src/style/variables';\n\n.presetCard {\n width: 200px;\n margin: 0 auto;\n @include transition-opacity-transform(400ms, $advance-default-cubic);\n\n will-change: transform;\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.appear {\n transform: translateY(-350px);\n opacity: 0;\n}\n\n.appearActive {\n transform: translateY(0);\n opacity: 1;\n\n &.presetCard1 {\n transition-delay: 0ms;\n }\n\n &.presetCard2 {\n transition-delay: 50ms;\n }\n\n &.presetCard3 {\n transition-delay: 100ms;\n }\n\n &.presetCard4 {\n transition-delay: 150ms;\n }\n}\n\n.exit {\n transform: translateY(0);\n opacity: 1;\n}\n\n.exitActive {\n transform: translateY(-350px);\n opacity: 0;\n}\n","@import 'src/style/variables';\n\n$preset-card-width: 168px;\n\n.presetTitle {\n margin-top: 24px;\n display: flex;\n flex-direction: column;\n align-items: center;\n white-space: nowrap;\n\n div {\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0;\n text-align: center;\n }\n\n .title {\n width: $preset-card-width;\n color: $opacity-white-70;\n }\n\n .active {\n color: $white;\n }\n\n .subtitle {\n width: $preset-card-width;\n }\n}\n","@import 'src/style/variables';\n\n$preset-card-width: 168px;\n\n.presetPlaceholder {\n text-align: center;\n\n .title {\n width: $preset-card-width;\n color: $opacity-white-70;\n }\n\n .active {\n color: $white;\n }\n}\n","@import 'src/style/variables';\n\n$preset-card-width: 168px;\n\n.presetUnavailableTitles {\n margin-top: 24px;\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n","@import 'src/style/variables';\n\n.title {\n @include text-style(52px, 56px, -0.03em);\n\n margin-top: 24px;\n margin-bottom: 32px;\n font-weight: bold;\n}\n\n.subtitle {\n margin-top: 32px;\n flex-direction: column;\n align-items: center;\n\n @include text-style(44px, 48px, -0.02em);\n\n font-weight: bold;\n\n p {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n}\n\n.description {\n @include text-style(32px, 40px, -0.01em);\n\n margin-bottom: 40px;\n width: 540px;\n}\n\n.pairingCode {\n @include text-style(52px, 56px, -0.03em);\n\n color: $green-light;\n}\n\n.iconCheck {\n margin-top: 42px;\n margin-bottom: 42px;\n transform: scale(calc(104 / 16));\n color: $green-light;\n}\n\n.dialog {\n padding: 0 100px;\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n justify-content: center;\n height: $device-height;\n background-color: $opacity-black-90;\n}\n\n.logoSpotify {\n color: $white;\n}\n","@import 'src/style/variables';\n\n.errorModal {\n height: 365px;\n width: 560px;\n}\n\n.modalRoot {\n display: flex;\n flex-direction: column;\n align-items: center;\n\n .modalIcon {\n margin-top: 38px;\n transform: scale(2.5);\n }\n\n .iconNowPlaying {\n color: $green-light;\n }\n\n .modalTitle {\n margin-top: 23px;\n\n @include text-style(48px, 36px, -0.04em);\n\n font-weight: bold;\n color: $green-light;\n }\n\n .modalError {\n color: $red-light;\n }\n\n .modalText {\n margin-top: 24px;\n color: $black;\n\n @include text-style(32px, 40px, -0.02em);\n\n text-align: center;\n width: 485px;\n\n .boldText {\n font-weight: bold;\n }\n }\n}\n","@import 'src/style/variables';\n\n.legacyModal {\n z-index: $overlay-z-index;\n position: absolute;\n display: flex;\n width: 800px;\n height: 480px;\n background-color: $backdrop-overlay;\n}\n\n.content {\n position: relative;\n margin: auto;\n border-radius: 15px;\n box-shadow: 0 0 15px 2px black;\n background-color: $white;\n}\n\n.icon {\n margin-top: -12px;\n position: absolute;\n right: -74px;\n color: $white;\n}\n","@import 'src/style/variables';\n\n.nonSupportedType {\n height: 365px;\n width: 560px;\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.icon {\n margin-top: 59px;\n color: $black;\n}\n\n.text {\n margin-top: 24px;\n color: $black;\n\n @include text-style(36px, 40px, -0.02em);\n\n text-align: center;\n width: 420px;\n font-weight: bold;\n}\n",".icon {\n margin-bottom: 10px;\n}\n","@import 'src/style/variables';\n\n$container-width: 624px;\n\n.noNetworkWrapper {\n display: grid;\n height: $device-height;\n width: $device-width;\n background-color: $black;\n\n & > * {\n margin: auto;\n }\n}\n\n.noNetwork {\n display: grid;\n width: $container-width;\n gap: 24px;\n\n & > * {\n margin: auto;\n }\n}\n\n.noNetworkContent {\n display: grid;\n text-align: center;\n gap: 16px;\n\n & > * {\n margin: auto;\n }\n}\n","@import 'src/style/variables';\n\n.phoneCall {\n height: $device-height;\n position: relative;\n width: $device-width;\n display: flex;\n flex-direction: column;\n}\n\n.infoWrapper {\n width: 100%;\n height: 345px;\n display: flex;\n flex-direction: column;\n align-items: center;\n padding-top: 58px;\n\n img {\n width: 64px;\n height: 64px;\n border-radius: 50%;\n margin-top: 0;\n }\n\n svg,\n img {\n margin-bottom: 24px;\n }\n\n .title,\n .subtitle {\n margin-bottom: 16px;\n width: 624px;\n text-align: center;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .subtitle {\n height: 40px;\n }\n}\n\n.actions {\n width: 100%;\n height: 148px;\n display: flex;\n margin-left: 173px;\n}\n","@import 'src/style/variables';\n\n.enter {\n opacity: 0;\n}\n\n.enterActive {\n opacity: 1;\n\n @include transition-opacity;\n}\n\n.exit {\n opacity: 1;\n}\n\n.exitActive {\n opacity: 0;\n\n @include transition-opacity;\n}\n\n.timer {\n width: 100%;\n height: 40px;\n display: flex;\n justify-content: center;\n}\n\n.timerDiv {\n width: 90px;\n height: 40px;\n}\n","@import 'src/style/variables';\n\n.enter {\n transform: translateX(150px);\n opacity: 0;\n}\n\n.enterActive {\n transform: translateX(0);\n opacity: 1;\n @include transition-opacity-transform;\n}\n\n.exit {\n transform: translateX(0);\n opacity: 1;\n}\n\n.exitActive {\n transform: translateX(150px);\n opacity: 0;\n @include transition-opacity-transform;\n}\n\n.decline {\n margin-left: 40px;\n}\n","@import 'src/style/variables';\n\n.toDecline {\n transform: translateX(123.5px);\n opacity: 1;\n\n svg {\n transform: rotate(135deg);\n margin-top: 10px;\n @include transition-transform;\n\n path {\n fill: $negative;\n @include transition-fill;\n }\n }\n @include transition-opacity-transform;\n}\n","@import 'src/style/variables';\n\n.promo {\n width: 800px;\n height: 480px;\n display: flex;\n}\n\n.textAndConfirm {\n background: $white;\n height: 100%;\n width: 422px;\n padding: 40px 0 32px 40px;\n display: flex;\n justify-content: space-between;\n flex-direction: column;\n}\n\n.text {\n color: $aubergine;\n max-width: 328px;\n}\n\n.subText {\n color: $aubergine;\n max-width: 315px;\n}\n\n.confirmButton {\n background-color: $aubergine;\n color: $white;\n}\n\n.imageAndOption {\n background: $pink;\n height: 100%;\n width: 378px;\n display: flex;\n flex-direction: column;\n}\n\n.image {\n border-radius: 16px;\n width: 458px;\n height: 274.8px;\n box-shadow: 0 39px 44px -30px rgb(0 0 0 / 80%);\n margin-top: 56px;\n margin-left: -30px;\n}\n\n.optionButtonWrapper {\n width: 100%;\n margin-top: 29px;\n display: flex;\n justify-content: flex-end;\n padding-right: 40px;\n}\n","@import 'src/style/variables';\n\n.screen {\n background: $aubergine;\n height: $device-height;\n width: $device-width;\n padding: 32px 48px 40px;\n}\n\n.title {\n color: $pink;\n\n @include text-style(120px, 120px, -0.04em);\n\n width: 704px;\n}\n\n.subtitle {\n color: $pink;\n\n @include text-style(36px, 48px, -0.02em);\n\n max-width: 408px;\n}\n\n.content {\n margin-top: 32px;\n width: 704px;\n display: flex;\n justify-content: space-between;\n}\n\n.texts {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n}\n\n.qrContainer {\n height: 256px;\n width: 256px;\n background-color: white;\n border-radius: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.needHelp {\n color: $pink;\n\n @include text-style(36px, 40px, -0.02em);\n\n font-weight: bold;\n}\n","@import 'src/style/variables';\n\n.screen {\n background: $aubergine;\n height: $device-height;\n width: $device-width;\n padding: 32px 48px 40px;\n}\n\n.subtitle {\n color: $pink;\n\n @include text-style(36px, 48px, -0.03em);\n\n max-width: 704px;\n}\n\n.texts {\n height: 300px;\n}\n\n.content {\n width: 704px;\n height: 410px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n}\n\n.backToSetup {\n color: $pink;\n margin-top: 20px;\n\n @include text-style(36px, 40px, -0.02em);\n\n font-weight: bold;\n}\n\n.white {\n color: $white;\n}\n","@import 'src/style/variables';\n\n.screen {\n background: $aubergine;\n height: $device-height;\n width: $device-width;\n padding: 32px 48px 40px;\n}\n\n.title {\n color: $pink;\n\n @include text-style(120px, 120px, -0.04em);\n\n width: 704px;\n}\n\n.subtitle {\n color: $pink;\n margin-top: 32px;\n\n @include text-style(36px, 48px, -0.02em);\n\n max-width: 700px;\n}\n","@import 'src/style/variables';\n\n.screen {\n background: $aubergine;\n height: $device-height;\n width: $device-width;\n padding: 32px 48px 40px;\n}\n\n.content {\n height: 260px;\n display: flex;\n justify-content: space-between;\n flex-direction: column;\n}\n\n.title {\n margin-bottom: 32px;\n color: $pink;\n\n @include text-style(120px, 120px, -0.04em);\n}\n\n.texts {\n color: $pink;\n width: 650px;\n\n @include text-style(36px, 48px, -0.02em);\n}\n\n.pinCode {\n color: $pink;\n\n @include text-style(72px, 72px, -0.03em);\n}\n","@import 'src/style/variables';\n\n.screen {\n height: $device-height;\n width: $device-width;\n background-color: $pink;\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-direction: column;\n}\n\n.title {\n color: $aubergine;\n margin-top: 32px;\n margin-left: 40px;\n\n @include text-style(120px, 120px, -0.04em);\n}\n\n.subtitle {\n color: $aubergine;\n\n @include text-style(72px, 72px, -0.03em);\n}\n\n.buttonBackground {\n background: $aubergine;\n display: flex;\n align-items: center;\n justify-content: space-around;\n width: 88px;\n height: 88px;\n border-radius: 50%;\n}\n\n.button {\n transform: scale(3);\n color: $pink;\n}\n\n.subtitleAndButton {\n width: 720px;\n margin-left: 40px;\n margin-right: 48px;\n margin-bottom: 28px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n","@import 'src/style/variables';\n\n.screen {\n background: $aubergine;\n height: $device-height;\n width: $device-width;\n padding: 32px 48px 40px;\n}\n\n.content {\n height: 260px;\n display: flex;\n justify-content: space-between;\n flex-direction: column;\n}\n\n.title {\n color: $pink;\n margin-bottom: 32px;\n\n @include text-style(120px, 120px, -0.04em);\n}\n\n.subtitle {\n color: $pink;\n\n @include text-style(36px, 48px, -0.02em);\n\n max-width: 700px;\n}\n\n.progress {\n color: $pink;\n\n @include text-style(72px, 72px, -0.03em);\n}\n","@import 'src/style/variables';\n\n.screen {\n background-color: $aubergine;\n height: $device-height;\n width: $device-width;\n padding: 32px 48px 40px;\n}\n\n.title {\n color: $pink;\n margin-bottom: 32px;\n\n @include text-style(120px, 120px, -0.04em);\n}\n\n.subtitle {\n color: $pink;\n\n @include text-style(36px, 48px, -0.03em);\n\n max-width: 704px;\n}\n","@import 'src/style/variables';\n\n.screen {\n background: $aubergine;\n height: $device-height;\n width: $device-width;\n padding: 32px 48px 40px;\n}\n\n.title {\n color: $pink;\n\n @include text-style(120px, 120px, -0.04em);\n\n width: 704px;\n}\n\n.subtitle {\n color: $pink;\n margin-top: 32px;\n\n @include text-style(36px, 48px, -0.02em);\n\n max-width: 700px;\n}\n","@import 'src/style/variables';\n\n.settingsLayer {\n position: absolute;\n width: $device-width;\n\n @include transition-opacity-transform;\n\n background-color: $black;\n}\n\n.transparent {\n background-color: $opacity-black-90;\n z-index: 1;\n}\n","@import 'src/style/variables';\n\n.submenu {\n width: $device-width;\n height: $device-height;\n}\n","@import 'src/style/variables';\n\n.header {\n position: sticky;\n height: 144px;\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.headerDetails {\n margin-left: 40px;\n width: 100%;\n display: flex;\n align-items: center;\n\n svg {\n margin-right: 16px;\n }\n}\n","@import 'src/style/variables';\n\n.item {\n @include transition-background-opacity;\n\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0 32px;\n height: 96px;\n color: $white;\n opacity: 0.7;\n\n @include transition-margin-right-opacity;\n}\n\n.disabled {\n opacity: 0.3;\n}\n\n.pressed {\n background: $opacity-white-10;\n opacity: 0.5;\n}\n\n.onOffToggle {\n text-align: center;\n margin-right: 13px;\n color: $white;\n opacity: 0.5;\n @include transition-transform;\n}\n\n.keyValueValue {\n @include transition-transform;\n\n color: $white;\n}\n\n.movedForDial {\n transform: translateX(-56px);\n}\n\n.green {\n color: $green-light;\n opacity: 0.7;\n}\n\n.white70 {\n color: $white-70;\n}\n\n.active:not(.disabled) {\n background: $opacity-white-10;\n opacity: 1;\n\n &.pressed {\n opacity: 0.5;\n }\n\n .onOffToggle {\n opacity: 1;\n }\n}\n","@import 'src/style/variables';\n\n.setting {\n @include transition-background-opacity;\n\n display: flex;\n align-items: center;\n width: 100%;\n height: 128px;\n font-weight: bold;\n}\n\n.icon {\n margin-left: 48px;\n min-width: 64px;\n max-width: 64px;\n max-height: 64px;\n display: flex;\n justify-content: center;\n margin-right: 48px;\n opacity: 0.7;\n}\n\n.label {\n @include transition-opacity;\n\n color: $white;\n opacity: 0.7;\n width: 514px;\n font-weight: bold;\n\n @include text-style(36px, 40px, -0.02em);\n}\n\n.active:not(.disabled) {\n background: $opacity-white-10;\n\n .label {\n opacity: 1;\n }\n\n .icon {\n opacity: 1;\n }\n\n &.pressed {\n opacity: 0.5;\n }\n}\n\n.pressed {\n background: $opacity-white-10;\n opacity: 0.5;\n}\n\n.disabled {\n > div {\n opacity: 0.3;\n }\n}\n\n.micStatus {\n text-align: center;\n\n @include text-style(36px, 40px, -0.02em);\n\n margin-right: 72px;\n color: $white;\n opacity: 0.5;\n}\n\n.green {\n color: $green-light;\n opacity: 1;\n}\n\n.white {\n color: $white;\n opacity: 1;\n}\n","@import 'src/style/variables';\n\n.mainMenu {\n background-color: $black;\n height: $device-height;\n}\n\n.header {\n background: $black;\n display: flex;\n align-items: center;\n width: 100%;\n height: 144px;\n\n p {\n margin-left: 40px;\n padding: 0;\n color: $white;\n font-weight: bold;\n\n @include text-style(44px, 49px, -0.02em);\n }\n}\n","@import 'src/style/variables';\n\n$support-text-gray: #7f7f7f;\n\n.aviHeader {\n position: sticky;\n background-color: $black;\n z-index: $overlay-z-index + 20;\n height: 128px;\n width: 100%;\n display: flex;\n align-items: center;\n\n .iconLeft {\n color: $white;\n transform: scale(3);\n position: absolute;\n left: 20px;\n width: 10%;\n margin-left: 16px;\n }\n\n span {\n margin-left: 40px;\n color: $white;\n\n @include text-style(44px, 48px, -0.02em);\n }\n}\n\n.aviContainer {\n height: 352px;\n overflow: scroll;\n background: $black;\n\n .notification {\n color: $white;\n box-sizing: border-box;\n height: 96px;\n margin-bottom: 40px;\n padding-left: 40px;\n padding-right: 72px;\n width: $device-width;\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-top: 1px solid rgb(255 255 255 / 20%);\n border-bottom: 1px solid rgb(255 255 255 / 20%);\n font-weight: 700;\n margin-right: 72px;\n @include text-style(36px, 48px, -0.02em);\n @include transition-background-border;\n\n &.pressed {\n color: $white-70;\n background: rgb(255 255 255 / 5%);\n }\n\n &.focused {\n background: rgb(255 255 255 / 10%);\n border: none;\n }\n\n &.pressed.focused {\n background: rgb(255 255 255 / 5%);\n border: none;\n }\n }\n\n .texts {\n box-sizing: border-box;\n width: 100%;\n padding: 16px 40px 48px;\n color: $gray-85;\n\n p,\n ul,\n span {\n width: 100%;\n }\n\n p {\n @include text-style(32px, 48px, -0.03em);\n }\n\n .intro {\n color: $gray-80;\n margin-bottom: 36px;\n\n svg {\n transform: translateY(6px);\n }\n }\n\n .thingsList {\n margin-bottom: 24px;\n }\n\n ul {\n margin-bottom: 32px;\n\n li {\n @include text-style(32px, 40px, -0.02em);\n\n font-weight: 700;\n margin-bottom: 14px;\n }\n }\n\n .support {\n @include text-style(28px, 32px, -0.01em);\n\n margin: 0 8px;\n color: $support-text-gray;\n\n span {\n font-weight: 700;\n }\n }\n }\n}\n\n.onOff {\n color: $positive;\n}\n\n::-webkit-scrollbar {\n width: 0;\n height: 0;\n background: transparent; /* make scrollbar transparent */\n}\n","@import 'src/style/variables';\n\n.licenses {\n width: $device-width;\n height: $device-height;\n background-color: $white;\n color: $black;\n padding: 42px;\n}\n\n.header {\n width: $device-width;\n margin-bottom: 42px;\n}\n\n$line-height: 12;\n\n.textAsList {\n white-space: pre-wrap;\n font-size: 12px;\n font-family: monospace;\n line-height: $line-height + px;\n}\n\n:export {\n line-height: $line-height;\n}\n","@import 'src/style/variables';\n\n.greenCircle {\n stroke-dasharray: 440;\n stroke-dashoffset: 1000;\n stroke: $green-light;\n stroke-linecap: round;\n fill: transparent;\n transform-origin: 50% 50%;\n}\n\n.spin {\n display: flex;\n animation: rotate 1s infinite linear;\n}\n\n@keyframes rotate {\n to {\n transform: rotate(360deg);\n }\n}\n","@import 'src/style/variables';\n\n.devOptions {\n background: $black;\n color: $white;\n position: relative;\n top: 0;\n left: 0;\n width: 100%;\n height: $device-height;\n padding: 24px;\n overflow: scroll;\n}\n\n.title {\n font-size: 35px;\n font-weight: 700;\n margin-bottom: 20px;\n}\n\n.devOptionsToggle + span {\n transform: scale(2);\n margin-left: 16px;\n margin-right: 16px;\n}\n\n.options {\n display: grid;\n grid-template-columns: 320px 320px;\n grid-template-rows: repeat(4, 86px);\n grid-gap: 22px;\n\n label {\n background: rgb(255 255 255 / 20%);\n display: flex;\n justify-content: flex-start;\n padding: 0 24px;\n align-items: center;\n border-radius: 24px;\n\n span {\n font-size: 18px;\n font-weight: bold;\n padding-right: 8px;\n color: $white;\n }\n\n p {\n font-size: 18px;\n font-weight: bold;\n padding-right: 8px;\n }\n\n span:last-of-type {\n padding-left: 0;\n }\n }\n\n label:nth-child(-n + 2) {\n display: flex;\n flex-direction: row-reverse;\n justify-content: space-between;\n }\n}\n\n.requestTipBtn.requestTipBtn {\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 20px;\n}\n\n.devOptionsCounting {\n section {\n display: flex;\n justify-content: space-between;\n width: 88px;\n\n button {\n margin-left: 6px;\n padding: 10px;\n border-radius: 5px;\n text-align: center;\n color: $white;\n font-size: 30px;\n cursor: pointer;\n }\n }\n}\n\n.statsTable {\n margin-top: 10px;\n\n td {\n padding-right: 20px;\n }\n}\n",".scrollContainer {\n height: 352px;\n overflow: scroll;\n}\n\n.text {\n padding: 40px;\n}\n\n.submenuItemWrapper {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n","@import 'src/style/variables';\n\n.phoneConnection {\n background: $black;\n width: $device-width;\n height: $device-height;\n}\n\n.phoneConnectionItem {\n @include transition-background-opacity;\n\n width: 100%;\n height: 100%;\n padding-left: 32px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n .titles {\n display: flex;\n flex-direction: column;\n width: 520px;\n }\n}\n\n.addMorePhone {\n height: 96px !important;\n}\n\n.title {\n @include text-style(36px, 40px, -0.02em);\n\n color: $opacity-white-50;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.subtitle {\n @include text-style(28px, 32px, -0.02em);\n\n display: flex;\n vertical-align: center;\n color: $opacity-white-50;\n margin-top: 10px;\n}\n\n.subtitleText {\n margin-right: 24px;\n}\n\n.menuButton {\n @include transition-margin-right;\n\n width: 228px;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n\n .menuIcon {\n transform: scale(2);\n color: $opacity-white-50;\n }\n}\n\n.active {\n background: $opacity-white-10;\n\n .title {\n color: $white;\n }\n\n .menuButton {\n margin-right: 40px;\n\n .menuIcon {\n color: $white;\n }\n }\n\n &.pressed {\n opacity: 0.5;\n }\n}\n\n.connected {\n color: $green-light;\n}\n\n.pressed {\n opacity: 0.5;\n background: $opacity-white-10;\n}\n","@import '../../../../style/variables';\n\n.phoneConnectionContextMenu {\n background: $black;\n width: $device-width;\n height: $device-height;\n}\n\n.item {\n @include transition-background;\n\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n}\n\n.label {\n margin-left: 54px;\n color: $opacity-white-50;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.icon {\n margin-top: 7px;\n margin-left: 54px;\n transform: scale(2);\n color: $opacity-white-50;\n}\n\n.header {\n margin-left: 54px;\n position: sticky;\n height: 144px;\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n text-align: left;\n}\n\n.headerDetails {\n width: 100%;\n display: flex;\n flex-direction: column;\n}\n\n.subtitle {\n display: flex;\n vertical-align: center;\n color: $opacity-white-50;\n margin-top: 10px;\n}\n\n.connected {\n color: $green-light;\n}\n\n.pressed {\n background: $opacity-white-10;\n opacity: 0.5;\n}\n\n.active {\n background: $opacity-white-10;\n\n .label {\n color: $white;\n\n .menu {\n color: $white;\n }\n }\n\n .icon {\n color: $white;\n }\n}\n","@import 'src/style/variables';\n\n.powerTutorial {\n width: $device-width;\n height: $device-height;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n\n.title {\n margin-bottom: 32px;\n}\n\n.description {\n text-align: center;\n max-width: 560px;\n}\n","@import 'src/style/variables';\n\n.factoryReset {\n width: $device-width;\n height: $device-height;\n padding: 68px 112px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\n.description {\n @include text-style(32px, 40px, 0);\n\n margin-bottom: 32px;\n text-align: center;\n}\n\n.buttons {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n","@import 'src/style/variables';\n\n.restartConfirm {\n width: $device-width;\n height: $device-height;\n padding: 116px 120px;\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.title {\n @include text-style(44px, 48px, -0.02em);\n\n margin-bottom: 32px;\n font-weight: bold;\n}\n\n.description {\n @include text-style(32px, 40px, 0);\n\n margin-bottom: 40px;\n}\n","@import 'src/style/variables';\n\n.nextButton {\n background-color: $white-30;\n color: $white;\n height: 128px;\n width: 128px;\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.pressed {\n opacity: 0.7;\n}\n\n.buttonContainer {\n justify-content: flex-end;\n display: flex;\n}\n\n.background {\n height: $device-height;\n width: 100%;\n background: linear-gradient(\n 0deg,\n rgb(11 99 202 / 20%),\n rgb(11 99 202 / 20%)\n ),\n radial-gradient(\n 100% 100% at 0% 0%,\n #000 27.85%,\n rgb(255 255 255 / 10%) 100%\n );\n}\n\n.tipsOnDemand {\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n box-sizing: border-box;\n padding: 32px 48px 32px 40px;\n will-change: transform;\n}\n\n.error {\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n justify-content: space-between;\n padding: 72px 120px;\n height: 100%;\n}\n\n.tipOnDemandEnter {\n opacity: 0;\n transform: translateX(40px);\n}\n\n.tipOnDemandEnterActive {\n @include transition-opacity-transform(300ms, ease-in);\n\n opacity: 1;\n transform: translateX(0);\n}\n\n.tipOnDemandExit {\n opacity: 1;\n}\n\n.tipOnDemandExitActive {\n @include transition-opacity-transform(300ms, ease-out);\n\n opacity: 0;\n transform: translateX(-40px);\n}\n","@import 'src/style/variables';\n\n.header {\n position: sticky;\n background-color: $black;\n z-index: $overlay-z-index + 20;\n height: 128px;\n width: 100%;\n display: flex;\n align-items: center;\n\n span {\n margin-left: 40px;\n color: $white;\n }\n}\n\n.container {\n height: 352px;\n overflow: scroll;\n background: $black;\n\n .notification {\n height: 96px;\n margin-bottom: 40px;\n padding-left: 40px;\n padding-right: 72px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-weight: 700;\n @include text-style(36px, 48px, -0.02em);\n @include transition-background-border;\n\n background: $white-10;\n\n &.pressed {\n color: $white-70;\n background: rgb(255 255 255 / 5%);\n border: none;\n }\n }\n\n .text {\n color: $gray-80;\n padding-left: 40px;\n padding-right: 40px;\n }\n}\n\n::-webkit-scrollbar {\n width: 0;\n height: 0;\n background: transparent; /* make scrollbar transparent */\n}\n","@import 'src/style/variables';\n\n$transition-duration: 800ms;\n$transition-delay: 1000ms;\n$jellyfish-wrapper-padding: 40px;\n\n.learnVoiceStep {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: 400px;\n margin: 40px 128px 40px 40px;\n}\n\n.headerAndTitle {\n position: relative;\n}\n\n.transition {\n position: absolute;\n}\n\n.voiceActive {\n position: absolute;\n transition: opacity 200ms;\n opacity: 0.1;\n}\n\n.header {\n color: $green;\n font-weight: bold;\n margin-bottom: 24px;\n}\n\n.errorContent {\n margin-bottom: 32px;\n}\n\n.animationAppear {\n opacity: 0;\n transform: translateY(24px);\n}\n\n.animationAppearActive {\n @include transition-opacity-transform(\n $transition-duration,\n $easing-function-ease-out-cubic,\n $transition-delay\n );\n\n opacity: 1;\n transform: translateY(0);\n}\n\n.animationAppearDone {\n opacity: 1;\n transform: translateY(0);\n}\n\n.animationEnter {\n opacity: 0;\n transform: translateY(24px);\n}\n\n.animationEnterActive {\n @include transition-opacity-transform(\n $transition-duration,\n $easing-function-ease-out-cubic,\n $transition-delay\n );\n\n opacity: 1;\n transform: translateY(0);\n}\n\n.animationEnterDone {\n opacity: 1;\n transform: translateY(0);\n}\n\n.animationExit {\n opacity: 1;\n}\n\n.animationExitActive {\n @include transition-opacity(500ms, $easing-function-ease-out-cubic);\n\n opacity: 0;\n}\n\n.animationExitDone {\n opacity: 0;\n}\n\n.skipOrJellyfish {\n width: 128px;\n height: 128px;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.jellyfishContainer {\n position: absolute;\n bottom: $jellyfish-wrapper-padding;\n left: $jellyfish-wrapper-padding;\n}\n","@import 'src/style/variables';\n\n.skipButtonWrapper {\n color: $gray-70;\n border: 4px solid $gray-20;\n border-radius: 50%;\n width: 128px;\n height: 128px;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.pressed {\n opacity: 0.5;\n}\n\n.animationEnter {\n opacity: 0;\n}\n\n.animationEnterActive {\n @include transition-opacity(800ms, ease-out, 1500ms);\n\n opacity: 1;\n}\n\n.animationEnterDone {\n opacity: 1;\n}\n","@import 'src/style/variables';\n\n.animationExit {\n opacity: 1;\n}\n\n.animationExitActive {\n opacity: 0;\n transition: opacity 1300ms $easing-function-ease-out-cubic;\n}\n\n.animationExitDone {\n opacity: 0;\n}\n","@import 'src/style/variables';\n\n.start {\n height: $device-height;\n width: $device-width;\n background-color: $pink;\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-direction: column;\n padding: 32px 40px;\n}\n\n.title {\n @include text-style(120px, 120px, -0.04em);\n\n color: $aubergine;\n}\n\n.tourAction {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n .subtitle {\n @include text-style(72px, 72px, -0.03em);\n\n color: $aubergine;\n }\n\n .arrowWrapper {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 88px;\n height: 88px;\n border-radius: 50%;\n background: $aubergine;\n\n svg {\n transform: scale(3);\n color: $pink;\n }\n }\n}\n","@import 'src/style/variables';\n\n.learnTactile {\n height: $device-height;\n width: $device-width;\n background-color: transparent;\n position: relative;\n}\n\n.blockTouch {\n height: $device-height;\n width: $device-width;\n position: absolute;\n top: 0;\n z-index: $onboarding-tactile-z-index + 1;\n background-color: transparent;\n}\n","@import 'src/style/variables';\n\n.banner {\n z-index: $onboarding-tactile-z-index;\n position: absolute;\n width: 351px;\n height: 96px;\n right: -45px;\n bottom: 24px;\n background: $white;\n border-radius: 48px;\n display: flex;\n align-items: center;\n padding: 0 40px;\n\n span {\n color: $black;\n font-weight: 700;\n\n @include text-style(36px, 40px, -0.02em);\n }\n\n svg {\n color: $green;\n margin-left: 30px;\n animation: ani 1.7s infinite;\n }\n}\n\n@keyframes ani {\n 0% {\n transform: scale(2.6);\n }\n\n 50% {\n transform: scale(2.6) translateX(8px);\n }\n\n 100% {\n transform: scale(2.6);\n }\n}\n","@import 'src/style/variables';\n\n.outerCircle {\n width: 432px;\n height: 432px;\n background: $white;\n z-index: $onboarding-tactile-z-index;\n position: absolute;\n left: 688px;\n top: -61px;\n border-radius: 50%;\n}\n\n.innerCircle {\n width: 300px;\n height: 300px;\n background: $green;\n z-index: $onboarding-tactile-z-index + 1;\n position: absolute;\n border-radius: 50%;\n animation-name: pulse;\n animation-duration: 1000ms;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n top: 65px;\n right: 65px;\n}\n\n@keyframes pulse {\n from {\n opacity: 1;\n transform: scale(1);\n }\n\n to {\n opacity: 0;\n transform: scale(1.44);\n }\n}\n","@import 'src/style/variables';\n\n.outerCircle {\n width: 432px;\n height: 432px;\n background: $white;\n z-index: $onboarding-tactile-z-index;\n position: absolute;\n left: 688px;\n top: -61px;\n border-radius: 50%;\n}\n\n.innerCircle {\n width: 300px;\n height: 300px;\n background: $gray-15;\n z-index: $onboarding-tactile-z-index + 1;\n position: absolute;\n border: 1px solid black;\n border-radius: 50%;\n animation-name: spin;\n animation-duration: 5000ms;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n top: 65px;\n right: 65px;\n}\n\n.dot1 {\n position: absolute;\n top: 25px;\n left: 0;\n width: 20px;\n height: 20px;\n background: $green;\n border-radius: 50%;\n}\n\n.dot2 {\n position: absolute;\n top: 290px;\n left: 240px;\n width: 20px;\n height: 20px;\n background: $green;\n border-radius: 50%;\n}\n\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n}\n","@import 'src/style/variables';\n\n.noInteraction {\n height: $device-height;\n width: $device-width;\n position: absolute;\n top: 0;\n z-index: $onboarding-tactile-z-index + 1;\n\n @include rounded-corners;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n justify-content: center;\n background-color: $opacity-black-90;\n}\n","@font-face {\n font-family: spotify-circular;\n src: url('./fonts/CircularSpUIv3T-Book.woff2') format('woff2');\n font-weight: 400;\n font-style: normal;\n}\n\n@font-face {\n font-family: spotify-circular;\n src: url('./fonts/CircularSpUIv3T-Bold.woff2') format('woff2');\n font-weight: 700;\n font-style: normal;\n}\n\n@font-face {\n font-family: spotify-circular;\n src: url('./fonts/CircularSpUIv3T-Black.woff2') format('woff2');\n font-weight: 900;\n font-style: normal;\n}\n"],"names":[],"sourceRoot":""}
--------------------------------------------------------------------------------