├── 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 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /webapp/images/bluetooth-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /webapp/index.html: -------------------------------------------------------------------------------- 1 | Superbird
appstart
-------------------------------------------------------------------------------- /webapp/images/menu-dots.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /webapp/images/round-corners.svg: -------------------------------------------------------------------------------- 1 | 2 | 6 | 10 | 14 | 18 | -------------------------------------------------------------------------------- /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 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /webapp/images/no-connection.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /webapp/images/setup-qr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /webapp/images/more-48.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 48/more-48 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /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 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 37 | 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, 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") 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, 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')\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":""} --------------------------------------------------------------------------------