home-atom 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/dist/client/.vite/manifest.json +33 -33
  2. package/dist/client/_next/static/chunks/{app-top-nav-Dh0jEt8u.js → app-top-nav-Co7RIixU.js} +1 -1
  3. package/dist/client/_next/static/chunks/{index-hn3AiVww.js → index-BUxxgh38.js} +3 -3
  4. package/dist/client/_next/static/chunks/{layout-segment-context-DRM8YCgm.js → layout-segment-context-D_cL7vkY.js} +1 -1
  5. package/dist/client/_next/static/chunks/manage-profiles-modal-CWi3qgd4.js +1 -0
  6. package/dist/client/_next/static/chunks/netflix-browser-BrXQctI5.js +2 -0
  7. package/dist/client/_next/static/chunks/playback-activity-66FeikYZ.js +1 -0
  8. package/dist/client/_next/static/chunks/playback-activity-track-switcher-BzvHiv7c.js +1 -0
  9. package/dist/client/_next/static/chunks/{step-forward-CV8I5pPb.js → provider-registry-CWHfJn3B.js} +1 -1
  10. package/dist/client/_next/static/chunks/spotify-app-CJimeMR0.js +1 -0
  11. package/dist/client/_next/static/chunks/storefront-CCeanBPs.js +1 -0
  12. package/dist/client/_next/static/css/index.8o3Y-jts.css +1 -0
  13. package/dist/client/_next/static/css/layout.D2NsWbhP.css +1 -0
  14. package/dist/client/_next/static/css/layout.D4D5fsiD.css +1 -0
  15. package/dist/client/_next/static/css/manage-profiles-modal.BOKESpxI.css +1 -0
  16. package/dist/client/vinext-client-entry-manifest.json +1 -1
  17. package/dist/server/BUILD_ID +1 -1
  18. package/dist/server/__vite_rsc_assets_manifest.js +35 -35
  19. package/dist/server/_next/static/{app-page-cache-DcrtN14Y.js → app-page-cache-CQaSjBaF.js} +1 -1
  20. package/dist/server/_next/static/{app-page-cache-render-DoCquoNb.js → app-page-cache-render-Dty3aMiv.js} +1 -1
  21. package/dist/server/_next/static/{app-route-handler-dispatch-Be2YIqVp.js → app-route-handler-dispatch-DCSrhGNV.js} +1 -1
  22. package/dist/server/_next/static/{cache-headers-BQ-QuzWN.js → cache-headers-lY59goLh.js} +1 -1
  23. package/dist/server/_next/static/css/index.8o3Y-jts.css +1 -0
  24. package/dist/server/_next/static/css/layout.D2NsWbhP.css +1 -0
  25. package/dist/server/_next/static/css/layout.D4D5fsiD.css +1 -0
  26. package/dist/server/_next/static/database-D79CeUrn.js +161 -0
  27. package/dist/server/_next/static/{db-BE1J0NNS.js → db-x8J3Vuoa.js} +1 -1
  28. package/dist/server/_next/static/{downloader-DgnjNL5T.js → downloader-0G-gq1D-.js} +3 -3
  29. package/dist/server/_next/static/episode-sync-Ct5CeY25.js +1 -0
  30. package/dist/server/_next/static/{isr-decision-D1zHgPSI.js → isr-decision-BOA4L6nr.js} +1 -1
  31. package/dist/server/_next/static/netflix-page-Cpp2PgD1.js +1 -0
  32. package/dist/server/_next/static/{page-Cs-erYTy.js → page-BvzzZVuW.js} +1 -1
  33. package/dist/server/_next/static/{page-DlBGATQp.js → page-C27wjUYW.js} +1 -1
  34. package/dist/server/_next/static/{page-DlRXyzSQ.js → page-Rnpx_OjW.js} +1 -1
  35. package/dist/server/_next/static/{providers-B3YELr_F.js → providers-DwLUa_U_.js} +13 -13
  36. package/dist/server/_next/static/{providers-CMBIwNGs.js → providers-_uOQh6hB.js} +1 -1
  37. package/dist/server/_next/static/{request-profile-B1yGQ0l6.js → request-profile-ClcH0i0T.js} +1 -1
  38. package/dist/server/_next/static/route-4xkmbpc4.js +1 -0
  39. package/dist/server/_next/static/{route-CeVsDcbj2.js → route-B0L_rsrg2.js} +1 -1
  40. package/dist/server/_next/static/{route-xtz48fti.js → route-B6q-wR2F.js} +1 -1
  41. package/dist/server/_next/static/{route-DXTJyFWD.js → route-B6zrlXB5.js} +1 -1
  42. package/dist/server/_next/static/{route-CNNiXZoM2.js → route-B99Pvusz2.js} +1 -1
  43. package/dist/server/_next/static/route-B9YeBtG6.js +1 -0
  44. package/dist/server/_next/static/route-BHbJ9hFI2.js +1 -0
  45. package/dist/server/_next/static/{route-mzLdjDCs2.js → route-BR3Y_0V42.js} +1 -1
  46. package/dist/server/_next/static/{route-Cim7D4XQ.js → route-BaGo5TEW.js} +1 -1
  47. package/dist/server/_next/static/{route-DslPFTAK.js → route-BczKcyvV.js} +1 -1
  48. package/dist/server/_next/static/{route-B0WNLJZp.js → route-BiSvZr_s.js} +1 -1
  49. package/dist/server/_next/static/{route-Dbs39TkC.js → route-Bj7s6WXI.js} +1 -1
  50. package/dist/server/_next/static/{route-vD15s2A8.js → route-CGH08Y8C.js} +1 -1
  51. package/dist/server/_next/static/{route-CkH7Cg-p.js → route-CJmc17Dq.js} +1 -1
  52. package/dist/server/_next/static/{route-C74RA7va.js → route-CLvr0Ue3.js} +1 -1
  53. package/dist/server/_next/static/route-CUaIuP8a.js +1 -0
  54. package/dist/server/_next/static/{route-BPcAdbz_.js → route-CcrNbScT.js} +1 -1
  55. package/dist/server/_next/static/route-CiOFTfyw2.js +1 -0
  56. package/dist/server/_next/static/route-Cn7l9eYT.js +1 -0
  57. package/dist/server/_next/static/route-CnKXQb5r2.js +1 -0
  58. package/dist/server/_next/static/{route-CVPPmUto.js → route-D93PQ3NI2.js} +1 -1
  59. package/dist/server/_next/static/{route-D_G2SOlz.js → route-D9ZD1_5T.js} +1 -1
  60. package/dist/server/_next/static/{route-DAyF4BHS.js → route-DWPhX9kT2.js} +1 -1
  61. package/dist/server/_next/static/route-DihT2xS82.js +1 -0
  62. package/dist/server/_next/static/route-Dn-sYYEs.js +1 -0
  63. package/dist/server/_next/static/route-DpzLCx1V.js +1 -0
  64. package/dist/server/_next/static/route-Dswz7MvP2.js +1 -0
  65. package/dist/server/_next/static/route-Dwk0kt8B.js +1 -0
  66. package/dist/server/_next/static/route-DxLQx9eD.js +1 -0
  67. package/dist/server/_next/static/{route-zazqen-A2.js → route-FwNLcs2r2.js} +1 -1
  68. package/dist/server/_next/static/route-GmbSJZjk2.js +1 -0
  69. package/dist/server/_next/static/route-iUxcDN2r.js +1 -0
  70. package/dist/server/_next/static/{route-UWQN8uYr.js → route-j61HPczh.js} +1 -1
  71. package/dist/server/_next/static/{route-CHJzaQu2.js → route-qJ1EJhxJ.js} +1 -1
  72. package/dist/server/_next/static/{route-BWk9YK7r.js → route-sNW0pw7C.js} +1 -1
  73. package/dist/server/_next/static/{seed-cache-oCd9Lfdw.js → seed-cache-DsYPqBld.js} +1 -1
  74. package/dist/server/_next/static/{server-CS40XqUP.js → server-DwVU6UyP.js} +1 -1
  75. package/dist/server/_next/static/storage-fxaUbjG1.js +322 -0
  76. package/dist/server/_next/static/streamer-DUAWx_Tm.js +2 -0
  77. package/dist/server/_next/static/{subtitles-DYBlMnha.js → subtitles-4c0GFlaW.js} +1 -1
  78. package/dist/server/_next/static/{title-progress-CQBrSxvN.js → title-progress-BTypVYBz.js} +1 -1
  79. package/dist/server/index.js +2 -2
  80. package/dist/server/prerendered-routes/404.html +2 -2
  81. package/dist/server/prerendered-routes/index.html +2 -2
  82. package/dist/server/prerendered-routes/index.rsc +2 -2
  83. package/dist/server/ssr/__vite_rsc_assets_manifest.js +35 -35
  84. package/dist/server/ssr/_next/static/css/refresh-cw.BOKESpxI.css +1 -0
  85. package/dist/server/ssr/_next/static/minimize-gPI5ytrc.js +1 -0
  86. package/dist/server/ssr/_next/static/netflix-browser-CXJEizJ6.js +2 -0
  87. package/dist/server/ssr/_next/static/{pin-BQre-tQY.js → pin-DiZl7z2n.js} +1 -1
  88. package/dist/server/ssr/_next/static/playback-activity-AIsC-eO5.js +1 -0
  89. package/dist/server/ssr/_next/static/refresh-cw-DNvHlOAy.js +1 -0
  90. package/dist/server/ssr/_next/static/spotify-app-xyDH0rho.js +1 -0
  91. package/dist/server/ssr/_next/static/storefront-DMeL08z3.js +1 -0
  92. package/dist/server/ssr/index.js +1 -1
  93. package/dist/server/ssr/vinext-client-assets.js +1 -1
  94. package/dist/server/ssr/vinext-server.json +1 -1
  95. package/dist/server/vinext-client-assets.js +1 -1
  96. package/dist/server/vinext-prerender-paths.json +1 -1
  97. package/dist/server/vinext-prerender.json +16 -1
  98. package/dist/server/vinext-server.json +1 -1
  99. package/package.json +4 -2
  100. package/dist/client/_next/static/chunks/manage-profiles-modal-Doi6QM4e.js +0 -1
  101. package/dist/client/_next/static/chunks/netflix-browser-L_Vb9wXK.js +0 -2
  102. package/dist/client/_next/static/chunks/playback-activity-Dug3BRYr.js +0 -1
  103. package/dist/client/_next/static/chunks/playback-activity-track-switcher-CbO6kl8K.js +0 -1
  104. package/dist/client/_next/static/chunks/spotify-app-f93K4FG_.js +0 -1
  105. package/dist/client/_next/static/chunks/storefront-C_nmcuvH.js +0 -1
  106. package/dist/client/_next/static/css/index.BGXy8e6j.css +0 -1
  107. package/dist/client/_next/static/css/layout.AKSLtSR6.css +0 -1
  108. package/dist/client/_next/static/css/layout.D8T68cCD.css +0 -1
  109. package/dist/client/_next/static/css/manage-profiles-modal.BAVyxRRR.css +0 -1
  110. package/dist/server/_next/static/css/index.BGXy8e6j.css +0 -1
  111. package/dist/server/_next/static/css/layout.AKSLtSR6.css +0 -1
  112. package/dist/server/_next/static/css/layout.D8T68cCD.css +0 -1
  113. package/dist/server/_next/static/database-BNnYfHmT.js +0 -114
  114. package/dist/server/_next/static/netflix-page-BRbORN1F.js +0 -1
  115. package/dist/server/_next/static/route-96DdgJBs.js +0 -1
  116. package/dist/server/_next/static/route-BBmE0xf12.js +0 -1
  117. package/dist/server/_next/static/route-BdG5ojMj2.js +0 -1
  118. package/dist/server/_next/static/route-BovNctFc.js +0 -1
  119. package/dist/server/_next/static/route-C2LuSjoh.js +0 -1
  120. package/dist/server/_next/static/route-CCUsQ7AG.js +0 -1
  121. package/dist/server/_next/static/route-CN6VdJwN.js +0 -1
  122. package/dist/server/_next/static/route-CjUCKwSj2.js +0 -1
  123. package/dist/server/_next/static/route-Cn40NftM.js +0 -1
  124. package/dist/server/_next/static/route-DWAMZHLa.js +0 -1
  125. package/dist/server/_next/static/route-DiT9UYUd.js +0 -1
  126. package/dist/server/_next/static/route-jMq6H_yh.js +0 -1
  127. package/dist/server/_next/static/storage-D1zF0J_t.js +0 -288
  128. package/dist/server/_next/static/streamer-B1PRR-dj.js +0 -2
  129. package/dist/server/ssr/_next/static/css/refresh-cw.BAVyxRRR.css +0 -1
  130. package/dist/server/ssr/_next/static/minimize-C9JLgte-.js +0 -1
  131. package/dist/server/ssr/_next/static/netflix-browser-CMAehdwi.js +0 -2
  132. package/dist/server/ssr/_next/static/playback-activity-D5TYX2Ae.js +0 -1
  133. package/dist/server/ssr/_next/static/refresh-cw-CWdWHjqY.js +0 -1
  134. package/dist/server/ssr/_next/static/spotify-app-CE-RaTjZ.js +0 -1
  135. package/dist/server/ssr/_next/static/storefront-C5NNzPMa.js +0 -1
  136. /package/dist/client/_next/static/{e1ce9af7-d770-43d6-845a-511443f19971 → 7c810a6d-59fd-41d6-b465-cf61efaea04f}/_buildManifest.js +0 -0
  137. /package/dist/client/_next/static/{e1ce9af7-d770-43d6-845a-511443f19971 → 7c810a6d-59fd-41d6-b465-cf61efaea04f}/_ssgManifest.js +0 -0
  138. /package/dist/server/_next/static/{layout-Ds3pFa6r.js → layout-D1iejeee.js} +0 -0
  139. /package/dist/server/_next/static/{layout-ClEWbCcj.js → layout-DpOw0OgX.js} +0 -0
@@ -0,0 +1 @@
1
+ import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{i as t,n,r}from"./framework-BQUlGUOV.js";import{n as i}from"./index-BUxxgh38.js";import{n as a,t as o}from"./chevron-left-Dn3noAqV.js";import{a as s,c,d as l,i as u,l as d,n as f,o as p,r as m,s as h,u as g}from"./provider-registry-CWHfJn3B.js";import{_,c as ee,d as v,g as te,h as y,l as b,m as x,p as ne,s as S,t as C,u as w,v as re}from"./playback-activity-track-switcher-BzvHiv7c.js";import{_ as T,a as E,c as D,d as O,g as k,i as ie,m as A,n as ae,o as oe,p as se,r as j,s as M,v as N}from"./manage-profiles-modal-CWi3qgd4.js";var P=a(`book-open`,[[`path`,{d:`M12 5v16`,key:`1f6ucr`}],[`path`,{d:`M20.001 19A2 2 0 0022 17V5a2 2 0 00-1.999-2L16 3.002A5 5 0 0012 5a5 5 0 00-4-2H4a2 2 0 00-2 2v12a2 2 0 001.999 2H8a5 5 0 014 2 5 5 0 014-2z`,key:`1fyvmf`}]]),F=a(`brain-circuit`,[[`path`,{d:`M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z`,key:`l5xja`}],[`path`,{d:`M9 13a4.5 4.5 0 0 0 3-4`,key:`10igwf`}],[`path`,{d:`M6.003 5.125A3 3 0 0 0 6.401 6.5`,key:`105sqy`}],[`path`,{d:`M3.477 10.896a4 4 0 0 1 .585-.396`,key:`ql3yin`}],[`path`,{d:`M6 18a4 4 0 0 1-1.967-.516`,key:`2e4loj`}],[`path`,{d:`M12 13h4`,key:`1ku699`}],[`path`,{d:`M12 18h6a2 2 0 0 1 2 2v1`,key:`105ag5`}],[`path`,{d:`M12 8h8`,key:`1lhi5i`}],[`path`,{d:`M16 8V5a2 2 0 0 1 2-2`,key:`u6izg6`}],[`circle`,{cx:`16`,cy:`13`,r:`.5`,key:`ry7gng`}],[`circle`,{cx:`18`,cy:`3`,r:`.5`,key:`1aiba7`}],[`circle`,{cx:`20`,cy:`21`,r:`.5`,key:`yhc1fs`}],[`circle`,{cx:`20`,cy:`8`,r:`.5`,key:`1e43v0`}]]),ce=a(`calendar-days`,[[`path`,{d:`M8 2v4`,key:`1cmpym`}],[`path`,{d:`M16 2v4`,key:`4m81vk`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`4`,rx:`2`,key:`1hopcy`}],[`path`,{d:`M3 10h18`,key:`8toen8`}],[`path`,{d:`M8 14h.01`,key:`6423bh`}],[`path`,{d:`M12 14h.01`,key:`1etili`}],[`path`,{d:`M16 14h.01`,key:`1gbofw`}],[`path`,{d:`M8 18h.01`,key:`lrp35t`}],[`path`,{d:`M12 18h.01`,key:`mhygvu`}],[`path`,{d:`M16 18h.01`,key:`kzsmim`}]]),le=a(`camera`,[[`path`,{d:`M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z`,key:`18u6gg`}],[`circle`,{cx:`12`,cy:`13`,r:`3`,key:`1vg3eu`}]]),ue=a(`car-front`,[[`path`,{d:`m21 8-2 2-1.5-3.7A2 2 0 0 0 15.646 5H8.4a2 2 0 0 0-1.903 1.257L5 10 3 8`,key:`1imjwt`}],[`path`,{d:`M7 14h.01`,key:`1qa3f1`}],[`path`,{d:`M17 14h.01`,key:`7oqj8z`}],[`rect`,{width:`18`,height:`8`,x:`3`,y:`10`,rx:`2`,key:`a7itu8`}],[`path`,{d:`M5 18v2`,key:`ppbyun`}],[`path`,{d:`M19 18v2`,key:`gy7782`}]]),I=a(`cloud-sun`,[[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`m4.93 4.93 1.41 1.41`,key:`149t6j`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`m19.07 4.93-1.41 1.41`,key:`1shlcs`}],[`path`,{d:`M15.947 12.65a4 4 0 0 0-5.925-4.128`,key:`dpwdj0`}],[`path`,{d:`M13 22H7a5 5 0 1 1 4.9-6H13a3 3 0 0 1 0 6Z`,key:`s09mg5`}]]),de=a(`earth`,[[`path`,{d:`M21.54 15H17a2 2 0 0 0-2 2v4.54`,key:`1djwo0`}],[`path`,{d:`M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17`,key:`1tzkfa`}],[`path`,{d:`M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05`,key:`14pb5j`}],[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]),fe=a(`grid-3x3`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 9h18`,key:`1pudct`}],[`path`,{d:`M3 15h18`,key:`5xshup`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`M15 3v18`,key:`14nvp0`}]]),pe=a(`headphones`,[[`path`,{d:`M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3`,key:`1xhozi`}]]),L=a(`keyboard`,[[`path`,{d:`M10 8h.01`,key:`1r9ogq`}],[`path`,{d:`M12 12h.01`,key:`1mp3jc`}],[`path`,{d:`M14 8h.01`,key:`1primd`}],[`path`,{d:`M16 12h.01`,key:`1l6xoz`}],[`path`,{d:`M18 8h.01`,key:`emo2bl`}],[`path`,{d:`M6 8h.01`,key:`x9i8wu`}],[`path`,{d:`M7 16h10`,key:`wp8him`}],[`path`,{d:`M8 12h.01`,key:`czm47f`}],[`rect`,{width:`20`,height:`16`,x:`2`,y:`4`,rx:`2`,key:`18n3k1`}]]),R=a(`leaf`,[[`path`,{d:`M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z`,key:`nnexq3`}],[`path`,{d:`M2 21c0-3 1.85-5.36 5.08-6C9.5 14.52 12 13 13 12`,key:`mt58a7`}]]),me=a(`message-circle`,[[`path`,{d:`M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719`,key:`1sd12s`}]]),he=a(`monitor-off`,[[`path`,{d:`M12 17v4`,key:`1riwvh`}],[`path`,{d:`M17 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 1.184-1.826`,key:`cv7jms`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}],[`path`,{d:`M8 21h8`,key:`1ev6f3`}],[`path`,{d:`M8.656 3H20a2 2 0 0 1 2 2v10a2 2 0 0 1-.293 1.042`,key:`z8ni2w`}]]),ge=a(`mouse-pointer-2`,[[`path`,{d:`M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z`,key:`edeuup`}]]),_e=a(`move`,[[`path`,{d:`M12 2v20`,key:`t6zp3m`}],[`path`,{d:`m15 19-3 3-3-3`,key:`11eu04`}],[`path`,{d:`m19 9 3 3-3 3`,key:`1mg7y2`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}],[`path`,{d:`m5 9-3 3 3 3`,key:`j64kie`}],[`path`,{d:`m9 5 3-3 3 3`,key:`l8vdw6`}]]),ve=a(`music-2`,[[`circle`,{cx:`8`,cy:`18`,r:`4`,key:`1fc0mg`}],[`path`,{d:`M12 18V2l7 4`,key:`g04rme`}]]),ye=a(`palette`,[[`path`,{d:`M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z`,key:`e79jfc`}],[`circle`,{cx:`13.5`,cy:`6.5`,r:`.5`,fill:`currentColor`,key:`1okk4w`}],[`circle`,{cx:`17.5`,cy:`10.5`,r:`.5`,fill:`currentColor`,key:`f64h9f`}],[`circle`,{cx:`6.5`,cy:`12.5`,r:`.5`,fill:`currentColor`,key:`qy21gx`}],[`circle`,{cx:`8.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`fotxhn`}]]),be=a(`pin-off`,[[`path`,{d:`M12 17v5`,key:`bb1du9`}],[`path`,{d:`M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89`,key:`znwnzq`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}],[`path`,{d:`M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11`,key:`c9qhm2`}]]),xe=a(`settings-2`,[[`path`,{d:`M14 17H5`,key:`gfn3mx`}],[`path`,{d:`M19 7h-9`,key:`6i9tg`}],[`circle`,{cx:`17`,cy:`17`,r:`3`,key:`18b49y`}],[`circle`,{cx:`7`,cy:`7`,r:`3`,key:`dfmy0x`}]]),z=a(`shield-check`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),Se=a(`star`,[[`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,key:`r04s7s`}]]),B=a(`tv`,[[`path`,{d:`m17 2-5 5-5-5`,key:`16satq`}],[`rect`,{width:`20`,height:`15`,x:`2`,y:`7`,rx:`2`,key:`1e6viu`}]]),Ce=a(`unplug`,[[`path`,{d:`m19 5 3-3`,key:`yk6iyv`}],[`path`,{d:`m2 22 3-3`,key:`19mgm9`}],[`path`,{d:`M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z`,key:`goz73y`}],[`path`,{d:`M7.5 13.5 10 11`,key:`7xgeeb`}],[`path`,{d:`M10.5 16.5 13 14`,key:`10btkg`}],[`path`,{d:`m12 6 6 6 2.3-2.3a2.4 2.4 0 0 0 0-3.4l-2.6-2.6a2.4 2.4 0 0 0-3.4 0Z`,key:`1snsnr`}]]),V=a(`wand-sparkles`,[[`path`,{d:`m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72`,key:`ul74o6`}],[`path`,{d:`m14 7 3 3`,key:`1r5n42`}],[`path`,{d:`M5 6v4`,key:`ilb8ba`}],[`path`,{d:`M19 14v4`,key:`blhpug`}],[`path`,{d:`M10 2v2`,key:`7u0qdc`}],[`path`,{d:`M7 8H3`,key:`zfb6yr`}],[`path`,{d:`M21 16h-4`,key:`1cnmox`}],[`path`,{d:`M11 3H9`,key:`1obp7u`}]]),H=a(`watch`,[[`path`,{d:`M12 10v2.2l1.6 1`,key:`n3r21l`}],[`path`,{d:`m16.13 7.66-.81-4.05a2 2 0 0 0-2-1.61h-2.68a2 2 0 0 0-2 1.61l-.78 4.05`,key:`18k57s`}],[`path`,{d:`m7.88 16.36.8 4a2 2 0 0 0 2 1.61h2.72a2 2 0 0 0 2-1.61l.81-4.05`,key:`16ny36`}],[`circle`,{cx:`12`,cy:`12`,r:`6`,key:`1vlfrh`}]]),we=a(`zap`,[[`path`,{d:`M15.914 4a1.5 1.5 0 00-2.474-1.561l-9 9A1.5 1.5 0 005.5 14h4.002a.5.5 0 01.471.666L8.086 20a1.5 1.5 0 002.475 1.56l9-9A1.5 1.5 0 0018.5 10h-3.997a.5.5 0 01-.472-.667z`,key:`1v7up4`}]]),U=e(r(),1),W=t();async function G(e,t){let n=await fetch(e,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)}),r=await n.json().catch(()=>({}));if(!n.ok||r.ok===!1)throw Error(r.error||`Computer input control failed`);return r}async function K(e,t,n){return G(`/api/keyboard`,{code:e,output:t,modifiers:n})}async function Te(e){return G(`/api/trackpad`,e)}var Ee=e=>({code:`Key${e}`,label:e,output:e.toLowerCase()}),De=[{code:`Escape`,label:`esc`,tone:`system`},{code:`F1`,label:`F1`,gap:!0},{code:`F2`,label:`F2`},{code:`F3`,label:`F3`},{code:`F4`,label:`F4`},{code:`F5`,label:`F5`,gap:!0},{code:`F6`,label:`F6`},{code:`F7`,label:`F7`},{code:`F8`,label:`F8`},{code:`F9`,label:`F9`,gap:!0},{code:`F10`,label:`F10`},{code:`F11`,label:`F11`},{code:`F12`,label:`F12`},{code:`PrintScreen`,label:`prt sc`,aria:`Print Screen`,gap:!0},{code:`ScrollLock`,label:`scr lk`,aria:`Scroll Lock`},{code:`Pause`,label:`pause`}],Oe=[[{code:`Backquote`,label:"`",shifted:`~`,output:"`"},{code:`Digit1`,label:`1`,shifted:`!`,output:`1`},{code:`Digit2`,label:`2`,shifted:`@`,output:`2`},{code:`Digit3`,label:`3`,shifted:`#`,output:`3`},{code:`Digit4`,label:`4`,shifted:`$`,output:`4`},{code:`Digit5`,label:`5`,shifted:`%`,output:`5`},{code:`Digit6`,label:`6`,shifted:`^`,output:`6`},{code:`Digit7`,label:`7`,shifted:`&`,output:`7`},{code:`Digit8`,label:`8`,shifted:`*`,output:`8`},{code:`Digit9`,label:`9`,shifted:`(`,output:`9`},{code:`Digit0`,label:`0`,shifted:`)`,output:`0`},{code:`Minus`,label:`-`,shifted:`_`,output:`-`},{code:`Equal`,label:`=`,shifted:`+`,output:`=`},{code:`Backspace`,label:`backspace`,width:2,tone:`modifier`}],[{code:`Tab`,label:`tab`,width:1.5,tone:`modifier`},...[`Q`,`W`,`E`,`R`,`T`,`Y`,`U`,`I`,`O`,`P`].map(Ee),{code:`BracketLeft`,label:`[`,shifted:`{`,output:`[`},{code:`BracketRight`,label:`]`,shifted:`}`,output:`]`},{code:`Backslash`,label:`\\`,shifted:`|`,output:`\\`,width:1.5}],[{code:`CapsLock`,label:`caps lock`,width:1.75,tone:`modifier`},...[`A`,`S`,`D`,`F`,`G`,`H`,`J`,`K`,`L`].map(Ee),{code:`Semicolon`,label:`;`,shifted:`:`,output:`;`},{code:`Quote`,label:`'`,shifted:`"`,output:`'`},{code:`Enter`,label:`enter`,width:2.25,tone:`accent`}],[{code:`ShiftLeft`,label:`shift`,width:2.25,tone:`modifier`},...[`Z`,`X`,`C`,`V`,`B`,`N`,`M`].map(Ee),{code:`Comma`,label:`,`,shifted:`<`,output:`,`},{code:`Period`,label:`.`,shifted:`>`,output:`.`},{code:`Slash`,label:`/`,shifted:`?`,output:`/`},{code:`ShiftRight`,label:`shift`,width:2.75,tone:`modifier`}],[{code:`ControlLeft`,label:`ctrl`,width:1.25,tone:`modifier`},{code:`MetaLeft`,label:`win`,width:1.25,tone:`modifier`},{code:`AltLeft`,label:`alt`,width:1.25,tone:`modifier`},{code:`Space`,label:``,output:` `,aria:`Space`,width:6.25},{code:`AltRight`,label:`alt`,width:1.25,tone:`modifier`},{code:`Fn`,label:`fn`,width:1.25,tone:`modifier`},{code:`ContextMenu`,label:`menu`,width:1.25,tone:`modifier`},{code:`ControlRight`,label:`ctrl`,width:1.25,tone:`modifier`}]],ke=[{code:`Insert`,label:`insert`,tone:`system`},{code:`Home`,label:`home`,tone:`system`},{code:`PageUp`,label:`page up`,tone:`system`},{code:`Delete`,label:`delete`,tone:`system`},{code:`End`,label:`end`,tone:`system`},{code:`PageDown`,label:`page down`,tone:`system`}],Ae=[{code:`ArrowUp`,label:`↑`,aria:`Arrow Up`,area:`up`},{code:`ArrowLeft`,label:`←`,aria:`Arrow Left`,area:`left`},{code:`ArrowDown`,label:`↓`,aria:`Arrow Down`,area:`down`},{code:`ArrowRight`,label:`→`,aria:`Arrow Right`,area:`right`}],je=[{code:`NumLock`,label:`num lock`,tone:`modifier`,area:`num`},{code:`NumpadDivide`,label:`÷`,output:`/`,area:`divide`},{code:`NumpadMultiply`,label:`×`,output:`*`,area:`multiply`},{code:`NumpadSubtract`,label:`−`,output:`-`,area:`subtract`},{code:`Numpad7`,label:`7`,output:`7`,shifted:`home`,area:`seven`},{code:`Numpad8`,label:`8`,output:`8`,shifted:`↑`,area:`eight`},{code:`Numpad9`,label:`9`,output:`9`,shifted:`pg up`,area:`nine`},{code:`NumpadAdd`,label:`+`,output:`+`,tone:`system`,area:`add`},{code:`Numpad4`,label:`4`,output:`4`,shifted:`←`,area:`four`},{code:`Numpad5`,label:`5`,output:`5`,area:`five`},{code:`Numpad6`,label:`6`,output:`6`,shifted:`→`,area:`six`},{code:`Numpad1`,label:`1`,output:`1`,shifted:`end`,area:`one`},{code:`Numpad2`,label:`2`,output:`2`,shifted:`↓`,area:`two`},{code:`Numpad3`,label:`3`,output:`3`,shifted:`pg dn`,area:`three`},{code:`NumpadEnter`,label:`enter`,tone:`accent`,area:`enter`},{code:`Numpad0`,label:`0`,output:`0`,shifted:`insert`,area:`zero`},{code:`NumpadDecimal`,label:`.`,output:`.`,shifted:`delete`,area:`decimal`}],Me=new Set([`CapsLock`,`NumLock`,`ShiftLeft`,`ShiftRight`,`ControlLeft`,`ControlRight`,`AltLeft`,`AltRight`,`MetaLeft`,`Fn`]);function q({item:e,active:t,onPress:n}){return(0,W.jsxs)(`button`,{type:`button`,className:`kbapp-key kbapp-key--${e.tone??`default`}${t?` is-active`:``}${e.gap?` has-gap`:``}`,style:{"--kb-width":e.width??1,gridArea:e.area},"aria-label":e.aria??e.label,"aria-pressed":Me.has(e.code)?t:void 0,"data-key-code":e.code,onPointerDown:e=>e.preventDefault(),onClick:()=>n(e),children:[e.shifted&&(0,W.jsx)(`small`,{children:e.shifted}),(0,W.jsx)(`span`,{children:e.label})]})}function Ne({active:e,onPress:t}){return(0,W.jsxs)(`div`,{className:`kbapp-navigation`,"aria-label":`Navigation keys`,children:[(0,W.jsx)(`div`,{className:`kbapp-nav-grid`,children:ke.map(n=>(0,W.jsx)(q,{item:n,active:e.has(n.code),onPress:t},n.code))}),(0,W.jsx)(`div`,{className:`kbapp-arrow-grid`,children:Ae.map(n=>(0,W.jsx)(q,{item:n,active:e.has(n.code),onPress:t},n.code))})]})}function Pe({active:e,onPress:t}){return(0,W.jsx)(`div`,{className:`kbapp-numpad`,"aria-label":`Number pad`,children:je.map(n=>(0,W.jsx)(q,{item:n,active:e.has(n.code),onPress:t},n.code))})}function Fe({onAutomationError:e}){let t=(0,U.useRef)(null),n=(0,U.useRef)(!1),r=(0,U.useRef)({x:0,y:0}),i=(0,U.useRef)(!1),a=(0,U.useRef)({dx:0,dy:0}),o=(0,U.useRef)(null),s=1.8,c=.8,l=(0,U.useCallback)(()=>{o.current=null;let{dx:t,dy:n}=a.current;a.current={dx:0,dy:0},!(Math.abs(t)<.5&&Math.abs(n)<.5)&&Te({action:i.current?`scroll`:`move`,dx:t,dy:n}).catch(t=>{e(t instanceof Error?t.message:`Trackpad control failed`)})},[e]);(0,U.useEffect)(()=>(Te({action:`warmup`}).catch(t=>{e(t instanceof Error?t.message:`Trackpad control failed`)}),()=>{o.current!==null&&cancelAnimationFrame(o.current)}),[e]);let u=(0,U.useCallback)(t=>{Te({action:t}).catch(t=>{e(t instanceof Error?t.message:`Trackpad control failed`)})},[e]),d=(0,U.useCallback)(e=>{e.preventDefault(),n.current=!0,r.current={x:e.clientX,y:e.clientY},i.current=e.shiftKey,e.target.setPointerCapture(e.pointerId)},[]),f=(0,U.useCallback)(e=>{if(!n.current)return;let t=(e.clientX-r.current.x)*s,u=(e.clientY-r.current.y)*s;r.current={x:e.clientX,y:e.clientY},!(Math.abs(t)<.5&&Math.abs(u)<.5)&&(i.current?(a.current.dx+=t*c,a.current.dy+=u*c):(a.current.dx+=t,a.current.dy+=u),o.current===null&&(o.current=requestAnimationFrame(l)))},[l]),p=(0,U.useCallback)(()=>{o.current!==null&&(cancelAnimationFrame(o.current),l()),n.current=!1,i.current=!1},[l]);return(0,W.jsxs)(`div`,{className:`kbapp-trackpad-wrap`,children:[(0,W.jsx)(`div`,{ref:t,className:`kbapp-trackpad-surface`,"aria-label":`Trackpad surface — drag to move cursor`,role:`application`,onPointerDown:d,onPointerMove:f,onPointerUp:p,onPointerCancel:p,children:(0,W.jsxs)(`div`,{className:`kbapp-trackpad-hint`,children:[(0,W.jsx)(ge,{}),(0,W.jsx)(`span`,{children:`Drag to move cursor`}),(0,W.jsx)(`small`,{children:`Hold Shift + drag to scroll`})]})}),(0,W.jsxs)(`div`,{className:`kbapp-trackpad-buttons`,children:[(0,W.jsx)(`button`,{type:`button`,className:`kbapp-trackpad-btn kbapp-trackpad-btn--click`,onPointerDown:e=>e.preventDefault(),onClick:()=>u(`click`),children:`Click`}),(0,W.jsx)(`button`,{type:`button`,className:`kbapp-trackpad-btn kbapp-trackpad-btn--right`,onPointerDown:e=>e.preventDefault(),onClick:()=>u(`rightClick`),children:`Right click`}),(0,W.jsx)(`button`,{type:`button`,className:`kbapp-trackpad-btn kbapp-trackpad-btn--double`,onPointerDown:e=>e.preventDefault(),onClick:()=>u(`doubleClick`),children:`Double click`})]})]})}function Ie({onClose:e}){let[t,n]=(0,U.useState)(`full`),[r,i]=(0,U.useState)(()=>new Set([`NumLock`])),[a,o]=(0,U.useState)({key:`—`,code:`Waiting`}),[s,c]=(0,U.useState)(null),[u,d]=(0,U.useState)(``),f=(0,U.useRef)(new Map);(0,U.useEffect)(()=>{document.body.classList.add(`modal-open`);let e=f.current,t=e=>{e.isTrusted&&(o({key:e.key===` `?`Space`:e.key,code:e.code}),i(t=>new Set(t).add(e.code)))},n=e=>{i(t=>{if(e.code===`CapsLock`||e.code===`NumLock`)return t;let n=new Set(t);return n.delete(e.code),n})};return window.addEventListener(`keydown`,t),window.addEventListener(`keyup`,n),()=>{document.body.classList.remove(`modal-open`),window.removeEventListener(`keydown`,t),window.removeEventListener(`keyup`,n),e.forEach(e=>window.clearTimeout(e))}},[]),(0,U.useEffect)(()=>{let e=new AbortController;return fetch(`/api/keyboard`,{signal:e.signal}).then(async e=>{let t=await e.json();if(!e.ok||!t.platform||typeof t.platformLabel!=`string`||typeof t.supported!=`boolean`)throw Error(t.error||`Unable to detect the computer platform`);c({platform:t.platform,platformLabel:t.platformLabel,supported:t.supported}),t.supported||d(`Computer input control is not supported on ${t.platformLabel}. Use a macOS or Windows host.`)}).catch(t=>{e.signal.aborted||d(t instanceof Error?t.message:`Unable to detect the computer platform`)}),()=>e.abort()},[]);let p=(0,U.useCallback)(e=>{let t=f.current.get(e);t&&window.clearTimeout(t),i(t=>new Set(t).add(e));let n=window.setTimeout(()=>{i(t=>{let n=new Set(t);return n.delete(e),n})},140);f.current.set(e,n)},[]),m=(0,U.useCallback)(e=>{if(Me.has(e.code)){i(t=>{let n=new Set(t);return n.has(e.code)?n.delete(e.code):n.add(e.code),n}),o({key:e.label||e.code,code:e.code});return}let t=r.has(`ShiftLeft`)||r.has(`ShiftRight`),n=r.has(`CapsLock`),a=e.code.startsWith(`Key`),s=e.output;a&&s?s=t===n?s:s.toUpperCase():t&&e.shifted&&(s=e.shifted);let c=s===` `?`Space`:s??e.code.replace(/Left|Right/,``);o({key:c,code:e.code});let l=[];for(let e of[`ShiftLeft`,`ShiftRight`,`ControlLeft`,`ControlRight`,`AltLeft`,`AltRight`,`MetaLeft`])r.has(e)&&l.push(e);K(e.code,s,l).catch(e=>{d(e instanceof Error?e.message:`Keyboard control failed`)}),p(e.code),t&&i(e=>{let t=new Set(e);return t.delete(`ShiftLeft`),t.delete(`ShiftRight`),t})},[r,p]),h=s?.platform===`macos`?Oe.map(e=>e.map(e=>e.code===`MetaLeft`?{...e,label:`cmd`}:e)):Oe,g=(0,U.useCallback)(e=>{d(e)},[]);return(0,W.jsxs)(`div`,{className:`kbapp-layer`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`keyboard-app-title`,children:[(0,W.jsxs)(`header`,{className:`kbapp-header`,children:[(0,W.jsxs)(`button`,{type:`button`,className:`kbapp-back`,onClick:e,children:[(0,W.jsx)(l,{}),(0,W.jsx)(`span`,{children:`App store`})]}),(0,W.jsxs)(`div`,{className:`kbapp-brand`,children:[(0,W.jsx)(`span`,{children:(0,W.jsx)(L,{})}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`strong`,{id:`keyboard-app-title`,children:`Keyboard, trackpad`}),(0,W.jsx)(`small`,{children:s?`${s.platformLabel} input control`:`Detecting computer`})]})]}),(0,W.jsxs)(`div`,{className:`kbapp-header-actions`,children:[(0,W.jsx)(ae,{id:`keyboard-access-popover`,buttonClassName:`kbapp-access`,popoverClassName:`kbapp-access-popover`,theme:`light`}),(0,W.jsx)(`button`,{type:`button`,className:`kbapp-close`,onClick:e,"aria-label":`Close app`,children:(0,W.jsx)(j,{})})]})]}),(0,W.jsx)(`main`,{className:`kbapp-main`,children:(0,W.jsxs)(`section`,{className:`kbapp-workspace`,children:[u&&(0,W.jsxs)(`div`,{className:`kbapp-alert`,role:`status`,children:[(0,W.jsx)(_,{}),(0,W.jsx)(`span`,{children:u}),(0,W.jsx)(`button`,{type:`button`,onClick:()=>d(``),"aria-label":`Dismiss input control message`,children:(0,W.jsx)(j,{})})]}),(0,W.jsxs)(`div`,{className:`kbapp-toolbar`,children:[(0,W.jsxs)(`div`,{className:`kbapp-tabs`,role:`tablist`,"aria-label":`Input modes`,children:[(0,W.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":t===`full`,className:t===`full`?`active`:``,onClick:()=>n(`full`),children:[(0,W.jsx)(L,{}),` Full keyboard`]}),(0,W.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":t===`trackpad`,className:t===`trackpad`?`active`:``,onClick:()=>n(`trackpad`),children:[(0,W.jsx)(ge,{}),` Trackpad`]}),(0,W.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":t===`numpad`,className:t===`numpad`?`active`:``,onClick:()=>n(`numpad`),children:[(0,W.jsx)(fe,{}),` Numpad`]}),(0,W.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":t===`navigation`,className:t===`navigation`?`active`:``,onClick:()=>n(`navigation`),children:[(0,W.jsx)(_e,{}),` Navigation`]})]}),t!==`trackpad`&&(0,W.jsxs)(`dl`,{className:`kbapp-status`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Last key`}),(0,W.jsx)(`dd`,{children:a.key})]}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Key code`}),(0,W.jsx)(`dd`,{children:(0,W.jsx)(`code`,{children:a.code})})]})]})]}),t===`trackpad`?(0,W.jsx)(`div`,{className:`kbapp-trackpad-panel`,children:(0,W.jsx)(Fe,{onAutomationError:g})}):(0,W.jsxs)(`div`,{className:`kbapp-board-shell kbapp-board-shell--${t}`,role:`tabpanel`,children:[(0,W.jsxs)(`div`,{className:`kbapp-board-top`,children:[(0,W.jsx)(`span`,{children:`KEYBOARD / WEB`}),(0,W.jsx)(`i`,{className:r.has(`CapsLock`)?`on`:``}),(0,W.jsx)(`i`,{className:r.has(`NumLock`)?`on`:``})]}),t===`full`&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`div`,{className:`kbapp-function-row`,children:De.map(e=>(0,W.jsx)(q,{item:e,active:r.has(e.code),onPress:m},e.code))}),(0,W.jsxs)(`div`,{className:`kbapp-zones`,children:[(0,W.jsx)(`div`,{className:`kbapp-alpha`,children:h.map((e,t)=>(0,W.jsx)(`div`,{className:`kbapp-row`,children:e.map(e=>(0,W.jsx)(q,{item:e,active:r.has(e.code),onPress:m},e.code))},t))}),(0,W.jsx)(Ne,{active:r,onPress:m}),(0,W.jsx)(Pe,{active:r,onPress:m})]})]}),t===`numpad`&&(0,W.jsxs)(`div`,{className:`kbapp-focused`,children:[(0,W.jsxs)(`div`,{className:`kbapp-focused-copy`,children:[(0,W.jsx)(`span`,{children:`Focused template`}),(0,W.jsx)(`strong`,{children:`Number pad`}),(0,W.jsx)(`p`,{children:`Numbers and operators, without the clutter.`})]}),(0,W.jsx)(Pe,{active:r,onPress:m})]}),t===`navigation`&&(0,W.jsxs)(`div`,{className:`kbapp-focused`,children:[(0,W.jsxs)(`div`,{className:`kbapp-focused-copy`,children:[(0,W.jsx)(`span`,{children:`Focused template`}),(0,W.jsx)(`strong`,{children:`Navigation`}),(0,W.jsx)(`p`,{children:`Move through text with precision.`})]}),(0,W.jsx)(Ne,{active:r,onPress:m})]})]})]})})]})}var Le=e(n(),1);function Re({type:e}){switch(e){case`phone`:return(0,W.jsx)(v,{"aria-hidden":`true`});case`tablet`:return(0,W.jsx)(b,{"aria-hidden":`true`});case`laptop`:return(0,W.jsx)(y,{"aria-hidden":`true`});case`desktop`:return(0,W.jsx)(x,{"aria-hidden":`true`});default:return(0,W.jsx)(x,{"aria-hidden":`true`})}}function ze(e,t){let n={...e,updatedAt:Date.now()};switch(t.type){case`set-paused`:return{...n,paused:t.paused};case`seek-relative`:return{...n,currentTime:Math.max(0,Math.min(e.duration,e.currentTime+t.seconds))};case`seek-to`:return{...n,currentTime:Math.max(0,Math.min(e.duration,t.seconds))};case`set-muted`:return{...n,muted:t.muted};case`set-volume`:return{...n,volume:Math.max(0,Math.min(1,t.volume)),muted:t.volume<=0};case`previous-track`:case`next-track`:case`switch-track`:case`switch-playlist`:return n;case`next-episode`:{if(e.service===`spotify`)return n;let t={...e,updatedAt:n.updatedAt},r=e.episodes.findIndex(t=>t.season===e.seasonNumber&&t.number===e.episodeNumber),i=e.episodes[r+1];return i?{...t,seasonNumber:i.season,episodeNumber:i.number,episodeTitle:i.title,currentTime:0,paused:!1}:t}case`select-episode`:{if(e.service===`spotify`)return n;let r={...e,updatedAt:n.updatedAt},i=e.episodes.find(e=>e.number===t.episodeNumber);return i?{...r,seasonNumber:i.season,episodeNumber:i.number,episodeTitle:i.title,currentTime:0,paused:!1}:r}case`switch-title`:return n;case`set-captions`:return e.service===`spotify`?n:{...e,updatedAt:n.updatedAt,subtitles:{...e.subtitles,captionsOn:t.enabled}};case`set-subtitle-font-size`:return e.service===`spotify`?n:{...e,updatedAt:n.updatedAt,subtitles:{...e.subtitles,fontSize:t.fontSize}};case`set-subtitle-font-color`:return e.service===`spotify`?n:{...e,updatedAt:n.updatedAt,subtitles:{...e.subtitles,fontColor:t.color}};case`set-subtitle-background`:return e.service===`spotify`?n:{...e,updatedAt:n.updatedAt,subtitles:{...e.subtitles,backgroundColor:t.background}};case`reset-subtitle-position`:return n}}function Be(e){let t=Math.max(0,Math.floor(e)),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60;return n?`${n}:${String(r).padStart(2,`0`)}:${String(i).padStart(2,`0`)}`:`${r}:${String(i).padStart(2,`0`)}`}function Ve(e){return f(e.sourceProvider,`Netflix`)}function He({activity:e,onClose:t,onSelect:n}){let r=(0,U.useRef)(null),[i,a]=(0,U.useState)(``),[o,s]=(0,U.useState)([]),[c,l]=(0,U.useState)(!0),[u,d]=(0,U.useState)(``),[f,p]=(0,U.useState)(null),m=i.trim(),h=`activity-movies-${e.sessionId}`;(0,U.useEffect)(()=>{let e=document.activeElement instanceof HTMLElement?document.activeElement:null;return r.current?.focus(),()=>{e?.isConnected&&e.focus()}},[]),(0,U.useEffect)(()=>{let t=new AbortController,n=i.trim(),r=window.setTimeout(()=>{l(!0),d(``),fetch(`/api/netflix/activity/titles?profileId=${encodeURIComponent(e.profileId)}&q=${encodeURIComponent(n)}`,{cache:`no-store`,signal:t.signal}).then(async t=>{let n=await t.json();if(!t.ok)throw Error(n.error||`Movies could not be loaded.`);s((Array.isArray(n.titles)?n.titles:[]).filter(t=>t.id!==e.titleId)),n.failedProviders?.length&&d(`Some movie sources could not be searched.`)}).catch(e=>{t.signal.aborted||(s([]),d(e instanceof Error?e.message:`Movies could not be loaded.`))}).finally(()=>{t.signal.aborted||l(!1)})},n?300:0);return()=>{window.clearTimeout(r),t.abort()}},[e.profileId,e.titleId,i]);let g=async e=>{p(e.id),d(``);try{await n(e),t()}catch(e){d(e instanceof Error?e.message:`The movie could not be switched.`),p(null)}};return(0,Le.createPortal)((0,W.jsx)(`div`,{className:`activity-movie-search-overlay`,onMouseDown:e=>{e.target===e.currentTarget&&t()},onKeyDown:e=>{e.key===`Escape`&&(e.stopPropagation(),t())},children:(0,W.jsxs)(`div`,{className:`activity-movie-search`,id:h,role:`dialog`,"aria-label":`Search another movie for ${e.title}`,children:[(0,W.jsxs)(`div`,{className:`activity-movie-search__header`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`h3`,{children:`Switch movie`}),(0,W.jsxs)(`span`,{className:`activity-movie-search__now`,children:[`Now playing: `,e.title]})]}),(0,W.jsx)(`button`,{type:`button`,onClick:t,"aria-label":`Close movie search`,children:(0,W.jsx)(j,{})})]}),(0,W.jsxs)(`div`,{className:`activity-movie-search__field`,children:[(0,W.jsx)(M,{"aria-hidden":`true`}),(0,W.jsx)(`input`,{ref:r,type:`search`,value:i,onChange:e=>{a(e.currentTarget.value),l(!0),d(``)},placeholder:`Search movies and series`,"aria-label":`Search another movie for ${e.title}`,autoComplete:`off`}),i&&(0,W.jsx)(`button`,{type:`button`,onClick:()=>{a(``),l(!0),d(``),r.current?.focus()},"aria-label":`Clear movie search`,children:(0,W.jsx)(j,{})})]}),(0,W.jsx)(`div`,{className:`activity-movie-search__heading`,children:(0,W.jsx)(`strong`,{children:m?`Search results`:`Recently watched`})}),(0,W.jsx)(`p`,{className:`sr-only`,role:`status`,"aria-live":`polite`,children:f?`Switching from ${e.title}…`:c?m?`Searching for ${m}…`:`Loading recently watched movies…`:`${o.length} ${m?`search`:`recent`} ${o.length===1?`result`:`results`}.`}),u&&(0,W.jsx)(`p`,{className:`activity-movie-search__notice`,role:`alert`,children:u}),c?(0,W.jsxs)(`div`,{className:`activity-movie-search__empty`,children:[(0,W.jsx)(A,{className:`spin`,"aria-hidden":`true`}),(0,W.jsx)(`span`,{children:m?`Searching for “${m}”…`:`Loading recently watched movies…`})]}):o.length?(0,W.jsx)(`div`,{className:`activity-movie-search__results`,"aria-label":m?`Movie search results`:`Recently watched movies`,children:o.map(e=>(0,W.jsxs)(`button`,{type:`button`,onClick:()=>void g(e),disabled:f!==null,"aria-label":`Switch to ${e.title}`,children:[(0,W.jsxs)(`span`,{className:`activity-movie-search__art`,children:[(0,W.jsx)(`img`,{src:e.backdropImage,alt:``}),f===e.id&&(0,W.jsx)(A,{className:`spin`,"aria-hidden":`true`})]}),(0,W.jsxs)(`span`,{className:`activity-movie-search__copy`,children:[(0,W.jsx)(`strong`,{children:e.title}),(0,W.jsxs)(`small`,{children:[e.year,(0,W.jsx)(`span`,{"aria-hidden":`true`,children:` · `}),Ve(e)]})]})]},`${e.sourceProvider??`catalog`}:${e.id}`))}):(0,W.jsxs)(`div`,{className:`activity-movie-search__empty`,children:[(0,W.jsx)(M,{"aria-hidden":`true`}),(0,W.jsx)(`span`,{children:m?`No movies found for “${m}”.`:`No other recently watched movies yet.`})]})]})}),document.body)}function Ue({activity:e,tabLabel:t,editorOpen:n,searchOpen:r,onEditorToggle:i,onSearchToggle:a,onCommand:o}){let[l,d]=(0,U.useState)(null),f=Math.max(1,Math.round(e.duration)),p=Math.max(0,Math.min(f,Math.round(l??e.currentTime))),h=e.duration>0?Math.max(0,Math.min(100,p/e.duration*100)):0,_=Math.round(e.volume*100),ee=e.episodes.findIndex(t=>t.season===e.seasonNumber&&t.number===e.episodeNumber),v=ee>=0&&ee<e.episodes.length-1,te=`${e.title}, season ${e.seasonNumber}, episode ${e.episodeNumber}`,y=t=>{let n=Math.max(0,Math.min(e.duration,Math.round(t)));d(null),o({type:`seek-to`,seconds:n})},[b,x]=(0,U.useState)(null),[ne,S]=(0,U.useState)(null);(0,U.useEffect)(()=>{let t=new AbortController;return fetch(`/api/netflix/markers?titleId=${encodeURIComponent(e.titleId)}`,{cache:`no-store`,signal:t.signal}).then(async e=>{if(!e.ok)return;let n=await e.json();if(!t.signal.aborted)for(let e of n.markers??[])e.markerType===`intro`?x(e.timeSeconds):e.markerType===`outro`&&S(e.timeSeconds)}).catch(()=>{}),()=>t.abort()},[e.titleId]);let C=b!==null&&p>=0&&p<=b&&!e.paused,w=ne!==null&&p>=ne&&e.duration>0&&!e.paused&&v;return(0,W.jsxs)(`article`,{className:`activity-card`,"aria-label":`${e.title} playback in ${t}`,style:{"--activity-artwork":`url("${e.artwork}")`},children:[(0,W.jsxs)(`div`,{className:`activity-card__art`,children:[(0,W.jsxs)(`div`,{className:`activity-card__source`,children:[(0,W.jsx)(`span`,{className:`activity-netflix-mark`,"aria-label":`Netflix`,children:`N`}),(0,W.jsxs)(`span`,{className:`activity-live`,children:[(0,W.jsx)(`i`,{"aria-hidden":`true`}),(0,W.jsx)(Re,{type:e.deviceType}),t]})]}),(0,W.jsxs)(`div`,{className:`activity-card__copy`,children:[(0,W.jsx)(`span`,{children:`Now watching`}),(0,W.jsx)(`h3`,{children:e.title}),(0,W.jsxs)(`p`,{children:[`S`,e.seasonNumber,`:E`,e.episodeNumber,(0,W.jsx)(`span`,{"aria-hidden":`true`,children:` · `}),e.episodeTitle]})]})]}),(0,W.jsxs)(`div`,{className:`activity-card__remote`,children:[(0,W.jsx)(`input`,{className:`activity-progress`,type:`range`,min:0,max:f,step:1,value:p,disabled:e.duration<=0,"aria-label":`${e.title} progress`,"aria-valuetext":`${Be(p)} of ${Be(e.duration)}`,title:`Seek ${e.title}`,style:{"--activity-progress":`${h}%`},onChange:e=>d(Number(e.currentTarget.value)),onPointerUp:e=>y(Number(e.currentTarget.value)),onPointerCancel:()=>d(null),onKeyUp:e=>{(e.key===`ArrowLeft`||e.key===`ArrowRight`||e.key===`ArrowUp`||e.key===`ArrowDown`||e.key===`Home`||e.key===`End`||e.key===`PageUp`||e.key===`PageDown`)&&y(Number(e.currentTarget.value))},onBlur:e=>{l!==null&&y(Number(e.currentTarget.value))}}),(0,W.jsxs)(`div`,{className:`activity-time`,children:[(0,W.jsx)(`time`,{children:Be(p)}),(0,W.jsx)(`span`,{children:Be(e.duration)})]}),(C||w)&&(0,W.jsxs)(`div`,{className:`activity-marker-actions`,children:[C&&(0,W.jsxs)(`button`,{type:`button`,className:`activity-skip-intro`,onClick:()=>o({type:`seek-to`,seconds:b}),"aria-label":`Skip intro of ${e.title}`,children:[(0,W.jsx)(oe,{}),`Skip Intro`]}),w&&(0,W.jsxs)(`button`,{type:`button`,className:`activity-next-episode-prompt`,onClick:()=>o({type:`next-episode`}),"aria-label":`Next episode of ${e.title}`,children:[(0,W.jsx)(m,{}),`Next Episode`]})]}),(0,W.jsxs)(`div`,{className:`activity-controls`,role:`group`,"aria-label":`Controls for ${te}`,children:[(0,W.jsx)(`button`,{type:`button`,onClick:()=>o({type:`set-paused`,paused:!e.paused}),"aria-label":`${e.paused?`Play`:`Pause`} ${e.title}`,children:e.paused?(0,W.jsx)(O,{fill:`currentColor`}):(0,W.jsx)(se,{fill:`currentColor`})}),(0,W.jsxs)(`button`,{className:`activity-ten-second`,type:`button`,onClick:()=>o({type:`seek-relative`,seconds:-10}),"aria-label":`Rewind ${e.title} 10 seconds`,children:[(0,W.jsx)(s,{}),(0,W.jsx)(`span`,{children:`10`})]}),(0,W.jsxs)(`button`,{className:`activity-ten-second`,type:`button`,onClick:()=>o({type:`seek-relative`,seconds:10}),"aria-label":`Forward ${e.title} 10 seconds`,children:[(0,W.jsx)(u,{}),(0,W.jsx)(`span`,{children:`10`})]}),(0,W.jsxs)(`div`,{className:`activity-volume`,children:[(0,W.jsx)(`button`,{type:`button`,onClick:()=>o({type:`set-muted`,muted:!e.muted}),"aria-label":`${e.muted?`Unmute`:`Mute`} ${e.title}`,"aria-pressed":e.muted,children:e.muted?(0,W.jsx)(ie,{}):(0,W.jsx)(E,{})}),(0,W.jsx)(`input`,{type:`range`,min:0,max:100,step:1,value:_,style:{"--activity-volume":`${_}%`},onChange:e=>o({type:`set-volume`,volume:Number(e.currentTarget.value)/100}),"aria-label":`Volume for ${e.title}`,"aria-valuetext":e.muted?`Muted, level ${_}%`:`${_}%`})]}),(0,W.jsx)(`button`,{type:`button`,onClick:()=>o({type:`next-episode`}),"aria-label":`Next episode of ${e.title}`,disabled:!v,children:(0,W.jsx)(m,{})}),(0,W.jsxs)(`label`,{className:`activity-episode-picker`,children:[(0,W.jsx)(c,{"aria-hidden":`true`}),(0,W.jsxs)(`span`,{className:`sr-only`,children:[`Choose episode for `,e.title]}),(0,W.jsx)(`select`,{value:e.episodeNumber,onChange:e=>o({type:`select-episode`,episodeNumber:Number(e.currentTarget.value)}),"aria-label":`Choose episode for ${e.title}`,children:e.episodes.map((e,t)=>(0,W.jsxs)(`option`,{value:e.number,children:[`S`,e.season,`:E`,e.number,` · `,e.title]},`${e.season}-${e.number}-${t}`))})]}),(0,W.jsx)(`button`,{className:n?`is-active`:``,type:`button`,onClick:i,"aria-label":`Edit subtitles for ${e.title}`,"aria-expanded":n,"aria-controls":`activity-subtitles-${e.sessionId}`,children:(0,W.jsx)(g,{})}),(0,W.jsx)(`button`,{className:r?`is-active`:``,type:`button`,onClick:a,"aria-label":`Switch ${e.title} to another movie`,"aria-expanded":r,"aria-controls":`activity-movies-${e.sessionId}`,children:(0,W.jsx)(M,{})})]}),n&&(0,W.jsxs)(`div`,{className:`activity-subtitle-editor`,id:`activity-subtitles-${e.sessionId}`,children:[(0,W.jsxs)(`div`,{className:`activity-subtitle-editor__heading`,children:[(0,W.jsxs)(`span`,{children:[(0,W.jsx)(xe,{"aria-hidden":`true`}),`Subtitle appearance`]}),(0,W.jsx)(`button`,{type:`button`,className:`activity-caption-toggle`,"aria-pressed":e.subtitles.captionsOn,"aria-label":e.subtitles.available?`${e.subtitles.captionsOn?`Turn off`:`Turn on`} subtitles for ${e.title}`:`Subtitles unavailable for ${e.title}`,disabled:!e.subtitles.available,onClick:()=>o({type:`set-captions`,enabled:!e.subtitles.captionsOn}),children:e.subtitles.available?e.subtitles.captionsOn?`On`:`Off`:`Unavailable`})]}),(0,W.jsxs)(`label`,{className:`activity-subtitle-size`,children:[(0,W.jsx)(`span`,{children:`Size`}),(0,W.jsx)(`input`,{type:`range`,min:18,max:64,step:2,value:e.subtitles.fontSize,onChange:e=>o({type:`set-subtitle-font-size`,fontSize:Number(e.currentTarget.value)}),"aria-label":`Subtitle size for ${e.title}`}),(0,W.jsxs)(`output`,{children:[e.subtitles.fontSize,`px`]})]}),(0,W.jsxs)(`label`,{className:`activity-subtitle-color`,children:[(0,W.jsx)(`span`,{children:`Text`}),(0,W.jsx)(`input`,{type:`color`,value:e.subtitles.fontColor,onChange:e=>o({type:`set-subtitle-font-color`,color:e.currentTarget.value}),"aria-label":`Subtitle text color for ${e.title}`})]}),(0,W.jsxs)(`label`,{className:`activity-subtitle-background`,children:[(0,W.jsx)(`span`,{children:`Background`}),(0,W.jsxs)(`select`,{value:e.subtitles.backgroundColor,onChange:e=>o({type:`set-subtitle-background`,background:e.currentTarget.value}),"aria-label":`Subtitle background for ${e.title}`,children:[(0,W.jsx)(`option`,{value:`transparent`,children:`None`}),(0,W.jsx)(`option`,{value:`rgba(0,0,0,0.75)`,children:`Dark`}),(0,W.jsx)(`option`,{value:`rgba(0,0,0,0.5)`,children:`Semi-dark`}),(0,W.jsx)(`option`,{value:`rgba(0,0,0,0.3)`,children:`Light`}),(0,W.jsx)(`option`,{value:`rgba(0,0,0,1)`,children:`Solid black`})]})]}),(0,W.jsx)(`button`,{className:`activity-reset-position`,type:`button`,onClick:()=>o({type:`reset-subtitle-position`}),children:`Reset position`})]})]})]})}function We({profiles:e,activeProfileId:t}){let[n,r]=(0,U.useState)([]),[i,a]=(0,U.useState)({}),[o,s]=(0,U.useState)(null),[c,l]=(0,U.useState)(null),u=(0,U.useCallback)(async e=>{if(!t){a({}),r([]);return}try{let n=await fetch(`/api/netflix/activity?profileId=${encodeURIComponent(t)}`,{cache:`no-store`,signal:e});if(!n.ok)return;let i=await n.json(),o=Array.isArray(i.activities)?i.activities.filter(e=>e.profileId===t):[],c=o.map(e=>e.sessionId),u=new Set(c);r(e=>[...e.filter(e=>u.has(e)),...c.filter(t=>!e.includes(t))]),a(Object.fromEntries(o.map(e=>[e.sessionId,e]))),s(e=>e&&!u.has(e)?null:e),l(e=>e&&!u.has(e)?null:e)}catch{}},[t]);(0,U.useEffect)(()=>{let e=new AbortController,t=()=>void u(e.signal),n=()=>{document.visibilityState===`visible`&&t()},r=window.requestAnimationFrame(t),i=window.setInterval(t,1e3);return window.addEventListener(`focus`,t),document.addEventListener(`visibilitychange`,n),()=>{e.abort(),window.cancelAnimationFrame(r),window.clearInterval(i),window.removeEventListener(`focus`,t),document.removeEventListener(`visibilitychange`,n)}},[u]);let d=(0,U.useMemo)(()=>Object.values(i).sort((e,t)=>n.indexOf(e.sessionId)-n.indexOf(t.sessionId)),[i,n]),f=e.find(e=>e.id===t),p=(0,U.useCallback)((e,t)=>{let n=i[e]?.profileId;n&&(a(n=>{let r=n[e];return r?{...n,[e]:ze(r,t)}:n}),fetch(`/api/netflix/activity/${encodeURIComponent(e)}/commands?profileId=${encodeURIComponent(n)}`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({command:t})}).catch(()=>{}))},[i]),m=(0,U.useCallback)(async(e,t)=>{let n=i[e]?.profileId;if(!n)throw Error(`Playback profile is unavailable.`);let r=t;if(t.sourceProvider&&t.sourceUrl&&!t.canStream&&!t.playbackPath){let e=await fetch(`/api/netflix/movies/import`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({url:t.sourceUrl,mode:`stream`,profileId:n})}),i=await e.json();if(!e.ok||!i.title)throw Error(i.error||`Movie details could not be loaded.`);r=i.title}let a=await fetch(`/api/netflix/activity/${encodeURIComponent(e)}/commands?profileId=${encodeURIComponent(n)}`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({command:{type:`switch-title`,titleId:r.id}})}),o=await a.json();if(!a.ok)throw Error(o.error||`The movie could not be switched.`)},[i]),h=(0,U.useCallback)(async(e,t)=>{let n=i[e]?.profileId;if(!n)throw Error(`Playback profile is unavailable.`);let r=await fetch(`/api/netflix/activity/${encodeURIComponent(e)}/commands?profileId=${encodeURIComponent(n)}`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({command:{type:`switch-track`,trackId:t.id}})}),a=await r.json();if(!r.ok)throw Error(a.error||`The track could not be switched.`)},[i]),g=(0,U.useCallback)(async(e,t)=>{let n=i[e]?.profileId;if(!n)throw Error(`Playback profile is unavailable.`);let r=await fetch(`/api/netflix/activity/${encodeURIComponent(e)}/commands?profileId=${encodeURIComponent(n)}`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({command:{type:`switch-playlist`,playlistId:t.id}})}),a=await r.json();if(!r.ok)throw Error(a.error||`The playlist could not be switched.`)},[i]);return(0,W.jsxs)(`section`,{className:`store-container activity-section`,"aria-labelledby":`activity-heading`,children:[(0,W.jsx)(`div`,{className:`activity-heading`,children:(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`h2`,{id:`activity-heading`,children:`Activity`}),(0,W.jsxs)(`p`,{children:[`Control Netflix and Spotify playing on your other devices`,f?` for ${f.name}`:``,`.`]})]})}),d.length>0&&(0,W.jsxs)(`p`,{className:`sr-only`,role:`status`,children:[d.length,` active playback`,` `,d.length===1?`session`:`sessions`,`.`]}),c&&i[c]?i[c].service===`spotify`?(0,W.jsx)(C,{activity:i[c],onClose:()=>l(null),onSelectTrack:e=>h(c,e),onSelectPlaylist:e=>g(c,e)}):(0,W.jsx)(He,{activity:i[c],onClose:()=>l(null),onSelect:e=>m(c,e)}):null,d.length?(0,W.jsx)(`div`,{className:`activity-list`,children:d.map((e,t)=>e.service===`spotify`?(0,W.jsx)(S,{activity:e,tabLabel:e.machineName||`Player ${t+1}`,searchOpen:c===e.sessionId,onSearchToggle:()=>{let t=c!==e.sessionId;l(t?e.sessionId:null),t&&s(null)},onCommand:t=>p(e.sessionId,t)},e.sessionId):(0,W.jsx)(Ue,{activity:e,tabLabel:e.machineName||`Player ${t+1}`,editorOpen:o===e.sessionId,searchOpen:c===e.sessionId,onEditorToggle:()=>{let t=o!==e.sessionId;s(t?e.sessionId:null),t&&l(null)},onSearchToggle:()=>{let t=c!==e.sessionId;l(t?e.sessionId:null),t&&s(null)},onCommand:t=>p(e.sessionId,t)},e.sessionId))}):(0,W.jsxs)(`div`,{className:`activity-empty`,role:`status`,children:[(0,W.jsx)(`span`,{className:`activity-empty__icon`,"aria-hidden":`true`,children:(0,W.jsx)(O,{fill:`currentColor`})}),(0,W.jsxs)(`span`,{children:[(0,W.jsx)(`strong`,{children:`Nothing playing right now`}),(0,W.jsx)(`small`,{children:`Start Netflix or Spotify on another device and it will appear here.`})]})]})]})}var Ge=[`a[href]`,`button:not([disabled])`,`input:not([disabled])`,`select:not([disabled])`,`[tabindex]:not([tabindex='-1'])`].join(`,`);function Ke(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.id==`string`&&typeof t.label==`string`&&typeof t.width==`number`&&t.width>0&&typeof t.height==`number`&&t.height>0&&typeof t.pixelWidth==`number`&&t.pixelWidth>0&&typeof t.pixelHeight==`number`&&t.pixelHeight>0}function qe(e){if(!e||typeof e!=`object`)return!1;let t=e;return(t.platform===`macos`||t.platform===`windows`||t.platform===`unsupported`)&&typeof t.platformLabel==`string`&&typeof t.hostName==`string`&&typeof t.supported==`boolean`&&Array.isArray(t.displays)&&t.displays.every(Ke)}async function J(e,t){if((e.headers.get(`content-type`)??``).includes(`json`)){let n=await e.json().catch(()=>null);return typeof n?.error==`string`&&n.error.trim()?n.error:t}return(await e.text().catch(()=>``)).trim()||t}function Je({title:e,children:t}){let[n,r]=(0,U.useState)(!0);return(0,W.jsxs)(`section`,{className:`rsapp-settings-section`,children:[(0,W.jsxs)(`button`,{type:`button`,className:`rsapp-settings-section__toggle`,"aria-expanded":n,onClick:()=>r(e=>!e),children:[(0,W.jsx)(`span`,{children:e}),(0,W.jsx)(T,{className:n?`is-open`:``,"aria-hidden":`true`})]}),n&&(0,W.jsx)(`div`,{className:`rsapp-settings-section__body`,children:t})]})}function Y({id:e,checked:t,title:n,description:r,onChange:i,disabled:a=!1}){return(0,W.jsxs)(`label`,{className:`rsapp-setting${a?` is-disabled`:``}`,htmlFor:e,children:[(0,W.jsx)(`input`,{id:e,type:`checkbox`,checked:t,disabled:a,onChange:e=>i(e.target.checked)}),(0,W.jsxs)(`span`,{className:`rsapp-setting__copy`,children:[(0,W.jsx)(`strong`,{children:n}),(0,W.jsx)(`small`,{children:r})]})]})}function X({icon:e,title:t,description:n,action:r,onAction:i,busy:a=!1}){return(0,W.jsxs)(`div`,{className:`rsapp-status-card`,role:`status`,"aria-live":`polite`,children:[(0,W.jsx)(`span`,{className:`rsapp-status-card__icon`,children:e}),(0,W.jsx)(`strong`,{children:t}),(0,W.jsx)(`p`,{children:n}),r&&i&&(0,W.jsxs)(`button`,{type:`button`,onClick:i,children:[a?(0,W.jsx)(A,{className:`rsapp-spin`}):(0,W.jsx)(D,{}),r]})]})}function Ye({onClose:e}){let t=(0,U.useRef)(null),n=(0,U.useRef)(null),r=(0,U.useRef)(null),i=(0,U.useRef)(null),a=(0,U.useRef)(``),s=(0,U.useRef)(Promise.resolve()),c=(0,U.useRef)(null),u=(0,U.useRef)(null),d=(0,U.useRef)(null),[f,m]=(0,U.useState)(`detecting`),[g,_]=(0,U.useState)(null),[ee,v]=(0,U.useState)(``),[te,y]=(0,U.useState)(0),[b,S]=(0,U.useState)(``),[C,w]=(0,U.useState)(!1),[re,T]=(0,U.useState)(`idle`),[E,O]=(0,U.useState)(``),[ie,oe]=(0,U.useState)(0),[se,M]=(0,U.useState)(``),[N,P]=(0,U.useState)(!0),[F,ce]=(0,U.useState)(!0),[le,ue]=(0,U.useState)(!1),[I,de]=(0,U.useState)(!0),[fe,pe]=(0,U.useState)(!1),[R,me]=(0,U.useState)(!1),[_e,ve]=(0,U.useState)(!0),[ye,xe]=(0,U.useState)(5),[z,Se]=(0,U.useState)({width:0,height:0}),[B,V]=(0,U.useState)(``),H=(0,U.useMemo)(()=>g?.displays.find(e=>e.id===b)??g?.displays[0]??null,[g,b]);(0,U.useEffect)(()=>{let r=document.activeElement instanceof HTMLElement?document.activeElement:null,i=t.current;document.body.classList.add(`modal-open`),n.current?.focus();let a=t=>{if(t.defaultPrevented)return;if(t.key===`Escape`){if(document.fullscreenElement)return;t.preventDefault(),e();return}if(t.key!==`Tab`||!i)return;let n=Array.from(i.querySelectorAll(Ge)).filter(e=>!e.closest(`[inert]`)&&e.getAttribute(`aria-hidden`)!==`true`);if(!n.length){t.preventDefault();return}let r=n[0],a=n[n.length-1];t.shiftKey&&document.activeElement===r?(t.preventDefault(),a.focus()):!t.shiftKey&&document.activeElement===a?(t.preventDefault(),r.focus()):i.contains(document.activeElement)||(t.preventDefault(),r.focus())};return document.addEventListener(`keydown`,a),()=>{document.removeEventListener(`keydown`,a),document.body.classList.remove(`modal-open`),document.fullscreenElement===i&&document.exitFullscreen(),r?.focus()}},[e]),(0,U.useEffect)(()=>{let e=()=>{ue(document.fullscreenElement===t.current)};return document.addEventListener(`fullscreenchange`,e),()=>document.removeEventListener(`fullscreenchange`,e)},[]),(0,U.useEffect)(()=>{let e=r.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect();Se({width:Math.max(0,t.width),height:Math.max(0,t.height)})};t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[]),(0,U.useEffect)(()=>{let e=new AbortController;return(async()=>{m(`detecting`),v(``),T(`idle`);try{let t=await fetch(`/api/remote-screen`,{cache:`no-store`,signal:e.signal});if(!t.ok)throw Error(await J(t,`Unable to inspect this computer's displays`));let n=await t.json();if(!qe(n))throw Error(`The screen service returned an invalid response`);if(!n.supported)throw Error(`Remote screen control is not supported on ${n.platformLabel}.`);if(!n.displays.length)throw Error(`No active displays were found on this computer`);if(n.platform===`macos`&&n.permissions?.screenRecording===`denied`)throw Error(`Screen Recording permission is required. Allow the app running Home Atom in macOS System Settings, then try again.`);_(n),S(e=>n.displays.some(t=>t.id===e)?e:n.displays[0].id),m(`ready`),w(!0),n.platform===`macos`&&n.permissions?.accessibility===`denied`&&V(`Allow Accessibility for the app running Home Atom to enable pointer and keyboard control.`)}catch(t){if(e.signal.aborted)return;_(null),w(!1),m(`error`),v(t instanceof Error?t.message:`Unable to inspect this computer's displays`)}})(),()=>e.abort()},[te]),(0,U.useEffect)(()=>{if(!H||f!==`ready`||!C)return;let e=!1,t=null,n=new AbortController,r=1e3/ye,i=async()=>{let o=r;try{let t=new URLSearchParams({display:H.id,quality:R?`high`:`balanced`,density:fe?`high`:`standard`}),r=await fetch(`/api/remote-screen/frame?${t.toString()}`,{cache:`no-store`,signal:n.signal}),i=r.headers.get(`content-type`)??``;if(!r.ok||i.includes(`json`))throw Error(await J(r,`Unable to capture this display`));let o=await r.blob();if(!o.size)throw Error(`The screen service returned an empty frame`);let s=URL.createObjectURL(o),c=a.current;a.current=s,M(s),c&&URL.revokeObjectURL(c),e||(T(`live`),O(``))}catch(t){if(n.signal.aborted||e)return;o=Math.max(1e3,r),T(`error`),O(t instanceof Error?t.message:`Unable to capture this display`)}finally{!e&&!n.signal.aborted&&(t=window.setTimeout(()=>void i(),o))}};return i(),()=>{e=!0,n.abort(),t!==null&&window.clearTimeout(t)}},[f,C,ye,fe,R,H,ie]),(0,U.useEffect)(()=>()=>{a.current&&URL.revokeObjectURL(a.current),d.current!==null&&window.cancelAnimationFrame(d.current)},[]),(0,U.useEffect)(()=>{if(!B)return;let e=window.setTimeout(()=>V(``),4200);return()=>window.clearTimeout(e)},[B]);let we=(0,U.useMemo)(()=>{if(!H)return{width:1,height:1};if(!I)return{width:H.width,height:H.height};let e=Math.max(1,z.width),t=Math.max(1,z.height),n=Math.min(e/H.width,t/H.height);return{width:Math.max(1,Math.floor(H.width*n)),height:Math.max(1,Math.floor(H.height*n))}},[I,H,z]),G=(0,U.useCallback)(e=>{s.current=s.current.catch(()=>void 0).then(async()=>{let t=await fetch(`/api/remote-screen/control`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await J(t,`Computer control failed`))}).catch(e=>{V(e instanceof Error?e.message:`Computer control failed`)})},[]),K=(0,U.useCallback)((e,t)=>{let n=i.current;if(!n||!H)return null;let r=n.getBoundingClientRect();return!r.width||!r.height?null:{x:Math.min(1,Math.max(0,(e-r.left)/r.width)),y:Math.min(1,Math.max(0,(t-r.top)/r.height))}},[H]),Te=(0,U.useCallback)(()=>{d.current=null;let e=u.current;u.current=null,!(!e||!H)&&G({action:`move`,displayId:H.id,...e})},[G,H]),Ee=e=>{if(!H||!C||e.button!==0)return;let t=K(e.clientX,e.clientY);t&&(e.preventDefault(),e.currentTarget.focus(),N&&!F&&P(!1),c.current=e.pointerId,e.currentTarget.setPointerCapture(e.pointerId),G({action:`down`,displayId:H.id,...t}))},De=e=>{if(!H||!C)return;let t=c.current===e.pointerId;if(!t&&e.pointerType===`touch`)return;let n=K(e.clientX,e.clientY);n&&(t&&e.preventDefault(),u.current=n,d.current===null&&(d.current=window.requestAnimationFrame(Te)))},Oe=e=>{if(c.current!==e.pointerId||!H||!C)return;let t=K(e.clientX,e.clientY)??u.current??{x:0,y:0};e.preventDefault(),d.current!==null&&(window.cancelAnimationFrame(d.current),d.current=null,u.current=null),c.current=null,e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId),G({action:`up`,displayId:H.id,...t})},ke=e=>{if(e.preventDefault(),!H||!C)return;let t=K(e.clientX,e.clientY);t&&G({action:`rightClick`,displayId:H.id,...t})},Ae=e=>{if(!H||!C)return;let t=K(e.clientX,e.clientY);t&&(e.preventDefault(),G({action:`scroll`,displayId:H.id,...t,dx:Math.max(-240,Math.min(240,e.deltaX)),dy:Math.max(-240,Math.min(240,e.deltaY))}))},je=async e=>{if(!C||!H||e.nativeEvent.isComposing||e.code.startsWith(`Shift`)||e.code.startsWith(`Control`)||e.code.startsWith(`Alt`)||e.code.startsWith(`Meta`))return;e.preventDefault();let t=[];e.shiftKey&&t.push(`ShiftLeft`),e.ctrlKey&&t.push(`ControlLeft`),e.altKey&&t.push(`AltLeft`),e.metaKey&&t.push(`MetaLeft`);try{let n=await fetch(`/api/keyboard`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({code:e.code,output:e.key.length===1?e.key:void 0,modifiers:t})});if(!n.ok)throw Error(await J(n,`Keyboard control failed`))}catch(e){V(e instanceof Error?e.message:`Keyboard control failed`)}},Me=async()=>{if(!g||g.platform===`unsupported`)return;let e=g.platform===`macos`;try{let t=await fetch(`/api/keyboard`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({code:`Escape`,modifiers:e?[`MetaLeft`,`AltLeft`]:[`ControlLeft`,`ShiftLeft`]})});if(!t.ok)throw Error(await J(t,`Unable to send the shortcut`));V(e?`Command + Option + Escape sent`:`Control + Shift + Escape sent`)}catch(e){V(e instanceof Error?e.message:`Unable to send the shortcut`)}},q=async()=>{try{document.fullscreenElement?await document.exitFullscreen():t.current&&(await t.current.requestFullscreen(),P(!1))}catch{V(`Full-screen mode is unavailable in this browser`)}},Ne=()=>{w(!0),T(`loading`),O(``),oe(e=>e+1)},Pe=(()=>{if(f===`detecting`)return(0,W.jsx)(X,{icon:(0,W.jsx)(A,{className:`rsapp-spin`}),title:`Finding this computer’s displays`,description:`Checking the local macOS or Windows screen service.`});if(f===`error`)return(0,W.jsx)(X,{icon:(0,W.jsx)(he,{}),title:`Screen control unavailable`,description:ee,action:`Try again`,onAction:()=>y(e=>e+1)});if(!C)return(0,W.jsx)(X,{icon:(0,W.jsx)(Ce,{}),title:`Screen sharing paused`,description:`Reconnect to view and control this computer again.`,action:`Reconnect`,onAction:Ne});if(re===`error`){let e=g?.platform===`macos`&&/permission|record|denied|authoriz/i.test(E);return(0,W.jsx)(X,{icon:(0,W.jsx)(he,{}),title:e?`Screen Recording permission needed`:`The display is not available`,description:e?`${E} Allow Screen Recording for the app running Home Atom, then retry.`:E,action:`Retry capture`,onAction:()=>oe(e=>e+1)})}return re===`live`?null:(0,W.jsx)(X,{icon:(0,W.jsx)(A,{className:`rsapp-spin`}),title:`Opening ${H?.label??`display`}`,description:`Waiting for the first JPEG frame from this computer.`})})(),Fe={width:`${we.width}px`,height:`${we.height}px`};return(0,W.jsxs)(`div`,{ref:t,className:`rsapp-layer${N?` has-open-panel`:``}`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`remote-screen-app-title`,children:[(0,W.jsx)(`h1`,{id:`remote-screen-app-title`,className:`rsapp-sr-only`,children:`Remote screen`}),(0,W.jsxs)(`div`,{className:`rsapp-display-bar`,children:[(0,W.jsx)(`span`,{className:`rsapp-display-bar__mark`,"aria-hidden":`true`,children:(0,W.jsx)(x,{})}),(0,W.jsxs)(`div`,{className:`rsapp-display-tabs`,role:`tablist`,"aria-label":`Displays on this computer`,children:[g?.displays.map(e=>{let t=H?.id===e.id;return(0,W.jsxs)(`button`,{type:`button`,role:`tab`,id:`rsapp-display-${e.id}`,"aria-selected":t,"aria-controls":`rsapp-current-display`,className:t?`is-selected`:``,onClick:()=>{S(e.id),T(`loading`),O(``)},children:[(0,W.jsx)(x,{"aria-hidden":`true`}),(0,W.jsx)(`span`,{children:e.label}),(0,W.jsxs)(`small`,{children:[e.width,`×`,e.height]})]},e.id)}),f===`detecting`&&(0,W.jsxs)(`span`,{className:`rsapp-display-tabs__loading`,children:[(0,W.jsx)(A,{className:`rsapp-spin`}),`Detecting displays`]})]})]}),(0,W.jsxs)(`main`,{ref:r,id:`rsapp-current-display`,className:`rsapp-stage${I?``:` is-native-size`}`,role:`tabpanel`,"aria-labelledby":H?`rsapp-display-${H.id}`:void 0,children:[(0,W.jsx)(`div`,{className:`rsapp-stage__sizer`,children:H&&(0,W.jsx)(`div`,{ref:i,className:`rsapp-screen${_e?` is-smooth`:` is-crisp`}${C?` is-connected`:``}`,style:Fe,role:`application`,tabIndex:C?0:-1,"aria-label":`${H.label} remote desktop. Click to focus, then use the keyboard.`,onPointerDown:Ee,onPointerMove:De,onPointerUp:Oe,onPointerCancel:Oe,onContextMenu:ke,onWheel:Ae,onKeyDown:e=>void je(e),children:se&&(0,W.jsx)(`img`,{src:se,alt:``,draggable:!1})})}),Pe&&(0,W.jsx)(`div`,{className:`rsapp-stage__status`,children:Pe})]}),(0,W.jsx)(`button`,{type:`button`,className:`rsapp-panel-handle`,"aria-label":N?`Hide settings`:`Show settings`,"aria-expanded":N,onClick:()=>P(e=>!e),children:N?(0,W.jsx)(k,{}):(0,W.jsx)(o,{})}),(0,W.jsxs)(`aside`,{className:`rsapp-panel`,"aria-label":`Remote screen settings`,"aria-hidden":!N,inert:!N,children:[(0,W.jsxs)(`header`,{className:`rsapp-panel__header`,children:[(0,W.jsx)(`button`,{ref:n,type:`button`,onClick:e,"aria-label":`Back to App store`,children:(0,W.jsx)(l,{})}),(0,W.jsx)(`button`,{type:`button`,"aria-label":F?`Unpin settings`:`Pin settings`,"aria-pressed":F,onClick:()=>ce(e=>!e),children:F?(0,W.jsx)(ne,{}):(0,W.jsx)(be,{})}),(0,W.jsxs)(`div`,{className:`rsapp-panel__header-actions`,children:[(0,W.jsx)(ae,{id:`remote-screen-access-popover`,popoverClassName:`rsapp-access-popover`,theme:`light`}),(0,W.jsx)(`button`,{type:`button`,"aria-label":`Hide settings`,onClick:()=>P(!1),children:(0,W.jsx)(j,{})})]})]}),(0,W.jsxs)(`div`,{className:`rsapp-panel__actions`,children:[(0,W.jsxs)(`button`,{type:`button`,onClick:()=>C?w(!1):Ne(),disabled:f!==`ready`,children:[C?(0,W.jsx)(he,{}):(0,W.jsx)(D,{}),(0,W.jsx)(`span`,{children:C?`Disconnect`:`Reconnect`})]}),(0,W.jsxs)(`button`,{type:`button`,onClick:()=>void q(),children:[le?(0,W.jsx)(p,{}):(0,W.jsx)(h,{}),(0,W.jsx)(`span`,{children:le?`Exit full-screen`:`Full-screen`})]})]}),(0,W.jsxs)(`div`,{className:`rsapp-panel__scroll`,children:[(0,W.jsxs)(Je,{title:`Session options`,children:[(0,W.jsx)(Y,{id:`rsapp-scale-to-fit`,checked:I,title:`Scale to fit`,description:`Keep the whole local display visible`,onChange:de}),(0,W.jsx)(Y,{id:`rsapp-high-density`,checked:fe,title:`High-DPI mode`,description:`Request the display’s physical-pixel capture`,onChange:pe}),(0,W.jsx)(Y,{id:`rsapp-resize-to-fit`,checked:!1,disabled:!0,title:`Resize to fit`,description:`${g?.hostName||`This computer`} keeps its current display resolution`,onChange:()=>void 0})]}),(0,W.jsxs)(Je,{title:`Video`,children:[(0,W.jsxs)(`label`,{className:`rsapp-select-setting`,htmlFor:`rsapp-format`,children:[(0,W.jsx)(`strong`,{children:`Video codec`}),(0,W.jsx)(`select`,{id:`rsapp-format`,value:`jpeg`,disabled:!0,children:(0,W.jsx)(`option`,{value:`jpeg`,children:`JPEG`})}),(0,W.jsx)(`small`,{children:`The local screen service sends individual JPEG frames.`})]}),(0,W.jsx)(Y,{id:`rsapp-high-quality`,checked:R,title:`High-quality color`,description:`Use a higher-quality JPEG for gradients and fine color`,onChange:me}),(0,W.jsxs)(`label`,{className:`rsapp-select-setting`,htmlFor:`rsapp-frame-rate`,children:[(0,W.jsx)(`strong`,{children:`Maximum frame rate`}),(0,W.jsxs)(`select`,{id:`rsapp-frame-rate`,value:ye,onChange:e=>xe(Number(e.target.value)),children:[(0,W.jsx)(`option`,{value:2,children:`2 FPS`}),(0,W.jsx)(`option`,{value:5,children:`5 FPS`}),(0,W.jsx)(`option`,{value:10,children:`10 FPS`})]}),(0,W.jsx)(`small`,{children:`Higher rates are more responsive but use more CPU and bandwidth.`})]}),(0,W.jsx)(Y,{id:`rsapp-smooth-scaling`,checked:_e,title:`Smooth scaling`,description:`Blend pixels when the display is shown at a smaller size`,onChange:ve})]}),(0,W.jsxs)(Je,{title:`Input controls`,children:[(0,W.jsxs)(`div`,{className:`rsapp-input-help`,children:[(0,W.jsx)(ge,{"aria-hidden":`true`}),(0,W.jsx)(`span`,{children:`Click the desktop, then type. Drag, right-click, and wheel gestures are sent to this computer.`})]}),(0,W.jsxs)(`button`,{type:`button`,className:`rsapp-shortcut`,disabled:!C||f!==`ready`,onClick:()=>void Me(),children:[(0,W.jsx)(L,{"aria-hidden":`true`}),(0,W.jsxs)(`span`,{children:[`Press`,` `,g?.platform===`macos`?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`kbd`,{children:`Cmd`}),` + `,(0,W.jsx)(`kbd`,{children:`Option`}),` + `,(0,W.jsx)(`kbd`,{children:`Esc`})]}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`kbd`,{children:`Ctrl`}),` + `,(0,W.jsx)(`kbd`,{children:`Shift`}),` + `,(0,W.jsx)(`kbd`,{children:`Esc`})]})]})]}),g?.platform===`windows`&&(0,W.jsx)(`p`,{className:`rsapp-secure-note`,children:`Windows reserves Ctrl + Alt + Del for the secure desktop, so a browser-hosted controller cannot send it.`})]})]})]}),B&&(0,W.jsxs)(`div`,{className:`rsapp-toast`,role:`status`,children:[(0,W.jsx)(`span`,{children:B}),(0,W.jsx)(`button`,{type:`button`,"aria-label":`Dismiss message`,onClick:()=>V(``),children:(0,W.jsx)(j,{})})]})]})}var Xe={id:`keyboard`,name:`Keyboard, trackpad`,category:`Tools`,rating:`4.9`,icon:`keyboard`,gradient:`linear-gradient(145deg, #252b33 0%, #11151a 58%, #f06a4a 160%)`,description:`A complete interactive keyboard and trackpad that controls your computer remotely. Full keyboard, numpad, navigation, and precision trackpad — all in one app.`,size:`8.4 MB`,age:`Everyone`,featured:!0,launch:`keyboard`},Ze={id:`remote-screen`,name:`Remote Screen`,category:`Tools`,rating:`4.9`,icon:`monitor`,gradient:`linear-gradient(145deg, #eaf2ff 0%, #4f7bd9 52%, #182744 135%)`,description:`View and control this computer from another device with a responsive live screen, precise pointer input, and keyboard shortcuts for macOS and Windows.`,size:`10.8 MB`,age:`Everyone`,featured:!0,launch:`remote-screen`},Qe={id:`netflix`,name:`Netflix`,category:`Entertainment`,rating:`4.8`,icon:`netflix`,gradient:`linear-gradient(145deg, #241012 0%, #090909 64%, #e50914 180%)`,description:`Browse cinematic collections, search titles, build My List, and import movies into a local SQLite-backed library for playback at home.`,size:`36 MB`,age:`Teen`,featured:!0,route:`/netflix`},$e={id:`spotify`,name:`Spotify`,category:`Music & audio`,rating:`4.8`,icon:`spotify`,gradient:`linear-gradient(145deg, #30e978 0%, #169c4a 52%, #08180e 130%)`,description:`Explore playlists, search music, manage your library, and download supported tracks into a local SQLite-backed collection.`,size:`28 MB`,age:`Teen`,featured:!0,route:`/spotify`},Z={Phone:[Xe,Ze,Qe,$e,{id:`daylight`,name:`Daylight`,category:`Wellbeing & focus`,rating:`4.8`,icon:`sparkles`,gradient:`linear-gradient(145deg, #fff0b5 0%, #ffb774 52%, #ef6f6c 100%)`,description:`Make room for the things that matter with gentle routines, beautiful focus sessions, and a calmer daily rhythm.`,size:`24 MB`,age:`Everyone`,featured:!0},{id:`noted`,name:`Noted Calendar`,category:`Productivity`,rating:`4.6`,icon:`calendar`,gradient:`linear-gradient(145deg, #f8fafc 0%, #dce4ec 100%)`,description:`A thoughtfully simple calendar that brings tasks, notes, and your schedule into one peaceful view.`,size:`18 MB`,age:`Everyone`},{id:`sonora`,name:`Sonora`,category:`Music & audio`,rating:`4.7`,icon:`music`,gradient:`linear-gradient(145deg, #7457ff 0%, #4020c9 100%)`,description:`Find a new soundtrack for every mood with handpicked mixes and rich, room-filling sound.`,size:`42 MB`,age:`Teen`},{id:`sprout`,name:`Sprout Habit`,category:`Health & fitness`,rating:`4.5`,icon:`leaf`,gradient:`linear-gradient(145deg, #d9ffe8 0%, #46c985 100%)`,description:`Grow tiny habits into lasting change with friendly reminders and progress that feels rewarding.`,size:`16 MB`,age:`Everyone`},{id:`mindly`,name:`Mindly AI`,category:`Education`,rating:`4.8`,icon:`brain`,gradient:`linear-gradient(145deg, #d8f2ff 0%, #408bd5 100%)`,description:`Turn difficult ideas into visual explanations, quick quizzes, and learning plans built just for you.`,size:`31 MB`,age:`Everyone`},{id:`grain`,name:`Grain Camera`,category:`Photography`,rating:`4.4`,icon:`camera`,gradient:`linear-gradient(145deg, #ffd6de 0%, #c8466f 100%)`,description:`Capture warm, character-filled photos with tactile film controls and carefully made presets.`,size:`56 MB`,age:`Everyone`},{id:`circles`,name:`Circles`,category:`Social`,rating:`4.6`,icon:`message`,gradient:`linear-gradient(145deg, #baf5f0 0%, #0c978c 100%)`,description:`A friendly place for close-knit groups to share plans, photos, and the little moments in between.`,size:`38 MB`,age:`Teen`},{id:`kindred`,name:`Kindred`,category:`Lifestyle`,rating:`4.9`,icon:`heart`,gradient:`linear-gradient(145deg, #ffe5f3 0%, #dd6fa9 100%)`,description:`Keep the people you love close with shared memories, thoughtful prompts, and private spaces.`,size:`29 MB`,age:`Teen`}],Tablet:[Xe,Ze,Qe,$e,{id:`canvas`,name:`Canvas Studio`,category:`Art & design`,rating:`4.7`,icon:`palette`,gradient:`linear-gradient(145deg, #ffe2bc 0%, #ea6a47 100%)`,description:`A spacious digital studio with natural brushes, flexible layers, and powerful creative tools.`,size:`112 MB`,age:`Everyone`,featured:!0},{id:`folio`,name:`Folio Reader`,category:`Books & reference`,rating:`4.8`,icon:`book`,gradient:`linear-gradient(145deg, #d8efff 0%, #5f85e8 100%)`,description:`A beautiful home for books, essays, and PDFs, designed for comfortable long-form reading.`,size:`35 MB`,age:`Everyone`},{id:`orbit`,name:`Orbit Browser`,category:`Tools`,rating:`4.5`,icon:`globe`,gradient:`linear-gradient(145deg, #d7fff8 0%, #218e9f 100%)`,description:`Browse with focus using clean workspaces, synced tabs, and privacy that is easy to understand.`,size:`48 MB`,age:`Everyone`},{id:`tempo`,name:`Tempo Notes`,category:`Productivity`,rating:`4.6`,icon:`wand`,gradient:`linear-gradient(145deg, #ede2ff 0%, #8155cf 100%)`,description:`Sketch ideas, arrange research, and turn rough notes into polished plans on a limitless canvas.`,size:`27 MB`,age:`Everyone`},{id:`drift`,name:`Drift Weather`,category:`Weather`,rating:`4.7`,icon:`cloud`,gradient:`linear-gradient(145deg, #e1f5ff 0%, #4da4ed 100%)`,description:`Beautiful local forecasts, live rain maps, and clear answers for every plan you make.`,size:`22 MB`,age:`Everyone`},{id:`sonora-tablet`,name:`Sonora`,category:`Music & audio`,rating:`4.7`,icon:`headphones`,gradient:`linear-gradient(145deg, #7457ff 0%, #4020c9 100%)`,description:`Find a new soundtrack for every mood with handpicked mixes and rich, room-filling sound.`,size:`42 MB`,age:`Teen`}]},Q=[{id:`lumen`,name:`Lumen AI`,category:`Productivity`,rating:`4.8`,icon:`wand`,gradient:`linear-gradient(145deg, #f1d8ff 0%, #9844d2 100%)`,description:`Write, organize, and explore new ideas with an assistant that stays out of your way.`,size:`26 MB`,age:`Everyone`},{id:`echo`,name:`Echo Translate`,category:`Travel & local`,rating:`4.7`,icon:`globe`,gradient:`linear-gradient(145deg, #d5f7ff 0%, #2b86c8 100%)`,description:`Natural voice translation and useful local phrases for conversations wherever you go.`,size:`33 MB`,age:`Everyone`},{id:`clearspace`,name:`Clearspace`,category:`Tools`,rating:`4.6`,icon:`shield`,gradient:`linear-gradient(145deg, #dff9e8 0%, #3eaf6d 100%)`,description:`A private, thoughtful assistant that helps you tidy files, photos, and everyday digital clutter.`,size:`19 MB`,age:`Everyone`},{id:`storyloom`,name:`Storyloom`,category:`Entertainment`,rating:`4.9`,icon:`book`,gradient:`linear-gradient(145deg, #ffe3c0 0%, #ee8251 100%)`,description:`Create illustrated bedtime stories and imaginative adventures for the whole family.`,size:`44 MB`,age:`Everyone`},{id:`wave`,name:`Wave Studio`,category:`Music & audio`,rating:`4.5`,icon:`music`,gradient:`linear-gradient(145deg, #cfe8ff 0%, #3d55b8 100%)`,description:`Clean up recordings, shape your sound, and share studio-quality audio from anywhere.`,size:`51 MB`,age:`Everyone`},{id:`muse`,name:`Muse Camera`,category:`Photography`,rating:`4.7`,icon:`camera`,gradient:`linear-gradient(145deg, #fff0da 0%, #e58b3d 100%)`,description:`A pocket creative director for better portraits, lighting, and memorable compositions.`,size:`62 MB`,age:`Everyone`}],et=[Xe,Ze,Qe,$e,Q[0],Z.Phone.find(({id:e})=>e===`mindly`),Q[1]],tt={sparkles:w,calendar:ce,music:ve,leaf:R,brain:F,camera:le,message:me,heart:te,book:P,globe:de,wand:V,cloud:I,headphones:pe,palette:ye,shield:z,keyboard:L,monitor:x,play:O},nt=[{label:`Phone`,icon:v},{label:`Tablet`,icon:b},{label:`TV`,icon:B},{label:`Chromebook`,icon:y},{label:`Watch`,icon:H},{label:`Car`,icon:ue},{label:`XR headset`,icon:x}],rt={keyboard:`/icons/keyboard.ico`,"remote-screen":`/icons/remote-screen.ico`},it=[`a[href]`,`button:not([disabled])`,`input:not([disabled])`,`select:not([disabled])`,`textarea:not([disabled])`,`[tabindex]:not([tabindex='-1'])`].join(`,`);function at(e,t,n,r){(0,U.useEffect)(()=>{let i=e.current;if(!i)return;let a=r?.current??(document.activeElement instanceof HTMLElement?document.activeElement:null),o=Array.from(document.querySelectorAll(`.topbar, main, .site-footer`)),s=o.map(e=>e.inert);o.forEach(e=>{e.inert=!0}),document.body.classList.add(`modal-open`);let c=window.requestAnimationFrame(()=>{(n?.current??i.querySelector(it))?.focus()}),l=e=>{if(e.key===`Escape`){e.preventDefault(),t();return}if(e.key!==`Tab`)return;let n=Array.from(i.querySelectorAll(it)).filter(e=>!e.hidden);if(!n.length){e.preventDefault();return}let r=n[0],a=n[n.length-1];e.shiftKey&&document.activeElement===r?(e.preventDefault(),a.focus()):!e.shiftKey&&document.activeElement===a?(e.preventDefault(),r.focus()):i.contains(document.activeElement)||(e.preventDefault(),r.focus())};return document.addEventListener(`keydown`,l),()=>{window.cancelAnimationFrame(c),document.removeEventListener(`keydown`,l),o.forEach((e,t)=>{e.inert=s[t]}),document.body.classList.remove(`modal-open`),a?.focus()}},[n,t,r,e])}function ot(){return(0,W.jsxs)(`div`,{className:`play-logo`,"aria-label":`Google Play`,children:[(0,W.jsxs)(`svg`,{"aria-hidden":`true`,className:`play-mark`,viewBox:`0 0 40 44`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,W.jsx)(`path`,{d:`M3.2 2.2 23 22 3.2 41.8A5.1 5.1 0 0 1 1 37.6V6.4c0-1.7.8-3.2 2.2-4.2Z`,fill:`#23c56e`}),(0,W.jsx)(`path`,{d:`m23 22 6.4-6.4 7.8 4.5c2.4 1.4 2.4 3.5 0 4.9l-7.8 4.5L23 22Z`,fill:`#ffc928`}),(0,W.jsx)(`path`,{d:`M3.2 2.2A5 5 0 0 1 8.5 2l20.9 12.1L23 22 3.2 2.2Z`,fill:`#45a6ff`}),(0,W.jsx)(`path`,{d:`M3.2 41.8 23 22l6.4 7.5L8.5 41.9c-2 1.1-3.8 1-5.3-.1Z`,fill:`#f34b4b`})]}),(0,W.jsxs)(`span`,{children:[(0,W.jsx)(`span`,{className:`google-word`,children:`Google`}),` Play`]})]})}function $({app:e,small:t=!1}){let n=e.icon===`netflix`||e.icon===`spotify`?null:tt[e.icon];return(0,W.jsxs)(`div`,{className:`app-icon${t?` app-icon--small`:``}`,style:{background:e.gradient},"aria-hidden":`true`,children:[n&&(0,W.jsx)(n,{strokeWidth:1.8}),e.icon===`netflix`&&(0,W.jsx)(`span`,{className:`netflix-icon-mark`,children:`N`}),e.icon===`spotify`&&(0,W.jsxs)(`span`,{className:`spotify-icon-mark`,children:[(0,W.jsx)(`i`,{}),(0,W.jsx)(`i`,{}),(0,W.jsx)(`i`,{})]}),(0,W.jsx)(`span`,{className:`icon-shine`})]})}function st({value:e}){return(0,W.jsxs)(`span`,{className:`rating`,children:[e,` `,(0,W.jsx)(Se,{"aria-hidden":`true`,size:10,fill:`currentColor`})]})}function ct({app:e,onOpen:t}){return(0,W.jsxs)(`button`,{className:`app-card`,onClick:()=>t(e),type:`button`,children:[(0,W.jsx)($,{app:e}),(0,W.jsx)(`span`,{className:`app-card__name`,children:e.name}),(0,W.jsx)(`span`,{className:`app-card__category`,children:e.category}),(0,W.jsx)(st,{value:e.rating})]})}function lt({apps:e,onOpen:t,ariaLabel:n}){let r=(0,U.useRef)(null),i=e=>{r.current?.scrollBy({left:e*640,behavior:`smooth`})};return(0,W.jsxs)(`div`,{className:`rail-shell`,children:[(0,W.jsx)(`button`,{className:`rail-arrow rail-arrow--left`,type:`button`,"aria-label":`Scroll ${n} left`,onClick:()=>i(-1),children:(0,W.jsx)(l,{size:20})}),(0,W.jsx)(`div`,{className:`app-rail`,ref:r,"aria-label":n,children:e.map(e=>(0,W.jsx)(ct,{app:e,onOpen:t},e.id))}),(0,W.jsx)(`button`,{className:`rail-arrow rail-arrow--right`,type:`button`,"aria-label":`Scroll ${n} right`,onClick:()=>i(1),children:(0,W.jsx)(re,{size:20})})]})}function ut({variant:e,eyebrow:t,title:n,subtitle:r,app:i,onOpen:a}){return(0,W.jsxs)(`article`,{className:`promo-card promo-card--${e}`,children:[(0,W.jsxs)(`div`,{className:`promo-art`,"aria-hidden":`true`,children:[(0,W.jsx)(`span`,{className:`promo-orb promo-orb--one`}),(0,W.jsx)(`span`,{className:`promo-orb promo-orb--two`}),e===`green`&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:`field-line field-line--one`}),(0,W.jsx)(`span`,{className:`field-line field-line--two`}),(0,W.jsx)(`span`,{className:`field-ball`,children:`⚽`})]}),e===`plum`&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:`picnic-sun`}),(0,W.jsx)(`span`,{className:`picnic-blanket`}),(0,W.jsx)(`span`,{className:`picnic-item picnic-item--one`,children:`🍊`}),(0,W.jsx)(`span`,{className:`picnic-item picnic-item--two`,children:`🥤`})]}),e===`blue`&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:`score-ring`}),(0,W.jsx)(`span`,{className:`score-card`,children:`3–2`}),(0,W.jsx)(`span`,{className:`score-ball`,children:`⚽`})]})]}),(0,W.jsx)(`span`,{className:`promo-eyebrow`,children:t}),(0,W.jsxs)(`div`,{className:`promo-copy`,children:[(0,W.jsx)(`h3`,{children:n}),(0,W.jsx)(`p`,{children:r})]}),(0,W.jsxs)(`div`,{className:`promo-app`,children:[(0,W.jsx)($,{app:i,small:!0}),(0,W.jsxs)(`span`,{children:[(0,W.jsx)(`strong`,{children:i.name}),(0,W.jsx)(`small`,{children:i.category})]}),(0,W.jsx)(`button`,{type:`button`,"aria-label":`View details for ${i.name}`,onClick:()=>a(i),children:`View`})]})]})}function dt({app:e,variant:t,onOpen:n}){return(0,W.jsxs)(`button`,{className:`feature-card feature-card--${t}`,type:`button`,onClick:()=>n(e),children:[(0,W.jsxs)(`span`,{className:`feature-card__badge`,children:[(0,W.jsx)(w,{size:14}),` AI-powered`]}),(0,W.jsxs)(`span`,{className:`feature-card__art`,"aria-hidden":`true`,children:[(0,W.jsxs)(`span`,{className:`feature-phone`,children:[(0,W.jsx)($,{app:e,small:!0}),(0,W.jsx)(`span`,{}),(0,W.jsx)(`span`,{}),(0,W.jsx)(`span`,{})]}),(0,W.jsx)(`span`,{className:`feature-spark feature-spark--one`,children:`✦`}),(0,W.jsx)(`span`,{className:`feature-spark feature-spark--two`,children:`✦`})]}),(0,W.jsxs)(`span`,{className:`feature-card__copy`,children:[(0,W.jsx)(`strong`,{children:e.name}),(0,W.jsx)(`small`,{children:e.description})]})]})}function ft({app:e,onClose:t,onLaunch:n}){let[r,i]=(0,U.useState)(`idle`),a=(0,U.useRef)(null),o=(0,U.useRef)(null),s=(0,U.useRef)(null);at(a,t,o),(0,U.useEffect)(()=>()=>{s.current&&window.clearTimeout(s.current)},[]);let c=()=>{r===`idle`&&(i(`installing`),s.current=window.setTimeout(()=>i(`installed`),1100))},l=!!(e.launch||e.route);return(0,W.jsx)(`div`,{className:`modal-backdrop`,role:`presentation`,onMouseDown:t,children:(0,W.jsxs)(`section`,{ref:a,className:`app-modal`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`app-modal-title`,onMouseDown:e=>e.stopPropagation(),children:[(0,W.jsx)(`button`,{ref:o,className:`modal-close`,onClick:t,type:`button`,"aria-label":`Close`,children:(0,W.jsx)(j,{size:21})}),(0,W.jsxs)(`div`,{className:`modal-hero`,children:[(0,W.jsx)($,{app:e}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`span`,{className:`modal-kicker`,children:`Featured app`}),(0,W.jsx)(`h2`,{id:`app-modal-title`,children:e.name}),(0,W.jsx)(`p`,{children:e.category})]})]}),(0,W.jsxs)(`div`,{className:`modal-stats`,children:[(0,W.jsxs)(`span`,{children:[(0,W.jsxs)(`strong`,{children:[e.rating,` ★`]}),(0,W.jsx)(`small`,{children:`12K reviews`})]}),(0,W.jsxs)(`span`,{children:[(0,W.jsx)(`strong`,{children:e.size}),(0,W.jsx)(`small`,{children:`Download size`})]}),(0,W.jsxs)(`span`,{children:[(0,W.jsx)(`strong`,{children:e.age}),(0,W.jsx)(`small`,{children:`Content rating`})]})]}),(0,W.jsxs)(`button`,{className:`install-button${l?` install-button--open`:` install-button--${r}`}`,onClick:l?()=>n(e):c,type:`button`,disabled:!l&&r!==`idle`,"aria-busy":!l&&r===`installing`,children:[l&&(0,W.jsxs)(W.Fragment,{children:[e.launch===`keyboard`?(0,W.jsx)(L,{size:18}):e.launch===`remote-screen`?(0,W.jsx)(x,{size:18}):(0,W.jsx)(O,{size:18,fill:`currentColor`}),` `,`Open app`]}),!l&&r===`idle`&&`Install`,!l&&r===`installing`&&(0,W.jsx)(`span`,{className:`installing-label`,children:`Installing`}),!l&&r===`installed`&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(N,{size:18}),` Installed`]})]}),(0,W.jsxs)(`div`,{className:`modal-gallery`,"aria-hidden":`true`,children:[(0,W.jsx)(`span`,{}),(0,W.jsx)(`span`,{}),(0,W.jsx)(`span`,{})]}),(0,W.jsx)(`h3`,{children:`About this app`}),(0,W.jsx)(`p`,{className:`modal-description`,children:e.description}),(0,W.jsx)(`p`,{className:`demo-note`,children:`This is an original demo listing created for the storefront recreation.`})]})})}function pt({query:e,results:t,onQueryChange:n,onClose:r,onSelect:i,restoreFocusRef:a}){let o=(0,U.useRef)(null),s=(0,U.useRef)(null);return at(o,r,s,a),(0,W.jsxs)(`div`,{className:`search-layer`,role:`dialog`,"aria-modal":`true`,"aria-label":`Search Google Play`,ref:o,children:[(0,W.jsxs)(`div`,{className:`search-panel`,children:[(0,W.jsx)(M,{"aria-hidden":`true`}),(0,W.jsx)(`input`,{ref:s,value:e,onChange:e=>n(e.target.value),placeholder:`Search apps & games`,"aria-label":`Search apps and games`}),(0,W.jsx)(`button`,{type:`button`,onClick:r,"aria-label":`Close search`,children:(0,W.jsx)(j,{})})]}),(0,W.jsxs)(`div`,{className:`search-results`,children:[(0,W.jsx)(`span`,{className:`search-label`,"aria-live":`polite`,children:e?`${t.length} results`:`Popular searches`}),t.map(e=>(0,W.jsxs)(`button`,{type:`button`,onClick:()=>i(e),children:[(0,W.jsx)($,{app:e,small:!0}),(0,W.jsxs)(`span`,{children:[(0,W.jsx)(`strong`,{children:e.name}),(0,W.jsx)(`small`,{children:e.category})]}),(0,W.jsx)(k,{})]},e.id)),t.length===0&&(0,W.jsx)(`p`,{className:`empty-results`,children:`No matches yet. Try “music” or “productivity”.`})]})]})}function mt(){let e=i(),[t,n]=(0,U.useState)(`Phone`),[r,a]=(0,U.useState)([]),[o,s]=(0,U.useState)(null),[c,l]=(0,U.useState)(null),[u,f]=(0,U.useState)(null),[p,m]=(0,U.useState)(!1),[h,g]=(0,U.useState)(``),[_,v]=(0,U.useState)(``),y=(0,U.useRef)(null),b=Z[t]??Z.Phone.map(e=>e.launch?e:{...e,id:`${t.toLowerCase()}-${e.id}`}),x=(0,U.useMemo)(()=>{let e=[...Z.Phone,...Z.Tablet,...Q];return e.filter((t,n)=>e.findIndex(e=>e.name===t.name)===n)},[]),ne=h.trim()?x.filter(e=>`${e.name} ${e.category}`.toLowerCase().includes(h.trim().toLowerCase())):x.slice(0,5),S=(0,U.useCallback)(()=>{m(!1),g(``)},[]),C=(0,U.useCallback)(()=>f(null),[]);(0,U.useEffect)(()=>{if(!u)return;let e=document.createElement(`link`);return e.rel=`icon`,e.type=`image/x-icon`,e.href=rt[u],e.dataset.homeAtomAppIcon=u,document.head.appendChild(e),()=>e.remove()},[u]);let w=(0,U.useCallback)(async e=>{try{let t=await fetch(`/api/netflix/profiles`,{cache:`no-store`,signal:e});if(!t.ok)return;let n=await t.json(),r=Array.isArray(n.profiles)?n.profiles:[],i=n.activeProfile&&r.some(e=>e.id===n.activeProfile?.id)?n.activeProfile:r[0]??null;a(r),s(i)}catch{}},[]),T=(0,U.useCallback)(async e=>{let t=await fetch(`/api/netflix/profiles/${encodeURIComponent(e.id)}/select`,{method:`POST`});if(!t.ok)throw Error(`Profile could not be selected.`);let n=await t.json();s(n.activeProfile??e)},[]),E=(0,U.useCallback)(async(e,t)=>{a(e),s(t)},[]),D=(e=``)=>{y.current=document.activeElement instanceof HTMLElement?document.activeElement:null,g(e),m(!0)};return(0,U.useEffect)(()=>{if(!_)return;let e=window.setTimeout(()=>v(``),2600);return()=>window.clearTimeout(e)},[_]),(0,U.useEffect)(()=>{let e=new AbortController,t=()=>void w(e.signal),n=()=>{document.visibilityState===`visible`&&t()},r=window.requestAnimationFrame(t),i=window.setInterval(t,3e3);return window.addEventListener(`focus`,t),document.addEventListener(`visibilitychange`,n),()=>{e.abort(),window.cancelAnimationFrame(r),window.clearInterval(i),window.removeEventListener(`focus`,t),document.removeEventListener(`visibilitychange`,n)}},[w]),(0,W.jsxs)(`div`,{className:`site-shell`,children:[(0,W.jsx)(`header`,{className:`topbar`,children:(0,W.jsxs)(`div`,{className:`topbar__inner`,children:[(0,W.jsx)(`a`,{className:`brand-link`,href:`#top`,"aria-label":`Google Play home`,children:(0,W.jsx)(ot,{})}),(0,W.jsx)(`nav`,{className:`main-nav`,children:[`Games`,`Apps`,`Movies & TV`,`Books`,`Kids`].map(e=>(0,W.jsx)(`a`,{href:e===`Apps`?`#apps`:`#${e.toLowerCase().replaceAll(` `,`-`)}`,className:e===`Apps`?`active`:``,"aria-current":e===`Apps`?`page`:void 0,onClick:t=>{e!==`Apps`&&(t.preventDefault(),v(`${e} is outside this Apps storefront demo.`))},children:e},e))}),(0,W.jsxs)(`div`,{className:`top-actions`,children:[(0,W.jsx)(ae,{id:`storefront-access-popover`,wrapClassName:`store-access-menu`,buttonClassName:`store-access-trigger`,popoverClassName:`store-access-popover`,theme:`light`}),(0,W.jsx)(`button`,{type:`button`,"aria-label":`Search`,onClick:()=>D(),children:(0,W.jsx)(M,{})}),(0,W.jsx)(`button`,{type:`button`,className:`store-help-button`,"aria-label":`Help`,onClick:()=>v(`Help Center preview — this storefront is a UI demo.`),children:(0,W.jsx)(d,{})}),o&&(0,W.jsx)(ee,{profiles:r,activeProfile:o,onSelectProfile:T,onProfilesChanged:E})]})]})}),p&&(0,W.jsx)(pt,{query:h,results:ne,onQueryChange:g,onClose:S,onSelect:e=>{S(),window.setTimeout(()=>l(e),0)},restoreFocusRef:y}),(0,W.jsxs)(`main`,{id:`top`,children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Apps on Google Play`}),(0,W.jsx)(`section`,{className:`store-container device-section`,"aria-label":`Choose a device`,children:(0,W.jsx)(`div`,{className:`device-tabs`,children:nt.map(({label:e,icon:r})=>(0,W.jsxs)(`button`,{type:`button`,className:t===e?`active`:``,"aria-pressed":t===e,onClick:()=>n(e),children:[(0,W.jsx)(r,{size:17}),e]},e))})}),(0,W.jsx)(We,{profiles:r,activeProfileId:o?.id??``},o?.id??`no-netflix-profile`),(0,W.jsxs)(`section`,{className:`store-container first-section`,id:`apps`,children:[(0,W.jsxs)(`div`,{className:`section-heading`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsxs)(`h2`,{children:[`Discover apps for `,t.toLowerCase()]}),(0,W.jsx)(`p`,{children:`Fresh finds picked to make every day a little better`})]}),(0,W.jsx)(`button`,{className:`view-more`,type:`button`,"aria-label":`View more apps`,onClick:()=>D(),children:(0,W.jsx)(k,{})})]}),(0,W.jsx)(lt,{apps:b,ariaLabel:`Apps for ${t}`,onOpen:l})]}),(0,W.jsxs)(`section`,{className:`store-container editorial-section`,children:[(0,W.jsx)(`div`,{className:`section-heading section-heading--simple`,children:(0,W.jsxs)(`h2`,{children:[(0,W.jsx)(we,{size:23,fill:`currentColor`}),` Catch the buzz`]})}),(0,W.jsxs)(`div`,{className:`promo-rail`,children:[(0,W.jsx)(ut,{variant:`green`,eyebrow:`Trending`,title:`Find your next pickup game`,subtitle:`Meet local players and get moving`,app:Z.Phone.find(({id:e})=>e===`sprout`),onOpen:l}),(0,W.jsx)(ut,{variant:`plum`,eyebrow:`Editor’s pick`,title:`The art of picnic-core`,subtitle:`Curate a softer kind of weekend`,app:Z.Phone.find(({id:e})=>e===`kindred`),onOpen:l}),(0,W.jsx)(ut,{variant:`blue`,eyebrow:`Live now`,title:`Score big on match day`,subtitle:`Follow every moment together`,app:Z.Phone.find(({id:e})=>e===`circles`),onOpen:l})]})]}),(0,W.jsxs)(`section`,{className:`store-container ai-section`,children:[(0,W.jsxs)(`div`,{className:`section-heading`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`h2`,{children:`Do more with AI apps`}),(0,W.jsx)(`p`,{children:`Helpful tools for ideas, answers, and everyday tasks`})]}),(0,W.jsx)(`button`,{className:`view-more`,type:`button`,"aria-label":`View more AI apps`,onClick:()=>D(`AI`),children:(0,W.jsx)(k,{})})]}),(0,W.jsx)(`div`,{className:`feature-grid`,children:Q.slice(0,3).map((e,t)=>(0,W.jsx)(dt,{app:e,variant:t+1,onOpen:l},e.id))})]}),(0,W.jsxs)(`section`,{className:`store-container charts-section`,children:[(0,W.jsxs)(`div`,{className:`section-heading`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`h2`,{children:`Popular apps`}),(0,W.jsx)(`p`,{children:`What everyone is downloading right now`})]}),(0,W.jsx)(`button`,{className:`view-more`,type:`button`,"aria-label":`View popular apps`,onClick:()=>D(),children:(0,W.jsx)(k,{})})]}),(0,W.jsx)(`div`,{className:`charts-grid`,children:et.map((e,t)=>(0,W.jsxs)(`button`,{type:`button`,className:`chart-row`,onClick:()=>l(e),children:[(0,W.jsx)(`span`,{className:`chart-number`,children:t+1}),(0,W.jsx)($,{app:e,small:!0}),(0,W.jsxs)(`span`,{className:`chart-copy`,children:[(0,W.jsx)(`strong`,{children:e.name}),(0,W.jsx)(`small`,{children:e.category}),(0,W.jsx)(st,{value:e.rating})]}),(0,W.jsx)(k,{size:18})]},`${e.id}-${t}`))})]}),(0,W.jsx)(`section`,{className:`store-container moments-section`,children:(0,W.jsxs)(`div`,{className:`moments-banner`,children:[(0,W.jsxs)(`div`,{className:`moments-copy`,children:[(0,W.jsx)(`span`,{className:`moments-kicker`,children:`Made for the moment`}),(0,W.jsx)(`h2`,{children:`Small apps. Big summer energy.`}),(0,W.jsx)(`p`,{children:`Plan a spontaneous day out, capture the good bits, and keep your favorite people in the loop.`}),(0,W.jsxs)(`button`,{type:`button`,onClick:()=>l(Q[5]),children:[`Explore the collection `,(0,W.jsx)(re,{size:18})]})]}),(0,W.jsxs)(`div`,{className:`moments-art`,"aria-hidden":`true`,children:[(0,W.jsx)(`span`,{className:`sun-disc`}),(0,W.jsx)(`span`,{className:`postcard postcard--one`,children:(0,W.jsx)(le,{})}),(0,W.jsx)(`span`,{className:`postcard postcard--two`,children:(0,W.jsx)(te,{})}),(0,W.jsx)(`span`,{className:`postcard postcard--three`,children:(0,W.jsx)(ve,{})})]})]})}),(0,W.jsxs)(`section`,{className:`store-container final-rail-section`,children:[(0,W.jsxs)(`div`,{className:`section-heading`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`h2`,{children:`Tools worth trying`}),(0,W.jsx)(`p`,{children:`Handy helpers, creative companions, and smart little upgrades`})]}),(0,W.jsx)(`button`,{className:`view-more`,type:`button`,"aria-label":`View more tools`,onClick:()=>D(`Tools`),children:(0,W.jsx)(k,{})})]}),(0,W.jsx)(lt,{apps:Q,ariaLabel:`Tools worth trying`,onOpen:l})]})]}),(0,W.jsxs)(`footer`,{className:`site-footer`,children:[(0,W.jsxs)(`div`,{className:`store-container footer-grid`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`h3`,{children:`Google Play`}),(0,W.jsx)(`a`,{href:`#play-pass`,children:`Play Pass`}),(0,W.jsx)(`a`,{href:`#play-points`,children:`Play Points`}),(0,W.jsx)(`a`,{href:`#gift-cards`,children:`Gift cards`}),(0,W.jsx)(`a`,{href:`#redeem`,children:`Redeem`}),(0,W.jsx)(`a`,{href:`#refund`,children:`Refund policy`})]}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`h3`,{children:`Kids & family`}),(0,W.jsx)(`a`,{href:`#parent-guide`,children:`Parent Guide`}),(0,W.jsx)(`a`,{href:`#family-sharing`,children:`Family sharing`})]}),(0,W.jsxs)(`div`,{className:`footer-note`,children:[(0,W.jsx)(ot,{}),(0,W.jsx)(`p`,{children:`A handcrafted interface study built with Next.js. Product names and listings are original demo content.`})]})]}),(0,W.jsxs)(`div`,{className:`store-container footer-bottom`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`a`,{href:`#terms`,children:`Terms of Service`}),(0,W.jsx)(`a`,{href:`#privacy`,children:`Privacy`}),(0,W.jsx)(`a`,{href:`#about`,children:`About Google Play`}),(0,W.jsx)(`a`,{href:`#developers`,children:`Developers`})]}),(0,W.jsxs)(`button`,{type:`button`,onClick:()=>v(`Region selector preview — United States (English)`),children:[(0,W.jsx)(de,{size:17}),` United States (English)`]})]})]}),c&&(0,W.jsx)(ft,{app:c,onClose:()=>l(null),onLaunch:t=>{l(null),t.route?e.push(t.route):t.launch&&f(t.launch)}}),u===`keyboard`&&(0,W.jsx)(Ie,{onClose:C}),u===`remote-screen`&&(0,W.jsx)(Ye,{onClose:C}),(0,W.jsx)(`div`,{className:`notice-toast${_?` notice-toast--show`:``}`,role:`status`,children:_})]})}export{mt as Storefront};
@@ -0,0 +1 @@
1
+ @font-face{font-family:Roboto Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/roboto-cyrillic-ext-wght-normal.BCp_3N7R.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/roboto-cyrillic-wght-normal.fOt7epNf.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Roboto Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/roboto-greek-ext-wght-normal.Bgw4czJT.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Roboto Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/roboto-greek-wght-normal.DlT9XTxE.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Roboto Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/roboto-math-wght-normal.4a3xuzGk.woff2)format("woff2-variations");unicode-range:U+302-303,U+305,U+307-308,U+310,U+312,U+315,U+31A,U+326-327,U+32C,U+32F-330,U+332-333,U+338,U+33A,U+346,U+34D,U+391-3A1,U+3A3-3A9,U+3B1-3C9,U+3D1,U+3D5-3D6,U+3F0-3F1,U+3F4-3F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE??}@font-face{font-family:Roboto Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/roboto-symbols-wght-normal.B7iHSfaG.woff2)format("woff2-variations");unicode-range:U+1-C,U+E-1F,U+7F-9F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+28??,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B??,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F0??,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F7??,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB??}@font-face{font-family:Roboto Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/roboto-vietnamese-wght-normal._f1XEJpo.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Roboto Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/roboto-latin-ext-wght-normal.DYIxWhlt.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/roboto-latin-wght-normal.ccAYIvAh.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink:#202124;--muted:#5f6368;--green:#00875f;--green-dark:#006e4c;--green-soft:#e6f4ef;--line:#dadce0;--surface:#fff;--container:1298px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--surface);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Roboto Variable,Arial,Helvetica,sans-serif}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}a{color:inherit;text-decoration:none}.site-shell{min-height:100vh;overflow:hidden}.app-top-nav{--atn-height:2.25rem;z-index:90;height:calc(var(--atn-height) + env(safe-area-inset-top));padding:env(safe-area-inset-top) clamp(1rem, 3vw, 2.5rem) 0;-webkit-backdrop-filter:blur(14px)saturate(1.6);background:linear-gradient(#080808eb 0%,#080808d1 100%);border-bottom:1px solid #ffffff0f;align-items:center;gap:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:flex;position:fixed;top:0;left:0;right:0}.app-top-nav__home{color:#ffffffb8;letter-spacing:.01em;white-space:nowrap;cursor:pointer;background:#ffffff0f;border:0;border-radius:999px;align-items:center;gap:.3rem;padding:.2rem .65rem .2rem .35rem;font-size:.72rem;font-weight:550;text-decoration:none;transition:background .18s,color .18s,transform .12s;display:inline-flex}.app-top-nav__home:hover{color:#fff;background:#ffffff1f;transform:translate(-1px)}.app-top-nav__home:active{transform:translate(-2px)scale(.97)}.app-top-nav__home svg{flex:none}.app-top-nav__separator{color:#fff3;-webkit-user-select:none;user-select:none;margin:0 .55rem;font-size:.72rem;font-weight:300}.app-top-nav__app{color:#ffffff80;letter-spacing:.02em;font-size:.72rem;font-weight:550}.store-container{width:min(calc(100% - 144px), var(--container));margin-inline:auto}.topbar{z-index:50;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffff0;border-bottom:1px solid #0000;height:64px;position:sticky;top:0}.topbar:after{content:"";background:#3c404314;height:1px;position:absolute;bottom:-1px;left:0;right:0}.topbar__inner{align-items:center;height:100%;padding:0 24px 0 30px;display:flex}.brand-link{flex:none}.play-logo{color:#5f6368;letter-spacing:-.7px;white-space:nowrap;align-items:center;gap:9px;font-size:22px;font-weight:500;display:inline-flex}.play-mark{filter:saturate(.96);width:36px;height:40px}.google-word{font-weight:600}.main-nav{align-items:stretch;gap:30px;height:100%;margin-left:40px;display:flex}.main-nav a{color:#5f6368;white-space:nowrap;align-items:center;font-size:14px;font-weight:600;display:grid;position:relative}.main-nav a:after{background:var(--green);content:"";opacity:0;border-radius:3px 3px 0 0;height:3px;transition:all .16s;position:absolute;bottom:0;left:0;right:0;transform:scaleX(.35)}.main-nav a:hover,.main-nav a.active{color:var(--green)}.main-nav a.active:after{opacity:1;transform:scaleX(1)}.top-actions{align-items:center;gap:9px;margin-left:auto;display:flex}.top-actions>button,.mobile-menu-button{cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:40px;height:40px;transition:background .15s;display:grid}.top-actions>button:hover,.mobile-menu-button:hover{background:#f1f3f4}.top-actions svg{color:#5f6368;stroke-width:2.4px;width:22px;height:22px}.store-access-trigger{cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:40px;height:40px;transition:background .15s;display:grid}.store-access-trigger:hover{background:#f1f3f4}.access-popover.store-access-popover{--access-mobile-top:calc(64px + env(safe-area-inset-top));--access-right:-.4rem}.store-profile-menu{margin-left:2px;position:relative}.store-profile-trigger{cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;gap:5px;min-width:44px;min-height:44px;padding:0 2px;display:flex}.store-profile-avatar{background:linear-gradient(155deg,#ffffff47,#0000 35%),#1565c0;border-radius:4px;width:32px;height:32px;display:block;position:relative;overflow:hidden;box-shadow:inset 0 -5px #00000026}.store-profile-avatar span:first-child,.store-profile-avatar span:nth-child(2){background:#fff;border-radius:50%;width:4px;height:6px;position:absolute;top:11px}.store-profile-avatar span:first-child{left:7px}.store-profile-avatar span:nth-child(2){right:7px}.store-profile-avatar span:last-child{border-bottom:3px solid #fff;border-radius:0 0 50% 50%;height:6px;position:absolute;bottom:6px;left:7px;right:7px}.top-actions .store-profile-chevron{color:#5f6368;stroke-width:2.6px;width:13px;height:13px;transition:transform .16s}.store-profile-chevron--open{transform:rotate(180deg)}.store-profile-trigger:hover .store-profile-avatar{box-shadow:inset 0 -5px #00000026,0 0 0 3px #5f636824}.store-profile-trigger:focus-visible{outline-offset:2px;border-radius:6px;outline:2px solid #1a73e8}.store-profile-popover{z-index:70;color:#fff;background:#141414fa;border:1px solid #ffffff2e;border-radius:3px;width:min(240px,100vw - 24px);padding:8px 0;animation:.14s ease-out fade-in;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 14px 36px #00000057}.store-profile-caret{background:#141414;border-top:1px solid #fff3;border-left:1px solid #fff3;width:13px;height:13px;position:absolute;top:-7px;right:17px;transform:rotate(45deg)}.store-profile-option,.store-profile-manage{color:#fff;width:100%;min-height:44px;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:11px;padding:6px 13px;font-size:13px;display:flex}.store-profile-option:hover,.store-profile-manage:hover{background:#ffffff14;text-decoration:underline}:is(.store-profile-option:focus-visible,.store-profile-manage:focus-visible){outline-offset:-3px;outline:2px solid #fff}.store-profile-option:disabled{cursor:wait;opacity:.72}.store-profile-mini-avatar{color:#fff;border-radius:3px;flex:0 0 30px;place-items:center;width:30px;height:30px;font-size:12px;font-weight:800;display:grid;box-shadow:inset 0 -4px #00000024}.store-profile-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.top-actions .store-profile-active-check{color:#46d369;stroke-width:2.5px;width:16px;height:16px}.store-profile-manage{border-top:1px solid #ffffff2e;margin-top:6px;padding-top:10px}.top-actions .store-profile-manage svg{color:#b3b3b3;stroke-width:2px;flex:0 0 18px;width:18px;height:18px}.store-profile-error{color:#ffb4b4;margin:5px 13px 2px;font-size:12px;line-height:1.35}.search-layer{z-index:80;background:#fffffff7;padding-top:14px;animation:.16s ease-out fade-in;position:fixed;inset:0;overflow-y:auto}.search-panel{background:#f1f3f4;border-radius:28px;align-items:center;gap:15px;width:min(100% - 32px,780px);height:58px;margin:0 auto;padding:0 10px 0 20px;display:flex;box-shadow:0 1px 2px #3c40432e}.search-panel>svg{color:#5f6368}.search-panel input{min-width:0;color:var(--ink);background:0 0;border:0;outline:0;flex:1;font-size:18px}.search-panel button{cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:42px;height:42px;display:grid}.search-panel button:hover{background:#e3e6e8}.search-results{width:min(100% - 32px,740px);margin:28px auto}.search-label{color:var(--muted);margin:0 12px 10px;font-size:13px;font-weight:600;display:block}.search-results>button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:14px;align-items:center;gap:16px;width:100%;padding:12px;display:flex}.search-results>button:hover{background:#f6f8f8}.search-results>button>span{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.search-results strong{font-size:15px}.search-results small{color:var(--muted);font-size:13px}.search-results>button>svg{color:var(--muted)}.empty-results{color:var(--muted);padding:28px 12px}.device-section{padding-top:25px}.device-tabs{scrollbar-width:none;gap:12px;padding:0 0 8px;display:flex;overflow-x:auto}.device-tabs::-webkit-scrollbar{display:none}.device-tabs button{border:1px solid var(--line);color:#5f6368;cursor:pointer;background:#fff;border-radius:19px;flex:none;align-items:center;gap:8px;min-height:36px;padding:0 17px;font-size:14px;font-weight:600;transition:border-color .15s,background .15s,color .15s,transform .15s;display:inline-flex}.device-tabs button:hover{border-color:#9aa0a6;transform:translateY(-1px)}.device-tabs button.active{border-color:var(--green-soft);background:var(--green-soft);color:var(--green-dark)}.first-section{padding-top:30px}.section-heading{justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:27px;display:flex}.section-heading h1,.section-heading h2{color:var(--ink);letter-spacing:-.45px;margin:0;font-size:23px;font-weight:600}.section-heading p{color:var(--muted);margin:5px 0 0;font-size:14px}.section-heading--simple{align-items:center}.section-heading--simple h2{align-items:center;gap:10px;display:flex}.section-heading--simple h2 svg{color:#f4511e}.view-more{color:#3c4043;cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;width:40px;height:40px;display:grid}.view-more:hover{background:#f1f3f4}.rail-shell{position:relative}.app-rail{scroll-behavior:smooth;scrollbar-width:none;grid-auto-columns:minmax(134px,1fr);grid-auto-flow:column;gap:23px;padding:2px 2px 8px;display:grid;overflow-x:auto}.app-rail::-webkit-scrollbar{display:none}.app-card{text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:flex-start;min-width:0;padding:0;display:flex}.app-card:hover .app-icon{transform:translateY(-3px);box-shadow:0 6px 12px #3c404329,0 1px 3px #3c404333}.app-icon{aspect-ratio:1;border:1px solid #3c404314;border-radius:24%;place-items:center;width:100%;transition:transform .18s,box-shadow .18s;display:grid;position:relative;overflow:hidden;box-shadow:0 1px 2px #3c40434d,0 1px 3px 1px #3c404326}.app-icon svg{z-index:2;color:#fffffff2;filter:drop-shadow(0 2px 4px #00000024);width:48%;height:48%;position:relative}.netflix-icon-mark{z-index:2;color:#e50914;letter-spacing:-.18em;text-indent:-.18em;text-shadow:0 4px 12px #00000073;font-family:Arial Black,Arial,sans-serif;font-size:clamp(2.1rem,5.2vw,4.7rem);font-weight:950;line-height:1;position:relative;transform:scaleX(.72)}.spotify-icon-mark{z-index:2;aspect-ratio:1;background:#07150b;border-radius:50%;width:58%;display:block;position:relative;box-shadow:0 3px 8px #00000038}.spotify-icon-mark i{border-top:clamp(2px,.35vw,5px) solid #35e878;border-radius:50%;width:64%;height:25%;position:absolute;left:20%;transform:rotate(8deg)}.spotify-icon-mark i:first-child{top:27%}.spotify-icon-mark i:nth-child(2){width:58%;top:43%;left:23%}.spotify-icon-mark i:nth-child(3){width:51%;top:58%;left:26%}.app-icon--small .netflix-icon-mark{font-size:34px}.app-card:nth-child(2) .app-icon svg,.search-results button:nth-child(3) .app-icon svg{color:#202124}.icon-shine{background:#ffffff29;border-radius:50%;width:65%;height:140%;position:absolute;top:-40%;left:-15%;transform:rotate(22deg)}.app-icon--small{border-radius:14px;flex:0 0 52px;width:52px;height:52px}.app-icon--small svg{width:26px;height:26px}.app-card__name{color:#303134;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:14px;font-size:14px;font-weight:500;line-height:1.38;display:-webkit-box;overflow:hidden}.app-card__category{max-width:100%;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:12px;overflow:hidden}.rating{color:var(--muted);align-items:center;gap:3px;margin-top:4px;font-size:12px;display:inline-flex}.rail-arrow{z-index:4;color:#3c4043;cursor:pointer;opacity:0;background:#fff;border:0;border-radius:50%;place-items:center;width:42px;height:42px;transition:opacity .15s,transform .15s;display:grid;position:absolute;top:58px;box-shadow:0 2px 6px #3c40433d,0 1px 2px #3c404329}.rail-shell:hover .rail-arrow,.rail-shell:focus-within .rail-arrow{opacity:1}.rail-arrow:focus-visible{opacity:1}.rail-arrow:hover{transform:scale(1.04)}.rail-arrow--left{left:-18px}.rail-arrow--right{right:-18px}.editorial-section,.ai-section,.charts-section,.moments-section,.final-rail-section{padding-top:48px}.promo-rail{scrollbar-width:none;grid-template-columns:repeat(3,526px);gap:24px;padding:2px 2px 8px;display:grid;overflow-x:auto}.promo-rail::-webkit-scrollbar{display:none}.promo-card{border-radius:9px;min-height:394px;position:relative;overflow:hidden;box-shadow:0 1px 3px #3c404338}.promo-card--green{color:#173a2a;background:#c9f4da}.promo-card--plum{color:#fff;background:#611b2a}.promo-card--blue{color:#fff;background:#12377f}.promo-art{position:absolute;inset:0 0 98px;overflow:hidden}.promo-orb{border-radius:50%;position:absolute}.promo-orb--one{background:#ffffff2e;width:250px;height:250px;top:-38px;right:-35px}.promo-orb--two{border:42px solid #ffffff24;width:260px;height:260px;top:95px;left:-60px}.promo-card--green .promo-art{background:radial-gradient(circle at 60% 40%,#fffc 0 3px,#0000 4px),linear-gradient(150deg,#b6eaca,#68c88b)}.field-line{border:3px solid #fff9;display:block;position:absolute}.field-line--one{border-radius:50%;width:180px;height:180px;bottom:-72px;right:20px}.field-line--two{border-radius:0 60px 60px 0;width:190px;height:110px;top:40px;left:-20px}.field-ball,.score-ball{z-index:2;background:#ffffffe6;border-radius:50%;place-items:center;width:68px;height:68px;font-size:38px;display:grid;position:absolute;box-shadow:0 10px 28px #00000029}.field-ball{bottom:45px;right:90px;transform:rotate(-12deg)}.promo-card--plum .promo-art{background:linear-gradient(145deg,#e5a664,#914441)}.promo-card--plum .promo-art:after{z-index:1;content:"";background:linear-gradient(#0000,#46101fd1);position:absolute;inset:38% 0 0}.picnic-sun{background:#ffd795;border-radius:50%;width:82px;height:82px;position:absolute;top:32px;left:44px;box-shadow:0 0 0 20px #ffd7952e}.picnic-blanket{background:linear-gradient(90deg,#0000 46%,#fff3 47% 53%,#0000 54%),linear-gradient(#0000 46%,#fff3 47% 53%,#0000 54%),#c44747;border-radius:55% 0 0;width:310px;height:190px;position:absolute;bottom:-30px;right:-10px;transform:rotate(-7deg)}.picnic-item{z-index:2;filter:drop-shadow(0 7px 8px #4f18183d);font-size:52px;position:absolute}.picnic-item--one{bottom:34px;right:85px}.picnic-item--two{bottom:15px;right:175px;transform:rotate(7deg)}.promo-card--blue .promo-art{background:linear-gradient(150deg,#1d65c4,#142e6b)}.score-ring{border:36px solid #5b95ff99;border-radius:50%;width:245px;height:245px;position:absolute;top:18px;right:-35px}.score-card{color:#15387a;letter-spacing:-2px;background:#fff;border-radius:16px;padding:17px 22px;font-size:38px;font-weight:800;position:absolute;top:68px;left:52px;transform:rotate(-6deg);box-shadow:0 14px 24px #00103240}.score-ball{width:61px;height:61px;font-size:34px;bottom:22px;right:32px}.promo-eyebrow{z-index:3;color:#fff;background:#1a1c1fb3;border-radius:6px;padding:5px 9px;font-size:12px;font-weight:700;position:absolute;top:10px;left:10px}.promo-copy{z-index:3;position:absolute;bottom:111px;left:24px;right:24px}.promo-copy h3{letter-spacing:-.4px;margin:0;font-size:23px;font-weight:700}.promo-copy p{margin:4px 0 0;font-size:15px}.promo-app{z-index:4;align-items:center;gap:12px;display:flex;position:absolute;bottom:18px;left:22px;right:22px}.promo-app>span{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.promo-app strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.promo-app small{opacity:.84;font-size:12px}.promo-app button{color:#303134;cursor:pointer;background:#ffffffc7;border:0;border-radius:9px;min-width:84px;height:35px;font-size:13px;font-weight:700}.promo-card--green .promo-app button{color:#173a2a;background:#3f765138}.promo-app button:hover{background:#fff}.feature-grid{grid-template-columns:repeat(3,1fr);gap:22px;display:grid}.feature-card{color:#24243d;text-align:left;cursor:pointer;background:#eef0ff;border:0;border-radius:10px;flex-direction:column;align-items:stretch;min-height:285px;padding:22px;display:flex;position:relative;overflow:hidden}.feature-card--1{background:linear-gradient(145deg,#f7d5ff 0%,#e5b8ff 50%,#b797ff 100%)}.feature-card--2{background:linear-gradient(145deg,#d7f4ff 0%,#9ce2ec 52%,#65bfc8 100%)}.feature-card--3{background:linear-gradient(145deg,#dff4dd 0%,#a7d7aa 52%,#75b984 100%)}.feature-card__badge{background:#ffffff9e;border-radius:16px;align-items:center;gap:6px;width:max-content;padding:6px 10px;font-size:12px;font-weight:700;display:inline-flex}.feature-card__art{place-items:center;height:142px;display:grid;position:relative}.feature-phone{background:#ffffffeb;border:5px solid #1d1f26e0;border-radius:18px;place-items:center;width:86px;height:135px;transition:transform .2s;display:grid;position:absolute;top:15px;overflow:hidden;transform:rotate(4deg);box-shadow:0 15px 30px #3726502e}.feature-card:hover .feature-phone{transform:rotate(1deg)translateY(-5px)}.feature-phone .app-icon{border-radius:12px;flex-basis:42px;width:42px;height:42px}.feature-phone>span:not(.app-icon){background:#dde1e5;border-radius:4px;width:48px;height:5px}.feature-spark{color:#fff;text-shadow:0 3px 8px #5c367d38;font-size:24px;position:absolute}.feature-spark--one{top:24px;left:26%}.feature-spark--two{font-size:17px;bottom:25px;right:24%}.feature-card__copy{flex-direction:column;gap:5px;min-width:0;display:flex}.feature-card__copy strong{font-size:19px}.feature-card__copy small{color:#202124c2;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:1.45;display:-webkit-box;overflow:hidden}.charts-grid{grid-template-columns:repeat(3,1fr);gap:8px 28px;display:grid}.chart-row{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:13px;min-width:0;padding:11px 10px;display:flex}.chart-row:hover{background:#f6f8f8}.chart-number{width:22px;color:var(--muted);text-align:center;flex:0 0 22px;font-size:14px;font-weight:600}.chart-copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.chart-copy strong,.chart-copy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chart-copy strong{font-size:14px;font-weight:600}.chart-copy small{color:var(--muted);font-size:12px}.chart-row>svg{color:#70757a}.moments-banner{background:linear-gradient(120deg,#fff2c7 0%,#ffe0ae 38%,#ffc7a9 100%);border-radius:18px;grid-template-columns:1fr 1.15fr;min-height:340px;display:grid;position:relative;overflow:hidden}.moments-copy{z-index:2;flex-direction:column;justify-content:center;align-items:flex-start;padding:44px;display:flex;position:relative}.moments-kicker{color:#8d431b;letter-spacing:.6px;text-transform:uppercase;margin-bottom:13px;font-size:13px;font-weight:800}.moments-copy h2{color:#5b2c23;letter-spacing:-1.4px;max-width:420px;margin:0;font-size:clamp(30px,3vw,44px);line-height:1.05}.moments-copy p{color:#744739;max-width:470px;margin:17px 0 23px;font-size:15px;line-height:1.55}.moments-copy button{color:#fff;cursor:pointer;background:#5b2c23;border:0;border-radius:21px;align-items:center;gap:9px;height:42px;padding:0 18px;font-size:13px;font-weight:700;display:inline-flex}.moments-copy button:hover{background:#402019}.moments-art{position:relative}.sun-disc{background:#fffdcdb8;border-radius:50%;width:390px;height:390px;position:absolute;top:-90px;right:-55px;box-shadow:0 0 0 34px #fff6b238}.postcard{border:8px solid #fff;border-bottom-width:34px;border-radius:4px;place-items:center;display:grid;position:absolute;box-shadow:0 18px 30px #6f342233}.postcard svg{color:#fff;width:44px;height:44px}.postcard--one{z-index:3;background:linear-gradient(145deg,#e98e6a,#b84a6a);width:190px;height:224px;top:62px;left:11%;transform:rotate(-9deg)}.postcard--two{z-index:2;background:linear-gradient(145deg,#73caba,#238a91);width:180px;height:210px;top:28px;right:13%;transform:rotate(10deg)}.postcard--three{z-index:4;background:linear-gradient(145deg,#8d78dc,#51449c);width:173px;height:198px;bottom:-26px;right:4%;transform:rotate(-4deg)}.final-rail-section{padding-bottom:64px}.site-footer{background:#fbfbfc;border-top:1px solid #e2e4e7}.footer-grid{grid-template-columns:190px 190px 1fr;gap:42px;padding-top:42px;padding-bottom:34px;display:grid}.footer-grid>div{flex-direction:column;align-items:flex-start;gap:14px;display:flex}.footer-grid h3{margin:0 0 5px;font-size:15px;font-weight:600}.footer-grid a,.footer-bottom a{color:#5f6368;font-size:13px}.footer-grid a:hover,.footer-bottom a:hover{color:var(--green)}.footer-grid .footer-note{text-align:right;justify-self:end;align-items:flex-end}.footer-note .play-logo{transform-origin:100%;transform:scale(.82)}.footer-note p{color:#70757a;max-width:420px;margin:0;font-size:12px;line-height:1.5}.footer-bottom{border-top:1px solid #e7e9ec;justify-content:space-between;align-items:center;gap:26px;min-height:74px;display:flex}.footer-bottom>div{flex-wrap:wrap;gap:25px;display:flex}.footer-bottom button{color:#5f6368;cursor:pointer;background:0 0;border:0;align-items:center;gap:9px;padding:8px 0;font-size:13px;display:inline-flex}.modal-open{overflow:hidden}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#181c1f85;place-items:center;padding:24px;animation:.16s fade-in;display:grid;position:fixed;inset:0;overflow-y:auto}.app-modal{background:#fff;border-radius:26px;width:min(100%,610px);max-height:min(860px,100vh - 48px);padding:32px;animation:.22s cubic-bezier(.2,.75,.3,1) modal-up;position:relative;overflow-y:auto;box-shadow:0 24px 80px #10182040}.modal-close{z-index:2;cursor:pointer;background:#f1f3f4;border:0;border-radius:50%;place-items:center;width:40px;height:40px;display:grid;position:absolute;top:18px;right:18px}.modal-hero{align-items:center;gap:23px;padding-right:48px;display:flex}.modal-hero .app-icon{flex:0 0 112px;width:112px;height:112px}.modal-kicker{color:var(--green);letter-spacing:.55px;text-transform:uppercase;font-size:12px;font-weight:800}.modal-hero h2{letter-spacing:-.8px;margin:7px 0 5px;font-size:30px}.modal-hero p{color:var(--green);margin:0;font-size:14px;font-weight:600}.modal-stats{grid-template-columns:repeat(3,1fr);margin:28px 0 22px;display:grid}.modal-stats>span{text-align:center;border-right:1px solid #e1e3e6;flex-direction:column;gap:4px;padding:0 16px;display:flex}.modal-stats>span:last-child{border-right:0}.modal-stats strong{font-size:14px}.modal-stats small{color:var(--muted);font-size:11px}.install-button{background:var(--green);color:#fff;cursor:pointer;border:0;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;height:44px;font-size:14px;font-weight:700;transition:background .15s;display:flex}.install-button:hover{background:var(--green-dark)}.install-button:disabled{cursor:default}.install-button--installing{background:#76aa98;position:relative;overflow:hidden}.install-button--installing:after{content:"";background:#fff;width:68%;height:3px;animation:1.1s ease-in-out installing;position:absolute;bottom:0;left:0}.install-button--installed{color:#137333;background:#e6f4ea}.modal-gallery{border-radius:14px;grid-template-columns:1.25fr .8fr .8fr;gap:10px;height:170px;margin:24px 0;display:grid;overflow:hidden}.modal-gallery span{background:radial-gradient(circle at 72% 26%,#ffffffe6 0 5%,#0000 5.5%),linear-gradient(145deg,#dff7ef,#69bda4);position:relative;overflow:hidden}.modal-gallery span:after{content:"";background:#ffffffd1;border-radius:22px 22px 0 0;height:138px;position:absolute;bottom:-42px;left:12px;right:12px;box-shadow:0 8px 20px #004d3624}.modal-gallery span:nth-child(2){background:linear-gradient(145deg,#e7dcff,#967ce0)}.modal-gallery span:nth-child(3){background:linear-gradient(145deg,#ffe9c7,#e8986a)}.app-modal h3{margin:0 0 9px;font-size:19px}.modal-description{color:#4d5156;margin:0;font-size:14px;line-height:1.6}.demo-note{color:#70757a;background:#f7f8f9;border-radius:10px;margin:17px 0 0;padding:12px 14px;font-size:11px;line-height:1.45}.notice-toast{z-index:120;color:#fff;opacity:0;pointer-events:none;background:#303134;border-radius:10px;max-width:min(360px,100vw - 48px);padding:12px 16px;font-size:13px;transition:opacity .18s,transform .18s;position:fixed;bottom:24px;right:24px;transform:translateY(12px);box-shadow:0 5px 18px #2021243d}.notice-toast--show{opacity:1;transform:translateY(0)}.sr-only{clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.activity-section{padding-top:28px}.activity-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:18px;display:flex}.activity-heading h2{color:var(--ink);letter-spacing:-.45px;margin:0;font-size:23px;font-weight:600}.activity-heading p{color:var(--muted);margin:5px 0 0;font-size:14px}.activity-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,520px),1fr));gap:18px;min-width:0;display:grid}.activity-card{--activity-artwork:none;--activity-accent:#ef233c;color:#fff;background:#101114;border:1px solid #ffffff14;border-radius:21px;min-width:0;overflow:hidden;box-shadow:0 10px 30px #20212429,0 1px 3px #2021242e}.activity-card--spotify{--activity-accent:#1ed760}.activity-card__art{isolation:isolate;background-color:#202329;background-image:linear-gradient(180deg, #0506082e 0%, #07080a0d 36%, #0a0b0ef2 100%), var(--activity-artwork);background-position:50%;background-size:cover;flex-direction:column;justify-content:space-between;min-height:184px;padding:16px 18px 17px;display:flex;position:relative;overflow:hidden}.activity-card__art:after{z-index:-1;content:"";background:linear-gradient(90deg,#00000052,#0000 55%),radial-gradient(circle at 86% 5%,#ffffff1f,#0000 35%);position:absolute;inset:0}.activity-card__source{justify-content:space-between;align-items:center;gap:12px;display:flex}.activity-netflix-mark{color:#e50914;text-shadow:0 2px 5px #000000b3;background:#08080ac7;border-radius:7px;place-items:center;width:28px;height:28px;font-family:Arial Black,Arial,sans-serif;font-size:20px;font-weight:950;line-height:1;display:grid}.activity-spotify-mark{background:#1ed760;border-radius:50%;width:28px;height:28px;display:block;position:relative;overflow:hidden;box-shadow:0 3px 12px #00000059}.activity-spotify-mark i{border-top:2px solid #07140b;border-radius:50%;width:17px;height:8px;position:absolute;left:6px;transform:rotate(8deg)}.activity-spotify-mark i:first-child{top:7px}.activity-spotify-mark i:nth-child(2){width:15px;top:11px}.activity-spotify-mark i:nth-child(3){width:12px;top:15px}.activity-live{-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);color:#ffffffe6;background:#08090cad;border:1px solid #ffffff29;border-radius:18px;align-items:center;gap:7px;padding:6px 9px;font-size:11px;font-weight:650;display:inline-flex}.activity-live i{background:#24d77a;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #24d77a26}.activity-live svg{opacity:.72;stroke-width:2.2px;flex:0 0 13px;width:13px;height:13px}.activity-card__copy{min-width:0}.activity-card__copy>span{color:#ffffffb3;letter-spacing:.12em;text-transform:uppercase;margin-bottom:5px;font-size:10px;font-weight:750;display:block}.activity-card__copy h3{letter-spacing:-.035em;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:clamp(1.35rem,2.2vw,1.75rem);font-weight:720;overflow:hidden}.activity-card__copy p{color:#ffffffc2;text-overflow:ellipsis;white-space:nowrap;margin:5px 0 0;font-size:12px;overflow:hidden}.activity-card__remote{background:linear-gradient(#101114,#0b0c0e 72%),#101114;min-width:0;padding:0 18px 17px}.activity-progress{--activity-progress:0%;-webkit-appearance:none;appearance:none;background:linear-gradient(to right, var(--activity-accent) 0 var(--activity-progress), #ffffff40 var(--activity-progress) 100%) center / 100% 4px no-repeat;cursor:pointer;touch-action:pan-y;border:0;width:calc(100% + 36px);height:20px;margin:-8px -18px;padding:0}.activity-progress:disabled{cursor:default;opacity:.65}.activity-progress:focus-visible{filter:drop-shadow(0 0 4px #ffffffb8);outline:0}.activity-progress::-webkit-slider-runnable-track{background:0 0;border:0;height:4px}.activity-progress::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:var(--activity-accent);opacity:0;border:2px solid #fff;border-radius:50%;width:14px;height:14px;margin-top:-5px;transition:opacity .12s;box-shadow:0 1px 7px #00000073}.activity-progress::-moz-range-track{background:0 0;border:0;height:4px}.activity-progress::-moz-range-progress{background:0 0;height:4px}.activity-progress::-moz-range-thumb{background:var(--activity-accent);opacity:0;border:2px solid #fff;border-radius:50%;width:10px;height:10px;transition:opacity .12s;box-shadow:0 1px 7px #00000073}.activity-progress:hover::-webkit-slider-thumb{opacity:1}.activity-progress:active::-webkit-slider-thumb{opacity:1}.activity-progress:focus-visible::-webkit-slider-thumb{opacity:1}.activity-progress:hover::-moz-range-thumb{opacity:1}.activity-progress:active::-moz-range-thumb{opacity:1}.activity-progress:focus-visible::-moz-range-thumb{opacity:1}.activity-time{color:#ffffff94;font-variant-numeric:tabular-nums;justify-content:space-between;padding:8px 0 3px;font-size:10px;display:flex}.activity-marker-actions{gap:8px;padding:6px 0 2px;display:flex}.activity-skip-intro,.activity-next-episode-prompt{color:#fff;font:inherit;cursor:pointer;background:#ffffff14;border:1px solid #ffffff38;border-radius:18px;align-items:center;gap:5px;padding:6px 14px 6px 10px;font-size:11px;font-weight:650;transition:background .12s,border-color .12s;animation:.22s ease-out activity-marker-in;display:inline-flex}.activity-skip-intro:hover,.activity-next-episode-prompt:hover{background:#ffffff29;border-color:#fff6}.activity-skip-intro:active,.activity-next-episode-prompt:active{transform:scale(.96)}.activity-skip-intro svg,.activity-next-episode-prompt svg{stroke-width:2.2px;opacity:.85;width:14px;height:14px}@keyframes activity-marker-in{0%{opacity:0;transform:translateY(4px)}}.activity-controls{align-items:center;gap:5px;min-width:0;padding-top:2px;display:flex}.activity-controls>button,.activity-volume button{color:#fff;cursor:pointer;background:0 0;border:0;border-radius:50%;flex:0 0 40px;place-items:center;width:40px;height:40px;transition:background .15s,color .15s,transform .15s;display:grid;position:relative}.activity-controls>button:hover,.activity-volume button:hover,.activity-controls>button.is-active{background:#ffffff1f}.activity-controls>button:disabled,.activity-subtitle-editor button:disabled{opacity:.38;cursor:not-allowed}.activity-controls>button:disabled:hover,.activity-subtitle-editor button:disabled:hover{background:0 0}.activity-controls>button:active,.activity-volume button:active{transform:scale(.94)}:is(.activity-controls button:focus-visible,.activity-controls select:focus-visible,.activity-controls input:focus-visible,.activity-subtitle-editor button:focus-visible,.activity-subtitle-editor select:focus-visible,.activity-subtitle-editor input:focus-visible){outline-offset:2px;outline:2px solid #8ab4f8}.activity-controls svg{stroke-width:2.1px;width:23px;height:23px}.activity-controls--spotify{max-width:520px}.activity-ten-second span{text-align:center;width:100%;font-size:8px;font-weight:800;position:absolute;top:15px;left:0}.activity-volume{flex:132px;align-items:center;min-width:90px;max-width:180px;display:flex}.activity-volume input,.activity-subtitle-size input{min-width:0;height:18px;accent-color:var(--activity-accent,#ef233c);cursor:pointer;flex:1;margin:0}.activity-volume input{--activity-volume:100%;-webkit-appearance:none;appearance:none;background:linear-gradient(90deg, #ffffffeb 0 var(--activity-volume), #ffffff47 var(--activity-volume) 100%) center / 100% 3px no-repeat;height:24px}.activity-volume input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#fff;border:0;border-radius:50%;width:12px;height:12px;box-shadow:0 1px 3px #00000080}.activity-volume input::-moz-range-thumb{background:#fff;border:0;border-radius:50%;width:12px;height:12px}.activity-episode-picker{color:#ffffffdb;background:#ffffff12;border:1px solid #ffffff26;border-radius:18px;flex:145px;align-items:center;gap:6px;min-width:116px;max-width:220px;height:36px;padding:0 8px;display:flex}.activity-episode-picker>svg{flex:0 0 17px;width:17px;height:17px}.activity-episode-picker select{width:100%;min-width:0;color:inherit;cursor:pointer;background:0 0;border:0;outline:0;font-size:11px;font-weight:650}.activity-episode-picker option{color:#fff;background:#17191d}.activity-movie-search-overlay{z-index:200;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0009;justify-content:center;align-items:stretch;animation:.16s fade-in;display:flex;position:fixed;inset:0}.activity-movie-search{color:#fff;background:#17191d;border-left:1px solid #ffffff1a;border-right:1px solid #ffffff1a;flex-direction:column;width:min(100%,520px);height:100%;padding:22px;animation:.22s cubic-bezier(.2,.75,.3,1) modal-up;display:flex;overflow:hidden;box-shadow:0 0 60px #00000080,inset 0 0 0 1px #ffffff0f}.activity-movie-search__header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.activity-movie-search__header h3{letter-spacing:-.02em;margin:0;font-size:18px;font-weight:720}.activity-movie-search__now{color:#ffffff80;margin-top:3px;font-size:12px;font-weight:500;display:block}.activity-movie-search__header>button{color:#ffffffb3;cursor:pointer;background:#ffffff14;border:0;border-radius:50%;flex:0 0 36px;place-items:center;width:36px;height:36px;transition:background .15s;display:grid}.activity-movie-search__header>button:hover{background:#ffffff26}.activity-movie-search__header>button svg{width:18px;height:18px}.activity-movie-search__field{color:#ffffffa8;background:#0405077a;border:1px solid #ffffff2e;border-radius:11px;align-items:center;gap:8px;height:39px;padding:0 8px 0 11px;display:flex}.activity-movie-search__field:focus-within{border-color:#8ab4f8d1;box-shadow:0 0 0 1px #8ab4f83d}.activity-movie-search__field>svg{flex:0 0 17px;width:17px;height:17px}.activity-movie-search__field input{color:#fff;background:0 0;border:0;outline:0;width:100%;min-width:0;height:100%;padding:0;font-size:12px}.activity-movie-search__field input::placeholder{color:#ffffff7a}.activity-movie-search__field input::-webkit-search-cancel-button{display:none}.activity-movie-search__field button{color:#ffffffc2;cursor:pointer;background:0 0;border:0;border-radius:50%;flex:0 0 28px;place-items:center;width:28px;height:28px;padding:0;display:grid}.activity-movie-search__field button:hover{background:#ffffff1c}.activity-movie-search__field button svg{width:16px;height:16px}.activity-movie-search__heading{align-items:center;gap:10px;min-height:32px;padding:4px 1px 3px;display:flex}.activity-movie-search__heading strong{color:#ffffffe6;font-size:11px;font-weight:720}.activity-movie-search__notice{color:#ffb4ab;margin:0 0 7px;font-size:10px;line-height:1.4}.activity-movie-search__results{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#ffffff42 transparent;flex:1;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:8px;min-height:0;display:grid;overflow-y:auto}.activity-movie-search__results>button{color:#fff;text-align:left;cursor:pointer;background:#ffffff0e;border:1px solid #0000;border-radius:10px;align-items:center;gap:9px;min-width:0;min-height:58px;padding:5px;transition:border-color .14s,background .14s,transform .14s;display:flex}.activity-movie-search__results>button:hover{background:#ffffff1c;border-color:#ffffff26}.activity-movie-search__results>button:active{transform:scale(.985)}.activity-movie-search__results>button:disabled{opacity:.58;cursor:wait}.activity-movie-search__art{background:#25272b;border-radius:7px;flex:0 0 76px;width:76px;height:46px;display:block;position:relative;overflow:hidden}.activity-movie-search__art img{object-fit:cover;width:100%;height:100%}.activity-movie-search__art>svg{background:#000000ad;border-radius:50%;width:20px;height:20px;padding:3px;position:absolute;top:calc(50% - 10px);left:calc(50% - 10px)}.activity-track-search__art{background-position:50%;background-size:cover;flex-basis:58px;width:58px;height:58px}.activity-track-search__art>span{place-items:center;font-size:20px;font-weight:750;display:grid;position:absolute;inset:0}.activity-movie-search__copy{flex-direction:column;gap:3px;min-width:0;display:flex}.activity-movie-search__copy strong,.activity-movie-search__copy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.activity-movie-search__copy strong{font-size:11px;font-weight:680}.activity-movie-search__copy small{color:#ffffff8c;font-size:9px}.activity-movie-search__empty{color:#ffffff8f;text-align:center;flex:1;justify-content:center;align-items:center;gap:8px;min-height:68px;font-size:11px;display:flex}.activity-movie-search__empty svg{width:18px;height:18px}.activity-movie-search .spin{animation:.8s linear infinite activity-spin}.activity-subtitle-editor{background:#ffffff0f;border:1px solid #ffffff1f;border-radius:13px;grid-template-columns:minmax(170px,1fr) auto minmax(135px,.75fr) auto;align-items:center;gap:12px;margin-top:12px;padding:13px;animation:.15s ease-out fade-in;display:grid}.activity-subtitle-editor__heading{color:#ffffffeb;grid-column:1/-1;justify-content:space-between;align-items:center;gap:12px;font-size:12px;font-weight:700;display:flex}.activity-subtitle-editor__heading>span{align-items:center;gap:7px;display:inline-flex}.activity-subtitle-editor__heading svg{width:16px;height:16px}.activity-caption-toggle,.activity-reset-position{color:#ffffffd9;cursor:pointer;background:0 0;border:1px solid #ffffff2e;border-radius:16px;font-size:10px;font-weight:700}.activity-caption-toggle{min-width:42px;padding:5px 9px}.activity-caption-toggle[aria-pressed=true]{color:#8bf0b8;background:#24d77a29;border-color:#24d77a73}.activity-subtitle-size,.activity-subtitle-color,.activity-subtitle-background{color:#ffffffa3;align-items:center;gap:8px;min-width:0;font-size:10px;font-weight:650;display:flex}.activity-subtitle-size output{color:#ffffffd1;font-variant-numeric:tabular-nums;width:31px;font-size:9px}.activity-subtitle-color input{cursor:pointer;background:0 0;border:1px solid #fff3;border-radius:7px;width:31px;height:25px;padding:2px}.activity-subtitle-background select{color:#fff;background:#1c1e22;border:1px solid #ffffff24;border-radius:8px;flex:1;min-width:0;padding:6px 24px 6px 8px;font-size:10px}.activity-reset-position{white-space:nowrap;padding:7px 10px}.activity-reset-position:hover{background:#ffffff1a}.activity-empty{color:#3c4043;background:radial-gradient(circle at 4% 0,#00875f17,#0000 32%),#f8faf9;border:1px solid #e5e8e7;border-radius:17px;align-items:center;gap:15px;min-height:84px;padding:15px 18px;display:flex}.activity-empty__icon{background:var(--green-soft);width:44px;height:44px;color:var(--green-dark);border-radius:13px;flex:0 0 44px;place-items:center;display:grid}.activity-empty__icon svg{width:19px;height:19px}.activity-empty>span:last-child{flex-direction:column;gap:3px;min-width:0;display:flex}.activity-empty strong{font-size:13px;font-weight:650}.activity-empty small{color:var(--muted);font-size:12px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes activity-spin{to{transform:rotate(360deg)}}@keyframes modal-up{0%{opacity:0;transform:translateY(18px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes installing{0%{width:0}to{width:100%}}@media (min-width:1160px){.app-rail{grid-auto-columns:calc(12.5% - 20.125px)}}@media (max-width:1080px){.main-nav{gap:22px;margin-left:28px}.main-nav a:nth-last-child(-n+2){display:none}.promo-rail{grid-template-columns:repeat(3,minmax(390px,1fr))}.feature-grid{scrollbar-width:none;grid-template-columns:repeat(3,minmax(300px,1fr));padding-bottom:6px;overflow-x:auto}.feature-grid::-webkit-scrollbar{display:none}.charts-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:1199px){.store-container{width:calc(100% - 96px)}.app-rail{grid-auto-columns:calc(16.6667% - 13.3333px);gap:16px}}@media (max-width:760px){.store-container{width:calc(100% - 96px)}.topbar{height:104px}.topbar__inner{height:56px;padding:0 12px;position:relative}.brand-link{margin-left:8px;display:flex}.play-logo{gap:7px;font-size:19px}.play-mark{width:31px;height:35px}.main-nav{scrollbar-width:none;background:#fff;align-items:stretch;gap:0;height:48px;margin:0;padding:0 12px;display:flex;position:absolute;top:56px;left:0;right:0;overflow-x:auto}.main-nav a,.main-nav a:nth-last-child(-n+2){border-radius:0;flex:1 0 auto;place-items:center;min-width:max-content;min-height:48px;padding:0 17px;font-size:13px;display:grid}.main-nav a:after{display:block}.top-actions{gap:0}.top-actions>button,.store-access-trigger{width:38px;height:38px}.store-help-button{display:none}.device-section{padding-top:18px}.device-tabs{margin-right:-48px;padding-right:48px}.device-tabs button{min-height:34px;padding:0 14px;font-size:13px}.first-section{padding-top:25px}.section-heading{align-items:center;margin-bottom:19px}.section-heading h1,.section-heading h2{font-size:20px}.section-heading p{max-width:290px;font-size:13px;line-height:1.4}.view-more{width:36px;height:36px}.app-rail{grid-auto-columns:calc(25% - 12px);gap:16px;margin-right:-48px;padding-right:48px}.app-icon{border-radius:22%}.app-card__name{margin-top:11px;font-size:13px}.rail-arrow{display:none}.editorial-section,.ai-section,.charts-section,.moments-section,.final-rail-section{padding-top:38px}.promo-rail{grid-template-columns:repeat(3,100%);gap:16px;margin-right:-48px;padding-right:48px}.promo-card{min-height:380px}.promo-art{inset:0 0 105px}.promo-copy h3{font-size:20px}.feature-grid{grid-template-columns:repeat(3,100%);gap:16px;margin-right:-48px;padding-right:48px}.feature-card{min-height:266px}.charts-grid{grid-template-columns:1fr}.chart-row{padding-inline:4px}.moments-banner{grid-template-columns:1fr;min-height:580px}.moments-copy{justify-content:flex-start;padding:32px 26px}.moments-copy h2{max-width:330px;font-size:34px}.moments-copy p{max-width:340px}.moments-art{min-height:260px}.sun-disc{width:300px;height:300px;top:-55px;right:-72px}.postcard--one{width:145px;height:176px;top:-8px;left:10%}.postcard--two{width:140px;height:165px;top:-28px;right:8%}.postcard--three{width:130px;height:156px;bottom:-50px;right:7%}.footer-grid{grid-template-columns:1fr 1fr;gap:32px 24px}.footer-grid .footer-note{text-align:left;grid-column:1/-1;justify-self:start;align-items:flex-start}.footer-note .play-logo{transform-origin:0}.footer-bottom{flex-direction:column;align-items:flex-start;padding-top:22px;padding-bottom:22px}.footer-bottom>div{gap:15px 22px}.modal-backdrop{align-items:end;padding:0}.app-modal{border-radius:24px 24px 0 0;width:100%;max-height:calc(100vh - 28px);padding:27px 20px 24px}.modal-close{top:14px;right:14px}.modal-hero{gap:17px;padding-right:39px}.modal-hero .app-icon{flex-basis:86px;width:86px;height:86px}.modal-hero h2{font-size:24px}.modal-stats>span{padding:0 7px}.modal-gallery{height:135px}}@media (max-width:599px){.store-container{width:calc(100% - 48px)}.device-tabs,.app-rail,.promo-rail,.feature-grid{margin-right:-24px;padding-right:24px}.app-rail{grid-auto-columns:calc(33.3333% - 8px);gap:12px}}@media (max-width:420px){.promo-rail,.feature-grid{grid-template-columns:repeat(3,100%)}}@media (max-width:760px){.activity-section{padding-top:23px}.activity-heading{align-items:center;margin-bottom:15px}.activity-heading h2{font-size:20px}.activity-heading p{max-width:260px;font-size:13px;line-height:1.4}.activity-card__art{min-height:166px}.activity-controls{flex-wrap:wrap}.activity-volume{max-width:none}.activity-subtitle-editor{grid-template-columns:minmax(150px,1fr) auto}.activity-subtitle-background{min-width:150px}}@media (max-width:599px){.activity-heading{flex-direction:column;align-items:stretch;gap:12px}.activity-heading p{max-width:310px}.activity-list{gap:14px}.activity-card{border-radius:18px}.activity-card__art{min-height:154px;padding:13px 14px 15px}.activity-card__copy h3{font-size:21px}.activity-card__remote{padding:0 13px 14px}.activity-progress{width:calc(100% + 26px);margin-inline:-13px}.activity-controls{gap:3px}.activity-controls>button,.activity-volume button{flex-basis:38px;width:38px;height:38px}.activity-volume{flex-basis:100%;order:2;min-width:100%;padding-right:7px}.activity-episode-picker{flex-basis:calc(100% - 42px);order:3;max-width:none}.activity-subtitle-editor{grid-template-columns:1fr;gap:11px}.activity-movie-search{padding:16px}.activity-movie-search__results{grid-template-columns:1fr}.activity-subtitle-editor__heading{grid-column:1}.activity-subtitle-size,.activity-subtitle-color,.activity-subtitle-background{justify-content:space-between}.activity-subtitle-size input{max-width:170px}.activity-subtitle-background{min-width:0}.activity-reset-position{width:100%}}.embedded-app{z-index:320;color:#fff;background:#050505;flex-direction:column;min-width:0;min-height:0;animation:.18s ease-out embedded-app-in;display:flex;position:fixed;inset:0;overflow:hidden}.embedded-app__bar{z-index:2;background:#101114;border-bottom:1px solid #ffffff1a;flex:0 0 50px;grid-template-columns:1fr auto 1fr;align-items:center;min-height:50px;padding:0 clamp(12px,3vw,28px);display:grid;position:relative;box-shadow:0 5px 18px #0000004d}.embedded-app__bar button{color:#e9eaed;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:7px;width:max-content;padding:8px 10px 8px 6px;font-size:13px;font-weight:650;display:inline-flex}.embedded-app__bar button:hover{background:#ffffff17}.embedded-app__bar strong{letter-spacing:.01em;font-size:14px;font-weight:650}.embedded-app iframe{opacity:0;background:#080808;border:0;flex:1;width:100%;min-width:0;min-height:0;transition:opacity .18s}.embedded-app iframe.is-loaded{opacity:1}.embedded-app__loading{z-index:1;color:#c7c9ce;text-align:center;background:#080808;place-content:center;gap:12px;font-size:13px;display:grid;position:absolute;inset:50px 0 0}.embedded-app__loading svg{margin:auto;animation:.9s linear infinite embedded-app-spin}@keyframes embedded-app-in{0%{opacity:0;transform:translateY(8px)}}@keyframes embedded-app-spin{to{transform:rotate(1turn)}}.kbapp-layer{z-index:300;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;color:#22272a;background:radial-gradient(circle at 86% 4%,#b7ccc066,#0000 31rem),#f1eee7;animation:.22s ease-out kbapp-in;position:fixed;inset:0;overflow-y:auto}.kbapp-header{z-index:5;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f1eee7e6;border-bottom:1px solid #22272a21;grid-template-columns:1fr auto 1fr;align-items:center;min-height:72px;padding:0 clamp(18px,4vw,58px);display:grid;position:sticky;top:0}.kbapp-back,.kbapp-close,.kbapp-clear{cursor:pointer;background:0 0;border:0}.kbapp-back{color:#59605d;align-items:center;gap:8px;width:max-content;font-size:12px;font-weight:700;display:inline-flex}.kbapp-back svg{width:18px}.kbapp-brand{align-items:center;gap:10px;display:flex}.kbapp-brand>span{color:#fff;background:#202629;border-radius:10px;place-items:center;width:38px;height:38px;display:grid;box-shadow:inset 0 -4px #111416}.kbapp-brand svg{width:20px}.kbapp-brand>div{flex-direction:column;gap:2px;display:flex}.kbapp-brand strong{font-size:14px}.kbapp-brand small{color:#777c78;letter-spacing:.05em;text-transform:uppercase;font-size:9px}.kbapp-close{color:#5e6461;border-radius:50%;justify-self:end;place-items:center;width:40px;height:40px;display:grid}.kbapp-header-actions{justify-self:end;align-items:center;gap:2px;display:flex}.kbapp-access{color:#5e6461;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:40px;height:40px;display:grid}.kbapp-access svg{width:20px;height:20px}.kbapp-access:hover{background:#22272a14}.access-popover.kbapp-access-popover{--access-mobile-top:calc(62px + env(safe-area-inset-top))}.kbapp-close:hover{background:#22272a14}.kbapp-close svg{width:20px}.kbapp-main{width:min(100% - 40px,1420px);margin-inline:auto;padding-bottom:70px}.kbapp-intro{grid-template-columns:1.1fr .7fr;align-items:center;gap:60px;min-height:285px;padding:45px clamp(8px,3vw,40px);display:grid}.kbapp-kicker,.kbapp-focused-copy>span{color:#dd5d40;letter-spacing:.12em;text-transform:uppercase;font-size:10px;font-weight:800}.kbapp-intro h1{letter-spacing:-.06em;margin:13px 0 0;font-size:clamp(50px,6vw,82px);line-height:.9}.kbapp-intro h1 em{color:#ef694a;font-family:Georgia,Times New Roman,serif;font-weight:400}.kbapp-intro>p{color:#626863;max-width:440px;margin:0;font-size:16px;line-height:1.65}.kbapp-workspace{background:#faf8f3;border:1px solid #22272a24;border-radius:25px;overflow:hidden;box-shadow:0 28px 80px #34302821}.kbapp-alert{color:#873824;background:#fff1ec;border-bottom:1px solid #993e2933;align-items:center;gap:10px;min-height:46px;padding:9px 16px;font-size:12px;font-weight:650;display:flex}.kbapp-alert>svg{flex:none;width:17px;height:17px}.kbapp-alert span{flex:1;min-width:0}.kbapp-alert button{width:30px;height:30px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;display:grid}.kbapp-alert button:hover{background:#87382417}.kbapp-alert button svg{width:15px}.kbapp-toolbar{border-bottom:1px solid #dedad2;justify-content:space-between;align-items:center;gap:20px;min-height:78px;padding:14px 22px;display:flex}.kbapp-tabs{background:#ece9e2;border:1px solid #d7d3ca;border-radius:13px;gap:4px;padding:4px;display:flex}.kbapp-tabs button{color:#737873;cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:7px;height:39px;padding:0 16px;font-size:11px;font-weight:700;display:inline-flex}.kbapp-tabs button.active{color:#24282a;background:#fff;box-shadow:0 2px 8px #2d2a241c}.kbapp-tabs svg,.kbapp-clear svg{width:16px}.kbapp-clear{color:#6b706c;border:1px solid #d9d5cd;border-radius:10px;align-items:center;gap:7px;height:38px;padding:0 12px;font-size:10px;font-weight:700;display:inline-flex}.kbapp-clear:hover{background:#efede7}.kbapp-status{background:#f1eee7;border:1px solid #d9d5cd;border-radius:10px;align-items:center;gap:18px;margin:0;padding:6px 14px;display:flex}.kbapp-status>div{align-items:center;gap:7px;min-width:0;display:flex}.kbapp-status dt{color:#8a8c87;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;font-size:9px;font-weight:800}.kbapp-status dd{color:#ef694a;text-overflow:ellipsis;white-space:nowrap;margin:0;font-family:Georgia,Times New Roman,serif;font-size:16px;overflow:hidden}.kbapp-status code{color:#555c58;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px}.kbapp-board-shell{--kb-gap:clamp(3px, .46vw, 7px);--kb-height:clamp(37px, 3.8vw, 52px);background:linear-gradient(145deg,#ffffff0a,#0000 28%),#202527;border:1px solid #0c0e0f;border-radius:21px;margin:clamp(15px,2.3vw,32px);padding:clamp(14px,2vw,26px);box-shadow:0 14px #121517,0 25px 38px #1f1f1b47}.kbapp-board-top{color:#68706d;justify-content:flex-end;align-items:flex-start;gap:9px;height:25px;display:flex}.kbapp-board-top span{letter-spacing:.11em;margin-right:auto;font-size:8px;font-weight:800}.kbapp-board-top i{background:#3c4240;border-radius:50%;width:5px;height:5px;box-shadow:0 0 0 1px #111}.kbapp-board-top i.on{background:#75dc89;box-shadow:0 0 7px #75dc89cc}.kbapp-function-row,.kbapp-row{gap:var(--kb-gap);display:flex}.kbapp-function-row{margin-bottom:calc(var(--kb-gap) * 1.7)}.kbapp-function-row .kbapp-key{flex:1 1 0;min-width:0}.kbapp-function-row .kbapp-key.has-gap{margin-left:calc(var(--kb-gap) * 1.2)}.kbapp-zones{grid-template-columns:minmax(570px,15fr) minmax(120px,3fr) minmax(164px,4fr);align-items:stretch;gap:clamp(10px,1.1vw,18px);display:grid}.kbapp-alpha{grid-template-rows:repeat(5, var(--kb-height));gap:var(--kb-gap);display:grid}.kbapp-row .kbapp-key{flex:var(--kb-width) var(--kb-width) 0;min-width:0}.kbapp-key{height:var(--kb-height);color:#343937;cursor:pointer;text-align:center;text-transform:lowercase;touch-action:manipulation;background:#f4efe6;border:1px solid #bbb6ac;border-radius:clamp(5px,.6vw,8px);place-items:center;min-width:0;padding:4px;font-size:clamp(6px,.72vw,10px);font-weight:700;line-height:1;transition:all 80ms;display:grid;position:relative;overflow:hidden;box-shadow:0 4px #aaa49a,0 6px 7px #00000047}.kbapp-key:hover{background:#fffdf8}.kbapp-key:focus-visible{z-index:2;outline-offset:2px;outline:2px solid #ef694a}.kbapp-key:active,.kbapp-key.is-active{color:#fff;background:#ef694a;transform:translateY(3px);box-shadow:0 1px #c84e34}.kbapp-key--modifier{color:#344139;background:#c8d4cc;border-color:#9dac9f;box-shadow:0 4px #829087,0 6px 7px #00000047}.kbapp-key--system{background:#e2d2bd;border-color:#baa992;box-shadow:0 4px #978a76,0 6px 7px #00000047}.kbapp-key--accent{color:#fff;background:#ef8064;border-color:#c75c43;box-shadow:0 4px #a74731,0 6px 7px #00000047}.kbapp-key small{color:#7e817d;font-size:.72em;font-weight:600;position:absolute;top:5px;left:6px}.kbapp-key.is-active small{color:#ffffffb8}.kbapp-navigation{flex-direction:column;justify-content:space-between;min-width:0;display:flex}.kbapp-nav-grid,.kbapp-arrow-grid{gap:var(--kb-gap);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.kbapp-nav-grid{grid-template-rows:repeat(2, var(--kb-height))}.kbapp-arrow-grid{grid-template-areas:".up.""left down right";grid-template-rows:repeat(2, var(--kb-height))}.kbapp-arrow-grid .kbapp-key{font-size:clamp(11px,1.1vw,17px)}.kbapp-numpad{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-areas:"num divide multiply subtract""seven eight nine add""four five six add""one two three enter""zero zero decimal enter";grid-template-rows:repeat(5, var(--kb-height));gap:var(--kb-gap);min-width:0;display:grid}.kbapp-numpad .kbapp-key{height:auto}.kbapp-focused{grid-template-columns:minmax(220px,.8fr) minmax(310px,1fr);align-items:center;gap:clamp(40px,8vw,120px);min-height:380px;padding:35px clamp(25px,7vw,105px) 55px;display:grid}.kbapp-focused-copy{flex-direction:column;align-items:flex-start;display:flex}.kbapp-focused strong{color:#f5f1e8;margin-top:8px;font-family:Georgia,Times New Roman,serif;font-size:clamp(35px,4vw,58px);font-weight:400}.kbapp-focused p{color:#919894;max-width:290px;margin:13px 0 0;font-size:12px;line-height:1.5}.kbapp-board-shell--numpad,.kbapp-board-shell--navigation{max-width:950px;margin-inline:auto}.kbapp-focused .kbapp-numpad{--kb-height:clamp(52px, 5.5vw, 72px);justify-self:end;width:100%;max-width:390px}.kbapp-focused .kbapp-navigation{--kb-height:clamp(52px, 5.5vw, 72px);justify-self:end;width:100%;max-width:390px;min-height:280px}.kbapp-trackpad-panel{padding:clamp(18px,3vw,40px)}.kbapp-trackpad-wrap{grid-template-rows:1fr auto;gap:clamp(14px,2vw,22px);max-width:900px;margin-inline:auto;display:grid}.kbapp-trackpad-surface{cursor:none;touch-action:none;-webkit-user-select:none;user-select:none;background:radial-gradient(at 50% 30%,#ffffff0a,#0000 60%),linear-gradient(#2a2e30 0%,#1a1d1f 100%);border:1px solid #0c0e0f;border-radius:21px;place-items:center;min-height:clamp(260px,32vw,420px);transition:box-shadow .2s;display:grid;position:relative;box-shadow:0 14px #121517,0 25px 38px #1f1f1b47,inset 0 1px #ffffff0f}.kbapp-trackpad-surface:active{box-shadow:0 10px #121517,0 18px 28px #1f1f1b38,inset 0 1px #ffffff0f,inset 0 0 60px #ef694a0f}.kbapp-trackpad-hint{color:#5a5e5b;pointer-events:none;flex-direction:column;align-items:center;gap:10px;transition:opacity .2s;display:flex}.kbapp-trackpad-surface:active .kbapp-trackpad-hint{opacity:.3}.kbapp-trackpad-hint svg{color:#6b706c;width:32px;height:32px}.kbapp-trackpad-hint span{letter-spacing:.02em;font-size:13px;font-weight:700}.kbapp-trackpad-hint small{color:#464946;letter-spacing:.06em;text-transform:uppercase;font-size:10px;font-weight:600}.kbapp-trackpad-buttons{grid-template-columns:2fr 1fr 1fr;gap:clamp(6px,.8vw,10px);display:grid}.kbapp-trackpad-btn{color:#343937;cursor:pointer;text-transform:lowercase;touch-action:manipulation;background:#f4efe6;border:1px solid #bbb6ac;border-radius:clamp(10px,1.1vw,14px);justify-content:center;align-items:center;height:clamp(48px,5vw,62px);padding:0 16px;font-size:clamp(10px,1.1vw,13px);font-weight:700;transition:all 80ms;display:flex;box-shadow:0 4px #aaa49a,0 6px 7px #0000002e}.kbapp-trackpad-btn:hover{background:#fffdf8}.kbapp-trackpad-btn:active{color:#fff;background:#ef694a;transform:translateY(3px);box-shadow:0 1px #c84e34}.kbapp-trackpad-btn--click{color:#fff;background:#ef8064;border-color:#c75c43;box-shadow:0 4px #a74731,0 6px 7px #0000002e}.kbapp-trackpad-btn--click:hover{background:#f58f77}.kbapp-trackpad-btn--click:active{background:#d54e35;box-shadow:0 1px #9e3822}.kbapp-trackpad-btn--right{color:#344139;background:#c8d4cc;border-color:#9dac9f;box-shadow:0 4px #829087,0 6px 7px #0000002e}.kbapp-trackpad-btn--right:hover{background:#d4e0d8}.kbapp-trackpad-btn--right:active{color:#fff;background:#ef694a;box-shadow:0 1px #c84e34}.kbapp-trackpad-btn--double{color:#3e3628;background:#e2d2bd;border-color:#baa992;box-shadow:0 4px #978a76,0 6px 7px #0000002e}.kbapp-trackpad-btn--double:hover{background:#ecdecb}.kbapp-trackpad-btn--double:active{color:#fff;background:#ef694a;box-shadow:0 1px #c84e34}@keyframes kbapp-in{0%{opacity:0;transform:translateY(8px)}}@media (max-width:900px){.kbapp-intro{grid-template-columns:1fr;gap:22px;min-height:250px}.kbapp-intro>p{max-width:600px}.kbapp-board-shell{--kb-height:clamp(32px, 5vw, 42px)}.kbapp-zones{grid-template-columns:1fr}.kbapp-zones .kbapp-alpha{grid-column:1/-1}.kbapp-zones>.kbapp-navigation,.kbapp-zones>.kbapp-numpad{grid-row:2}.kbapp-zones>.kbapp-navigation{width:min(100%,290px)}.kbapp-zones>.kbapp-numpad{justify-self:end;width:min(100%,380px)}}@media (max-width:620px){.kbapp-header{min-height:62px;padding-right:max(13px, env(safe-area-inset-right));padding-left:max(13px, env(safe-area-inset-left))}.kbapp-back span,.kbapp-brand small{display:none}.kbapp-main{width:calc(100% - 16px);padding-bottom:max(42px, env(safe-area-inset-bottom))}.kbapp-intro{gap:16px;min-height:0;padding:30px 12px 32px}.kbapp-intro h1{font-size:clamp(39px,12.5vw,48px);line-height:.94}.kbapp-intro>p{max-width:36rem;font-size:14px;line-height:1.55}.kbapp-workspace{border-radius:18px}.kbapp-toolbar{flex-direction:column;align-items:stretch;gap:10px;padding:12px}.kbapp-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;width:100%;display:grid}.kbapp-tabs button{justify-content:center;min-width:0;height:42px;padding-inline:8px;font-size:10px}.kbapp-status{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;padding:8px 10px;display:grid}.kbapp-status>div{grid-template-columns:auto minmax(0,1fr);display:grid}.kbapp-board-shell{--kb-gap:3px;--kb-height:clamp(34px, 10vw, 40px);border-radius:14px;margin:9px 6px 22px;padding:10px 8px 15px;box-shadow:0 9px #121517,0 16px 25px #1f1f1b42}.kbapp-board-shell--full{overscroll-behavior-x:contain;scrollbar-color:#68706d transparent;scrollbar-width:thin;-webkit-overflow-scrolling:touch;overflow-x:auto}.kbapp-board-shell--full .kbapp-board-top,.kbapp-board-shell--full .kbapp-function-row,.kbapp-board-shell--full .kbapp-zones{width:680px}.kbapp-trackpad-panel{padding:12px}.kbapp-trackpad-surface{border-radius:14px;min-height:220px}.kbapp-trackpad-btn{border-radius:8px;height:44px;font-size:9px}.kbapp-trackpad-hint svg{width:24px;height:24px}.kbapp-trackpad-hint span{font-size:11px}.kbapp-trackpad-hint small{font-size:8px}.kbapp-function-row .kbapp-key{border-radius:4px;height:30px;padding:2px;font-size:6px}.kbapp-function-row .kbapp-key.has-gap{margin-left:calc(var(--kb-gap) * 1.2)}.kbapp-key{border-radius:4px;padding:2px;font-size:7px}.kbapp-key small{top:3px;left:3px}.kbapp-zones{gap:13px}.kbapp-zones>.kbapp-navigation{width:42%}.kbapp-zones>.kbapp-numpad{width:55%}.kbapp-focused{flex-direction:column;align-items:stretch;gap:28px;min-height:0;padding:24px 14px 37px;display:flex}.kbapp-focused-copy{width:100%}.kbapp-focused strong{font-size:clamp(34px,11vw,44px)}.kbapp-focused .kbapp-numpad,.kbapp-focused .kbapp-navigation{--kb-height:clamp(48px, 14vw, 58px);flex:none;width:100%;max-width:none}.kbapp-focused .kbapp-navigation{min-height:clamp(222px,69vw,274px)}}@media (max-width:350px){.kbapp-brand{gap:7px}.kbapp-brand>span{width:34px;height:34px}.kbapp-brand strong{font-size:12px}.kbapp-intro{padding-inline:8px}.kbapp-tabs button{padding-inline:5px}.kbapp-focused{padding-inline:10px}}.rsapp-layer{--rsapp-panel-width:min(394px, calc(100vw - 20px));z-index:340;color:#5f6368;background:#898989;animation:.18s ease-out rsapp-in;position:fixed;inset:0;overflow:hidden}.rsapp-sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.rsapp-display-bar{z-index:2;background:#f8f9fa;border-bottom:1px solid #dadce0;height:47px;display:flex;position:absolute;top:0;left:0;right:0}.rsapp-display-bar__mark{color:#6b6f72;border-right:1px solid #dadce0;flex:0 0 49px;place-items:center;width:49px;display:grid}.rsapp-display-bar__mark svg{stroke-width:1.8px;width:17px;height:17px}.rsapp-display-tabs{scrollbar-width:none;flex:1;align-items:stretch;min-width:0;display:flex;overflow:auto hidden}.rsapp-display-tabs::-webkit-scrollbar{display:none}.rsapp-display-tabs button{color:#5f6368;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-right:1px solid #dadce0;flex:none;justify-content:center;align-items:center;gap:5px;min-width:150px;height:47px;padding:0 16px;font-size:14px;font-weight:500;display:inline-flex;overflow:hidden}.rsapp-display-tabs button:hover{background:#f1f3f4}.rsapp-display-tabs button.is-selected{color:#1a73e8;background:#fff;border:1px solid #dadce0;border-bottom-color:#fff;border-radius:10px 10px 0 0;height:47px;margin-top:0;position:relative}.rsapp-display-tabs button svg{stroke-width:1.8px;flex:0 0 16px;width:16px;height:16px}.rsapp-display-tabs button span{text-overflow:ellipsis;overflow:hidden}.rsapp-display-tabs button small{color:#80868b;font-size:11px;font-weight:450}.rsapp-display-tabs button.is-selected small{color:#1a73e8}.rsapp-display-tabs__loading{color:#6f7478;align-items:center;gap:8px;min-width:170px;padding:0 18px;font-size:13px;display:inline-flex}.rsapp-display-tabs__loading svg{width:16px}.rsapp-stage{z-index:1;overscroll-behavior:contain;background:#898989;position:absolute;inset:47px 0 0;overflow:hidden}.rsapp-stage.is-native-size{overflow:auto}.rsapp-stage__sizer{place-items:center;width:max-content;min-width:100%;height:max-content;min-height:100%;display:grid}.rsapp-screen{cursor:default;touch-action:none;-webkit-user-select:none;user-select:none;background:#000;outline:0;flex:none;min-width:1px;min-height:1px;position:relative;overflow:hidden;box-shadow:0 0 0 1px #00000014}.rsapp-screen:focus-visible{box-shadow:0 0 0 2px #8ab4f8,0 0 0 5px #1a73e859}.rsapp-screen:not(.is-connected){cursor:default}.rsapp-screen img{pointer-events:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.rsapp-screen.is-smooth img{image-rendering:auto}.rsapp-screen.is-crisp img{image-rendering:pixelated}.rsapp-stage__status{z-index:3;pointer-events:none;place-items:center;padding:18px;display:grid;position:absolute;inset:0}.rsapp-status-card{color:#3c4043;text-align:center;pointer-events:auto;background:#fffffff5;border:1px solid #dadce0e6;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:188px;padding:27px 30px;display:flex;box-shadow:0 8px 32px #2021243d}.rsapp-status-card__icon{color:#5f6368;place-items:center;width:40px;height:40px;margin-bottom:11px;display:grid}.rsapp-status-card__icon svg{width:27px;height:27px}.rsapp-status-card>strong{font-size:17px;font-weight:600}.rsapp-status-card p{color:#6a6e72;max-width:330px;margin:7px 0 0;font-size:13px;line-height:1.45}.rsapp-status-card button{color:#fff;cursor:pointer;background:#1a73e8;border:0;border-radius:4px;align-items:center;gap:8px;min-height:38px;margin-top:18px;padding:0 17px;font-size:13px;font-weight:600;display:inline-flex}.rsapp-status-card button:hover{background:#1765cc}.rsapp-status-card button svg{width:16px}.rsapp-panel{z-index:6;width:var(--rsapp-panel-width);color:#5f6368;background:#fff;border-left:1px solid #dadce0;flex-direction:column;height:100dvh;transition:transform .18s;display:flex;position:fixed;top:0;right:0;transform:translate(100%);box-shadow:-7px 0 20px #3c404324}.rsapp-layer.has-open-panel .rsapp-panel{transform:translate(0)}.rsapp-panel[aria-hidden=true]{visibility:hidden;transition:transform .18s,visibility 0s linear .18s}.rsapp-panel__header{flex:0 0 54px;grid-template-columns:1fr 1fr 1fr;align-items:center;height:54px;padding:0 12px;display:grid}.rsapp-panel__header button{color:#666a6d;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:40px;height:40px;display:grid}.rsapp-panel__header button:nth-child(2){justify-self:center}.rsapp-panel__header-actions{justify-self:end;align-items:center;gap:2px;display:flex}.access-popover.rsapp-access-popover{--access-mobile-top:calc(54px + env(safe-area-inset-top))}.rsapp-panel__header button:hover{background:#f1f3f4}.rsapp-panel__header button:focus-visible{outline-offset:2px;outline:2px solid #1a73e8}.rsapp-panel-handle:focus-visible{outline-offset:2px;outline:2px solid #1a73e8}.rsapp-display-tabs button:focus-visible{outline-offset:2px;outline:2px solid #1a73e8}.rsapp-panel__actions button:focus-visible{outline-offset:2px;outline:2px solid #1a73e8}.rsapp-settings-section button:focus-visible{outline-offset:2px;outline:2px solid #1a73e8}.rsapp-settings-section input:focus-visible{outline-offset:2px;outline:2px solid #1a73e8}.rsapp-settings-section select:focus-visible{outline-offset:2px;outline:2px solid #1a73e8}.rsapp-toast button:focus-visible{outline-offset:2px;outline:2px solid #1a73e8}.rsapp-panel__header svg{stroke-width:2px;width:21px;height:21px}.rsapp-panel__actions{border-bottom:1px solid #dadce0;flex:0 0 76px;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding:0 20px 13px;display:grid}.rsapp-panel__actions button{color:#5f6368;cursor:pointer;background:#fff;border:1px solid #dadce0;border-radius:3px;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-width:0;height:63px;font-size:15px;font-weight:600;display:flex}.rsapp-panel__actions button:hover:not(:disabled){background:#f8f9fa;border-color:#c7c9cd}.rsapp-panel__actions button:active:not(:disabled){background:#f1f3f4}.rsapp-panel__actions button:disabled{opacity:.48;cursor:default}.rsapp-panel__actions svg{stroke-width:1.8px;width:24px;height:24px}.rsapp-panel__scroll{overscroll-behavior:contain;scrollbar-color:#b8babd transparent;scrollbar-width:thin;flex:1;min-height:0;overflow-y:auto}.rsapp-settings-section{border-bottom:1px solid #dadce0}.rsapp-settings-section__toggle{color:#5f6368;text-align:left;cursor:pointer;background:#fff;border:0;justify-content:space-between;align-items:center;width:100%;height:48px;padding:0 20px 0 16px;font-size:13px;font-weight:450;display:flex}.rsapp-settings-section__toggle:hover{background:#f8f9fa}.rsapp-settings-section__toggle svg{width:18px;height:18px;transition:transform .15s}.rsapp-settings-section__toggle svg.is-open{transform:rotate(180deg)}.rsapp-settings-section__body{padding:0 12px 10px 31px}.rsapp-setting{cursor:pointer;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:12px;min-height:69px;padding:5px 3px 7px 0;display:grid}.rsapp-setting input{accent-color:#1a73e8;cursor:pointer;width:20px;height:20px;margin:1px 0 0}.rsapp-setting.is-disabled,.rsapp-setting.is-disabled input{cursor:default}.rsapp-setting.is-disabled .rsapp-setting__copy{opacity:.72}.rsapp-setting__copy{flex-direction:column;gap:2px;min-width:0;display:flex}.rsapp-setting__copy strong,.rsapp-select-setting>strong{color:#606468;font-size:16px;font-weight:500;line-height:1.25}.rsapp-setting__copy small,.rsapp-select-setting>small{color:#686c70;font-size:12px;line-height:1.35}.rsapp-select-setting{flex-direction:column;align-items:flex-start;gap:5px;min-height:93px;padding:5px 3px 10px 0;display:flex}.rsapp-select-setting select{color:#5f6368;cursor:pointer;background:#fff;border:1px solid #c9ccd0;border-radius:3px;outline:0;min-width:118px;height:31px;padding:0 27px 0 10px;font-size:13px}.rsapp-select-setting select:disabled{opacity:1;color:#5f6368;cursor:default;-webkit-appearance:none;appearance:none;border-color:#0000;padding-left:0}.rsapp-input-help{color:#666a6e;grid-template-columns:21px minmax(0,1fr);gap:10px;padding:4px 3px 13px 0;font-size:12px;line-height:1.42;display:grid}.rsapp-input-help svg{width:18px;height:18px}.rsapp-shortcut{color:#5f6368;cursor:pointer;background:#f8f9fa;border:1px solid #dadce0;border-radius:4px;align-items:center;gap:10px;min-height:41px;margin:0 3px 10px 0;padding:7px 10px;font-size:13px;display:flex}.rsapp-shortcut:hover:not(:disabled){background:#f1f3f4;border-color:#bfc3c8}.rsapp-shortcut:disabled{opacity:.5;cursor:default}.rsapp-shortcut>svg{width:18px;height:18px}.rsapp-shortcut kbd{color:#5f6368;background:#fff;border:1px solid #c8cbd0;border-radius:3px;place-items:center;min-width:27px;height:23px;padding:0 5px;font-family:inherit;font-size:11px;display:inline-grid;box-shadow:0 1px #d4d7da}.rsapp-secure-note{color:#717579;background:#f8f9fa;border-radius:4px;margin:0 3px 11px 0;padding:10px 11px;font-size:11px;line-height:1.45}.rsapp-panel-handle{z-index:7;color:#74787c;cursor:pointer;background:#fff;border:0;border-radius:50%;place-items:center;width:48px;height:48px;transition:right .18s;display:grid;position:fixed;top:50%;right:12px;transform:translateY(-50%);box-shadow:0 2px 8px #3c40433d}.rsapp-layer.has-open-panel .rsapp-panel-handle{right:calc(var(--rsapp-panel-width) - 24px)}.rsapp-panel-handle:hover{background:#f8f9fa}.rsapp-panel-handle svg{stroke-width:2.6px;width:26px;height:26px}.rsapp-toast{z-index:9;bottom:max(20px, env(safe-area-inset-bottom));color:#fff;background:#303134;border-radius:4px;align-items:center;gap:14px;max-width:min(440px,100vw - 32px);min-height:48px;padding:8px 8px 8px 16px;font-size:13px;animation:.16s ease-out rsapp-toast-in;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 5px 18px #20212447}.rsapp-toast span{flex:1;min-width:0}.rsapp-toast button{color:#fff;cursor:pointer;background:0 0;border:0;border-radius:50%;flex:0 0 36px;place-items:center;width:36px;height:36px;display:grid}.rsapp-toast button:hover{background:#ffffff1f}.rsapp-toast svg{width:18px}.rsapp-spin{animation:.85s linear infinite rsapp-spin}@keyframes rsapp-in{0%{opacity:0}}@keyframes rsapp-spin{to{transform:rotate(1turn)}}@keyframes rsapp-toast-in{0%{opacity:0;transform:translate(-50%,9px)}}@media (max-width:700px){.rsapp-layer{--rsapp-panel-width:min(360px, calc(100vw - 12px))}.rsapp-display-bar__mark{flex-basis:44px;width:44px}.rsapp-display-tabs button{min-width:136px;padding-inline:12px;font-size:12px}.rsapp-display-tabs button small{font-size:10px}.rsapp-panel{box-shadow:-5px 0 18px #20212433}.rsapp-panel__actions{gap:12px;padding-left:14px;padding-right:14px}.rsapp-panel__actions button{font-size:13px}.rsapp-settings-section__body{padding-left:24px}.rsapp-status-card{min-height:172px;padding:23px 22px}.rsapp-layer.has-open-panel .rsapp-panel-handle{right:calc(var(--rsapp-panel-width) - 22px)}.rsapp-panel-handle{width:44px;height:44px}}@media (max-height:560px) and (orientation:landscape){.rsapp-panel__actions{flex-basis:68px;padding-bottom:8px}.rsapp-panel__actions button{height:58px}.rsapp-settings-section__toggle{height:43px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
@@ -0,0 +1 @@
1
+ :root{--green:#1ed760;--green-bright:#38ef7d;--black:#000;--panel:#121212;--panel-soft:#181818;--panel-hover:#242424;--muted:#b3b3b3;--muted-strong:#d1d1d1;--border:#ffffff14;--shadow:0 14px 40px #00000073}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{background:var(--black);color:#fff;font-synthesis:none;text-rendering:optimizelegibility;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input{color:inherit;font:inherit}button{border:0}button,input[type=range]{-webkit-tap-highlight-color:transparent}:is(button:focus-visible,input:focus-visible){outline-offset:3px;outline:2px solid #fff}::selection{background:#1ed76059}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#fff3}::-webkit-scrollbar-thumb:hover{background:#ffffff52}.app-top-nav-offset{--app-top-nav-height:2.25rem;padding-top:var(--app-top-nav-height);height:100dvh}.spotifyApp{height:calc(100dvh - var(--app-top-nav-height,0px));isolation:isolate;background:#000;grid-template-rows:minmax(0,1fr) 92px;grid-template-columns:282px minmax(0,1fr);gap:8px;min-height:540px;padding:8px 8px 0;display:grid}.sidebar{flex-direction:column;grid-area:1/1;gap:8px;min-height:0;display:flex}.sidebarTop,.libraryPanel,.mainPanel{background:var(--panel);border-radius:8px}.sidebarTop{flex:none;padding:22px 20px 14px}.brand{cursor:pointer;color:#fff;letter-spacing:-.7px;background:0 0;align-items:center;gap:8px;margin:0 0 20px;padding:0;font-size:21px;font-weight:750;display:inline-flex}.spotifyMark{background:#fff;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex;position:relative;overflow:hidden}.spotifyMark span{border-top:2.6px solid #000;border-radius:50%;width:19px;height:8px;position:absolute;left:6px;transform:rotate(7deg)}.spotifyMark span:first-child{top:8px}.spotifyMark span:nth-child(2){width:17px;top:13px;left:7px}.spotifyMark span:nth-child(3){width:14px;top:18px;left:8px}.sidebarPrimaryNav{gap:3px;display:grid}.sidebarPrimaryNav button{min-height:43px;color:var(--muted);cursor:pointer;text-align:left;background:0 0;align-items:center;gap:15px;padding:0;font-size:14px;font-weight:700;transition:color .16s,transform .16s;display:flex}.sidebarPrimaryNav button:hover,.sidebarPrimaryNav .sidebarNavActive{color:#fff}.sidebarPrimaryNav button:active{transform:scale(.98)}.libraryPanel{flex-direction:column;flex:1;min-height:0;padding:7px 8px 8px;display:flex;overflow:hidden}.libraryHeader{justify-content:space-between;align-items:center;min-height:52px;padding:0 8px;display:flex}.libraryHeader>button{color:var(--muted);cursor:pointer;background:0 0;align-items:center;gap:11px;padding:8px 6px;font-size:14px;font-weight:700;transition:color .16s;display:flex}.libraryHeader>button:hover{color:#fff}.libraryHeader>div{display:flex}.iconButton{width:34px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border-radius:50%;flex:none;justify-content:center;align-items:center;transition:color .15s,background .15s,transform .15s;display:inline-flex}.iconButton:hover{color:#fff;background:#ffffff14;transform:scale(1.045)}.iconButton:active{transform:scale(.95)}.iconButton.isActive{color:var(--green)}.filterChips{scrollbar-width:none;gap:7px;padding:5px 5px 10px;display:flex;overflow-x:auto}.filterChips::-webkit-scrollbar{display:none}.filterChips button{color:#fff;cursor:pointer;background:#232323;border-radius:999px;flex:none;min-height:32px;padding:0 12px;font-size:12px;font-weight:600;transition:background .15s,color .15s}.filterChips button:hover{background:#303030}.filterChips .chipActive{color:#000;background:#fff}.libraryTools{justify-content:space-between;align-items:center;gap:6px;min-height:44px;padding:0 5px;display:flex}.libraryTools label{width:36px;height:34px;color:var(--muted);border-radius:5px;align-items:center;gap:7px;padding:0 9px;transition:width .18s,background .18s;display:flex;overflow:hidden}.libraryTools label:focus-within,.libraryTools label:hover{color:#fff;background:#242424;width:min(145px,62%)}.libraryTools label input{color:#fff;background:0 0;border:0;outline:0;width:95px;min-width:0;font-size:11px}.libraryTools label input::placeholder{color:var(--muted)}.libraryTools label button{color:var(--muted);cursor:pointer;background:0 0;padding:2px;display:inline-flex}.recentsButton{color:var(--muted);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:7px;font-size:11px;transition:color .15s;display:flex}.recentsButton:hover{color:#fff}.libraryList{flex:1;min-height:0;padding-right:1px;overflow-y:auto}.libraryRow{width:100%;color:inherit;cursor:pointer;text-align:left;background:0 0;border-radius:6px;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:10px;padding:7px 6px;transition:background .15s;display:grid}.libraryRow:hover,.libraryRowActive{background:#ffffff12}.libraryCover{border-radius:4px;width:48px;height:48px}.libraryRowText{flex-direction:column;gap:5px;min-width:0;display:flex}.libraryRowTitle{color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.libraryRowActive .libraryRowTitle{color:var(--green)}.libraryRowMeta{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;font-size:11px;display:flex;overflow:hidden}.libraryRowMeta svg{color:var(--green);transform:rotate(-25deg)}.libraryRowMore{opacity:0;color:var(--muted);transition:opacity .15s}.libraryRow:hover .libraryRowMore{opacity:1}.emptyLibrary{color:var(--muted);text-align:center;flex-direction:column;align-items:center;gap:6px;padding:44px 10px;font-size:12px;display:flex}.emptyLibrary strong{color:#fff;margin-top:6px;font-size:14px}.mainPanel{background:radial-gradient(circle at 20% 0,#2a46381f,#0000 34%),#121212;flex-direction:column;grid-area:1/2;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.topBar{z-index:20;-webkit-backdrop-filter:blur(22px)saturate(140%);backdrop-filter:blur(22px)saturate(140%);background:#121212e6;border-bottom:1px solid #0000;grid-template-columns:auto minmax(260px,420px) 1fr;align-items:center;gap:14px;min-height:64px;padding:8px 20px;display:grid;position:relative}.historyButtons{gap:8px;display:flex}.historyButtons .iconButton,.topActions>.iconButton{background:#000000a8}.globalSearch{min-height:46px;color:var(--muted);background:#242424;border:2px solid #0000;border-radius:999px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:0 14px;transition:background .16s,border-color .16s,box-shadow .16s;display:grid}.globalSearch:hover{background:#2a2a2a;border-color:#ffffff1f}.globalSearch:focus-within,.globalSearch.searchEmphasis:focus-within{border-color:#fff;box-shadow:0 0 0 1px #fff}.globalSearch input{color:#fff;background:0 0;border:0;outline:0;min-width:0;font-size:13px}.globalSearch input::placeholder{color:#a9a9a9}.globalSearch kbd{color:#aaa;white-space:nowrap;border:1px solid #ffffff24;border-radius:5px;padding:3px 6px;font-family:inherit;font-size:10px}.clearSearch{color:var(--muted);cursor:pointer;background:0 0;padding:4px;display:inline-flex}.topActions{justify-content:flex-end;align-items:center;gap:9px;min-width:0;display:flex}.explorePremium,.installButton{cursor:pointer;letter-spacing:.1px;white-space:nowrap;border-radius:999px;min-height:34px;padding:0 15px;font-size:12px;font-weight:750;transition:transform .15s,background .15s}.explorePremium{color:#000;background:#fff}.explorePremium:hover{transform:scale(1.035)}.installButton{color:#fff;background:0 0;align-items:center;gap:6px;display:flex}.installButton:hover{background:#ffffff14}.topActions .store-profile-menu{margin-left:0}.sharedProfileAction{display:flex}.topActions .store-profile-chevron{width:13px;height:13px;color:var(--muted);stroke-width:2.6px}.topActions .store-profile-active-check{width:16px;height:16px;color:var(--green);stroke-width:2.5px}.topActions .store-profile-manage svg{color:#b3b3b3;stroke-width:2px;flex:0 0 18px;width:18px;height:18px}.headerPopoverWrap{display:flex;position:relative}.headerPopoverWrap>.iconButton{background:#000000a8;position:relative}.headerPopoverWrap>.iconButton[aria-expanded=true]{color:#000;background:#fff}.access-popover.spotify-access-popover{--access-mobile-top:calc(var(--app-top-nav-height,0px) + 62px);--access-top:43px;z-index:80;border-radius:12px}.downloadActionBadge{background:var(--green);color:#06140b;border:2px solid #121212;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 3px;font-size:8px;font-weight:850;line-height:1;display:flex;position:absolute;top:-3px;right:-3px}.headerPopover{z-index:80;background:radial-gradient(circle at 15% 0,#1ed7601c,#0000 32%),#202020;border:1px solid #ffffff1c;border-radius:12px;flex-direction:column;width:min(390px,100vw - 32px);max-height:calc(100dvh - 172px);animation:.15s ease-out popoverEnter;display:flex;position:absolute;top:43px;right:0;overflow:hidden;box-shadow:0 22px 70px #000000b8}.downloadsPopover{width:min(430px,100vw - 32px)}.popoverHeader{border-bottom:1px solid #ffffff14;flex:none;justify-content:space-between;align-items:center;gap:18px;min-height:70px;padding:13px 14px 12px 17px;display:flex}.popoverHeader>div:first-child{min-width:0}.popoverHeader h2{letter-spacing:-.6px;margin:3px 0 0;font-size:20px}.popoverEyebrow{color:#78e69e;letter-spacing:1.35px;font-size:8px;font-weight:850}.popoverError{color:#ffb2b2;background:#7a1e1e38;border:1px solid #ff707038;border-radius:7px;flex:none;align-items:flex-start;gap:8px;margin:10px 12px 0;padding:9px 10px;font-size:10px;line-height:1.4;display:flex}.popoverError svg{flex:none}.providerList{flex:0 auto;padding:8px;display:grid;overflow-y:auto}.providerRow{border-radius:8px;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;padding:10px 9px;transition:background .15s;display:grid}.providerRow:hover{background:#ffffff0e}.providerMark{color:#fff;background:linear-gradient(135deg,#744bdf,#d73eaa);border-radius:10px;justify-content:center;align-items:center;width:38px;height:38px;font-size:15px;font-weight:850;display:flex;box-shadow:inset 0 1px #ffffff38}.providerMark--nhac-cua-tui{background:linear-gradient(135deg,#147dc4,#31b98a)}.providerMark--tiktok{background:linear-gradient(135deg,#25f4ee,#121212 48%,#fe2c55)}.providerMark--youtube{background:linear-gradient(135deg,#ff3b30,#c40000)}.providerCopy{flex-direction:column;gap:4px;min-width:0;display:flex}.providerCopy a{color:#fff;align-items:center;gap:5px;width:fit-content;max-width:100%;text-decoration:none;display:inline-flex}.providerCopy a:hover strong{text-decoration:underline}.providerCopy strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:700;overflow:hidden}.providerCopy>span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:9px;line-height:1.3;overflow:hidden}.providerCopy .providerError{color:#ff9f9f;white-space:normal}.syncProviderButton{color:#fff;cursor:pointer;background:#ffffff1a;border-radius:999px;justify-content:center;align-items:center;gap:6px;min-width:66px;min-height:32px;padding:0 10px;font-size:10px;font-weight:750;transition:background .15s,transform .15s;display:inline-flex}.syncProviderButton:hover:not(:disabled){background:#ffffff2b;transform:scale(1.03)}.syncProviderButton:disabled{color:#9fe8b8;cursor:wait}.addMusicForm{background:#0000002e;border-top:1px solid #ffffff14;flex-direction:column;flex:none;gap:8px;padding:14px 16px 16px;display:flex}.addMusicHeading{align-items:center;gap:9px;margin-bottom:2px;display:flex}.addMusicIcon{width:30px;height:30px;color:var(--green);background:#1ed7601f;border-radius:8px;flex:none;justify-content:center;align-items:center;display:flex}.addMusicHeading>div{flex-direction:column;gap:2px;min-width:0;display:flex}.addMusicHeading strong{font-size:12px}.addMusicHeading span{color:var(--muted);font-size:9px}.addMusicForm>label{color:#d7d7d7;font-size:9px;font-weight:700}.musicUrlControl{grid-template-columns:minmax(0,1fr) auto;gap:7px;min-width:0;display:grid}.musicUrlControl input{color:#fff;background:#121212;border:1px solid #ffffff21;border-radius:7px;outline:0;width:100%;min-width:0;height:38px;padding:0 11px;font-size:10px}.musicUrlControl input:hover{border-color:#ffffff47}.musicUrlControl input:focus{border-color:#fff;box-shadow:0 0 0 1px #fff}.musicUrlControl input::placeholder{color:#777}.musicUrlControl button{background:var(--green);color:#06140b;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:5px;min-width:70px;height:38px;padding:0 12px;font-size:10px;font-weight:800;transition:background .15s,transform .15s;display:inline-flex}.musicUrlControl button:hover:not(:disabled){background:var(--green-bright);transform:scale(1.025)}.musicUrlControl button:disabled{cursor:not-allowed;opacity:.5}.fieldError{color:#ff9f9f;font-size:9px;line-height:1.35}.downloadHeaderActions{flex:none;align-items:center;gap:7px;display:flex}.activeDownloadCount{color:#94eeb3;background:#1ed7601c;border-radius:999px;align-items:center;gap:5px;padding:5px 8px;font-size:8px;font-weight:750;display:inline-flex}.downloadList{min-height:130px;padding:7px;overflow-y:auto}.downloadRow{border-radius:9px;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:11px;min-width:0;padding:9px;transition:background .15s;display:grid}.downloadRow:hover{background:#ffffff0e}.downloadArtworkButton{cursor:default;background:0 0;border-radius:6px;width:58px;height:58px;padding:0;display:block;position:relative;overflow:hidden}.downloadArtworkButton:disabled{opacity:1}.downloadArtworkPlayable{cursor:pointer}.downloadArtwork{width:58px;height:58px}.downloadPlayOverlay{color:#fff;opacity:0;background:#0000008f;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;inset:0}.downloadArtworkButton:not(.downloadArtworkPlayable) .downloadPlayOverlay,.downloadArtworkPlayable:hover .downloadPlayOverlay,.downloadArtworkActive .downloadPlayOverlay{opacity:1}.downloadArtworkPlayable:focus-visible .downloadPlayOverlay{opacity:1}.downloadArtworkButton:not(.downloadArtworkPlayable) .downloadPlayOverlay{color:#ffffffd1;background:#00000047}.downloadCopy{flex-direction:column;gap:4px;min-width:0;display:flex}.downloadTitleRow{align-items:center;gap:6px;min-width:0;display:flex}.downloadTitleRow strong{color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:650;overflow:hidden}.downloadCompleteIcon{color:var(--green);flex:none}.downloadCopy>span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.downloadProgressMeta{color:#aaa;justify-content:space-between;align-items:center;gap:10px;min-width:0;font-size:8px;display:flex}.downloadProgressMeta span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.downloadProgressTrack{background:#ffffff21;border-radius:999px;width:100%;height:4px;display:block;overflow:hidden}.downloadProgressTrack>span{border-radius:inherit;background:var(--green);height:100%;transition:width .28s;display:block}.downloadRowFailed .downloadProgressTrack>span{background:#e95d5d}.downloadCopy .downloadError{color:#ff9f9f;white-space:normal}.emptyDownloads{min-height:170px;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:20px;display:flex}.emptyDownloads>span{background:#ffffff12;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:10px;display:flex}.emptyDownloads strong{color:#fff;font-size:12px}.emptyDownloads p{max-width:250px;margin:5px 0 0;font-size:9px;line-height:1.45}.spin{animation:.85s linear infinite spin}.audioEngine{display:none}.mainScroll{scroll-behavior:smooth;flex:1;min-height:0;overflow:hidden auto}.homeView,.searchView,.fullLibraryView{min-height:100%;padding:18px clamp(18px,2.25vw,34px) 44px}.hero{background:linear-gradient(105deg,#0000001a,#00000080),radial-gradient(circle at 20% 30%,#1ed7603b,#0000 36%),linear-gradient(135deg,#1c3c30 0%,#17241f 46%,#17151d 100%);border:1px solid #ffffff14;border-radius:15px;grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr);align-items:center;min-height:340px;padding:clamp(30px,5vw,70px);display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0f}.hero:after{aspect-ratio:1;content:"";border:1px solid #ffffff14;border-radius:50%;width:55%;position:absolute;bottom:-56%;right:-12%;box-shadow:0 0 0 50px #ffffff04,0 0 0 100px #ffffff03}.heroGlow{filter:blur(80px);background:#1ed7601f;border-radius:50%;width:280px;height:280px;position:absolute;top:-80px;left:26%}.heroCopy{z-index:2;max-width:620px;position:relative}.heroEyebrow,.sectionEyebrow{color:#a9f4c1;letter-spacing:1.5px;align-items:center;gap:7px;font-size:10px;font-weight:800;display:flex}.hero h1{letter-spacing:-3.5px;max-width:660px;margin:13px 0 14px;font-size:clamp(36px,4.2vw,68px);font-weight:850;line-height:.97}.hero p{color:#d2d8d4;max-width:520px;margin:0;font-size:clamp(14px,1.2vw,17px);line-height:1.55}.heroActions{flex-wrap:wrap;gap:10px;margin-top:27px;display:flex}.primaryButton,.secondaryButton{cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 22px;font-size:13px;font-weight:800;transition:transform .16s,background .16s;display:inline-flex}.primaryButton{background:var(--green);color:#06120a}.primaryButton:hover{background:var(--green-bright);transform:scale(1.035)}.secondaryButton{color:#fff;background:#0000002e;border:1px solid #ffffff4d}.secondaryButton:hover{background:#ffffff14;border-color:#fff;transform:scale(1.025)}.heroArt{z-index:2;justify-self:end;width:min(340px,30vw);height:min(310px,27vw);position:relative}.heroCover{border:1px solid #ffffff26;border-radius:9px;width:min(210px,17vw);height:min(210px,17vw);position:absolute;box-shadow:0 24px 55px #0000008c}.heroCoverBack{opacity:.68;top:9%;left:1%;transform:rotate(-13deg)scale(.89)}.heroCoverMiddle{opacity:.82;top:1%;right:1%;transform:rotate(10deg)scale(.92)}.heroCoverFront{z-index:2;bottom:0;right:17%;transform:rotate(-2deg)}.quickSection,.shelfSection{margin-top:34px}.sectionTitleRow{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:16px;display:flex}.sectionTitleRow h2{letter-spacing:-.7px;margin:0;font-size:clamp(20px,1.8vw,26px);font-weight:780}.sectionTitleRow p{color:var(--muted);margin:6px 0 0;font-size:12px}.sectionTitleRow>button{color:var(--muted);cursor:pointer;letter-spacing:.5px;text-transform:uppercase;background:0 0;margin-bottom:2px;padding:6px 0;font-size:11px;font-weight:750}.sectionTitleRow>button:hover{color:#fff;text-decoration:underline}.compactTitleRow{margin-bottom:13px}.compactTitleRow h2{margin-top:5px}.quickGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.quickTile{color:#fff;cursor:pointer;text-align:left;background:#ffffff17;border-radius:6px;grid-template-columns:64px minmax(0,1fr) 44px;align-items:center;gap:12px;min-width:0;min-height:64px;padding:0 10px 0 0;transition:background .18s,transform .18s;display:grid;position:relative;overflow:hidden}.quickTile:hover,.quickTileActive{background:#ffffff29}.quickTile:active{transform:scale(.99)}.quickTileArt{border-radius:0;width:64px;height:64px;box-shadow:5px 0 18px #00000038}.quickTile strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.quickTilePlay{background:var(--green);color:#000;opacity:0;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:opacity .17s,transform .17s;display:inline-flex;transform:translateY(5px);box-shadow:0 6px 15px #00000059}.quickTile:hover .quickTilePlay,.quickTileActive .quickTilePlay{opacity:1;transform:translateY(0)}.quickTile:focus-visible .quickTilePlay{opacity:1;transform:translateY(0)}.playlistGrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(10px,1.4vw,20px);display:grid}.playlistCard{background:#181818;border-radius:8px;min-width:0;padding:12px;transition:background .18s,transform .18s,box-shadow .18s}.playlistCard:hover,.playlistCard:focus-within,.playlistCardActive{background:#242424;transform:translateY(-2px);box-shadow:0 12px 26px #00000029}.playlistCardArt{margin-bottom:13px;position:relative}.playlistCardArt .coverArt{aspect-ratio:1;border-radius:6px;width:100%;box-shadow:0 10px 24px #0000005c}.playlistCardArt>.playButton{opacity:0;position:absolute;bottom:8px;right:8px;transform:translateY(8px)}.playlistCard:hover .playlistCardArt>.playButton,.playlistCard:focus-within .playlistCardArt>.playButton,.playlistCardActive .playlistCardArt>.playButton{opacity:1;transform:translateY(0)}.playingBadge{-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#0000008c;border-radius:999px;align-items:flex-end;gap:2px;height:24px;padding:6px 8px;display:flex;position:absolute;top:9px;left:9px}.playingBadge span{background:var(--green);border-radius:2px;width:2px;height:9px;animation:.75s ease-in-out infinite alternate equalize}.playingBadge span:nth-child(2){height:5px;animation-delay:-.35s}.playingBadge span:nth-child(3){height:11px;animation-delay:-.18s}.cardCopy{cursor:pointer;text-align:left;background:0 0;gap:6px;width:100%;padding:0;display:grid}.playlistCardTitle{color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:650;overflow:hidden}.playlistCardActive .playlistCardTitle{color:var(--green)}.playlistCardDescription{min-height:34px;color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11px;line-height:1.5;display:-webkit-box;overflow:hidden}.playButton{background:var(--green);color:#07140b;cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:transform .16s,background .16s,opacity .16s;display:inline-flex;box-shadow:0 8px 18px #0006}.playButton:hover{background:var(--green-bright);transform:scale(1.07)}.playButton-normal{width:45px;height:45px}.playButton-normal svg{width:21px;height:21px}.playButton-small{color:#000;width:34px;height:34px;box-shadow:none;background:#fff}.playButton-small svg{width:16px;height:16px}.playButton-large{width:52px;height:52px}.coverArt{background:radial-gradient(circle at 15% 10%, #ffffff38, transparent 34%), linear-gradient(145deg, var(--cover-from), var(--cover-to));isolation:isolate;flex:none;display:block;position:relative;overflow:hidden}.coverArtHasImage{background-position:50%;background-size:cover}.coverArtHasImage>span{display:none}.coverArtRound{border-radius:50%!important}.coverOrb{z-index:1;border:1px solid #ffffff38;border-radius:50%;display:block;position:absolute}.coverOrbOne{background:color-mix(in srgb, var(--cover-accent) 20%, transparent);width:75%;height:75%;top:-20%;right:-20%}.coverOrbTwo{width:65%;height:65%;bottom:-25%;left:-16%;box-shadow:0 0 0 10px #ffffff0f}.coverLine{z-index:2;background:var(--cover-accent);opacity:.75;width:80%;height:2px;display:block;position:absolute;bottom:22%;right:-10%;transform:rotate(-34deg);box-shadow:0 7px #fff3,0 14px #ffffff14}.coverGlyph{z-index:3;color:var(--cover-accent);letter-spacing:-2px;text-shadow:0 4px 18px #00000038;font-family:Georgia,Times New Roman,serif;font-size:clamp(12px,3.2vw,45px);font-weight:800;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.coverNoise{z-index:4;opacity:.08;mix-blend-mode:soft-light;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");position:absolute;inset:0}.queuePanel{z-index:30;background:#121212;border-left:1px solid #ffffff0a;border-radius:8px;flex-direction:column;width:min(416px,100%);min-height:0;animation:.17s ease-out queuePanelEnter;display:flex;position:absolute;top:0;bottom:0;right:0;overflow:hidden;box-shadow:-18px 0 42px #00000085}.queueHeader{flex:none;justify-content:space-between;align-items:center;min-height:68px;padding:0 13px 0 16px;display:flex}.queueHeader h2{letter-spacing:-.25px;margin:0;font-size:16px;font-weight:750}.queueHeader .iconButton{width:34px;height:34px}.queueScroll{overscroll-behavior:contain;flex:1;min-height:0;padding:10px 8px 24px 16px;overflow-y:auto}.queueScroll h3{letter-spacing:-.16px;margin:7px 8px 9px 0;font-size:16px;font-weight:750}.queueNext{margin-top:25px}.queueTrackList{display:grid}.queueTrack{color:#fff;text-align:left;background:0 0;border-radius:5px;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:12px;width:100%;min-width:0;min-height:58px;padding:5px 8px 5px 0;display:grid}button.queueTrack{cursor:pointer;transition:background .14s}button.queueTrack:hover{background:#ffffff12}button.queueTrack:active{background:#ffffff1c}.queueTrackArt{border-radius:4px;width:48px;height:48px}.queueTrackCopy{flex-direction:column;gap:4px;min-width:0;display:flex}.queueTrackCopy strong,.queueTrackCopy>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.queueTrackCopy strong{font-size:15px;font-weight:500;line-height:1.25}.queueTrackCopy>span{color:var(--muted);font-size:13px;line-height:1.25}.queueTrackCurrent .queueTrackCopy strong{color:var(--green)}.queueEmpty{color:var(--muted);margin:0;padding:8px 8px 8px 0;font-size:12px;line-height:1.5}.desktopPlayer{z-index:40;background:#000;grid-area:2/1/auto/-1;grid-template-columns:minmax(225px,.95fr) minmax(340px,1.15fr) minmax(250px,.95fr);align-items:center;gap:18px;padding:0 13px;display:grid;position:relative}.playerTrack{align-items:center;gap:10px;min-width:0;display:flex}.playerCover{border-radius:4px;width:56px;height:56px}.playerTrackCopy{flex-direction:column;flex:0 150px;gap:4px;min-width:0;display:flex}.playerTrackCopy strong,.playerTrackCopy span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.playerTrackCopy strong{font-size:12px;font-weight:550}.playerTrackCopy strong:hover,.playerTrackCopy span:hover{text-decoration:underline}.playerTrackCopy span{color:var(--muted);font-size:10px}.playerCenter{flex-direction:column;align-items:center;gap:7px;min-width:0;display:flex}.transportControls{justify-content:center;align-items:center;gap:9px;display:flex}.progressRow{grid-template-columns:33px minmax(0,1fr) 33px;align-items:center;gap:8px;width:100%;max-width:585px;display:grid}.progressRow span{color:#a7a7a7;text-align:center;font-size:9px}.range{-webkit-appearance:none;appearance:none;cursor:pointer;background:0 0;border:0;outline:0;width:100%;height:12px;margin:0}.range::-webkit-slider-runnable-track{background:linear-gradient(to right, #fff var(--range-progress), #4d4d4d var(--range-progress));border-radius:999px;width:100%;height:4px}.range:hover::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--green) var(--range-progress), #4d4d4d var(--range-progress))}.range::-moz-range-track{background:#4d4d4d;border-radius:999px;height:4px}.range::-moz-range-progress{background:#fff;border-radius:999px;height:4px}.range:hover::-moz-range-progress{background:var(--green)}.range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;opacity:0;background:#fff;border:0;border-radius:50%;width:12px;height:12px;margin-top:-4px;transition:opacity .13s}.range:hover::-webkit-slider-thumb{opacity:1}.range:focus-visible::-webkit-slider-thumb{opacity:1}.range::-moz-range-thumb{opacity:0;background:#fff;border:0;border-radius:50%;width:12px;height:12px}.range:hover::-moz-range-thumb{opacity:1}.range:focus-visible::-moz-range-thumb{opacity:1}.playerTools{justify-content:flex-end;align-items:center;gap:1px;min-width:0;display:flex}.playerTools .iconButton{width:30px;height:30px}.volumeRange{width:78px}.mobilePlayer,.mobileNav,.mobileExpandedPlayerBackdrop{display:none}.toast{z-index:100;color:#fff;min-height:42px;box-shadow:var(--shadow);opacity:0;pointer-events:none;background:#2d70e9;border-radius:5px;align-items:center;gap:8px;padding:0 16px;font-size:12px;font-weight:650;transition:opacity .18s,transform .18s;display:flex;position:fixed;bottom:105px;left:50%;transform:translate(-50%,10px)}.toastVisible{opacity:1;transform:translate(-50%)}.pageHeading{border-bottom:1px solid var(--border);padding:32px 0 28px}.pageHeading h1{letter-spacing:-2.8px;margin:9px 0 8px;font-size:clamp(38px,5vw,60px);font-weight:850}.pageHeading p{color:var(--muted);margin:0;font-size:13px}.mobileSearchInput{display:none}.searchRecentSection{margin-top:31px}.recentSearchGrid{grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(10px,1.4vw,18px);display:grid}.recentSearchCard{color:#fff;cursor:pointer;text-align:left;background:#181818;border-radius:8px;min-width:0;padding:12px;transition:background .18s,box-shadow .18s,transform .18s,color .18s}.recentSearchCard:hover,.recentSearchCardActive{background:#242424;transform:translateY(-2px);box-shadow:0 12px 26px #00000029}.recentSearchCard:focus-visible{background:#242424;transform:translateY(-2px);box-shadow:0 12px 26px #00000029}.recentSearchArt{margin-bottom:12px;display:block;position:relative}.recentSearchArt .coverArt{aspect-ratio:1;border-radius:6px;width:100%;box-shadow:0 10px 24px #0000005c}.recentSearchPlay{background:var(--green);color:#000;opacity:0;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:opacity .17s,transform .17s;display:inline-flex;position:absolute;bottom:8px;right:8px;transform:translateY(7px);box-shadow:0 7px 18px #00000061}.recentSearchCard:hover .recentSearchPlay,.recentSearchCardActive .recentSearchPlay{opacity:1;transform:translateY(0)}.recentSearchCard:focus-visible .recentSearchPlay{opacity:1;transform:translateY(0)}.recentSearchCopy{gap:6px;min-width:0;display:grid}.recentSearchCopy strong,.recentSearchCopy>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.recentSearchCopy strong{font-size:13px;font-weight:680}.recentSearchCardActive .recentSearchCopy strong{color:var(--green)}.recentSearchCopy>span{color:var(--muted);font-size:11px}.searchRecentEmpty{border:1px solid var(--border);min-height:130px;color:var(--muted);border-radius:8px;align-items:center;gap:14px;padding:22px;display:flex}.searchRecentEmpty>svg{flex:none}.searchRecentEmpty strong{color:#fff;font-size:14px}.searchRecentEmpty p{margin:5px 0 0;font-size:12px}.searchResults{margin-top:30px}.topResultLayout{grid-template-columns:minmax(230px,.76fr) minmax(450px,1.65fr);gap:22px;display:grid}.topResultCard{color:#fff;cursor:pointer;text-align:left;background:#181818;border-radius:8px;flex-direction:column;align-items:flex-start;min-height:224px;padding:18px;transition:background .18s;display:flex;position:relative;overflow:hidden}.topResultCard:hover{background:#272727}.topResultArt{border-radius:7px;width:88px;height:88px;margin-bottom:19px;box-shadow:0 10px 25px #00000059}.topResultCard>strong{letter-spacing:-1.4px;text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin-bottom:7px;font-size:clamp(24px,3vw,34px);overflow:hidden}.topResultCard>span:not(.topResultPlay){color:var(--muted);font-size:11px}.topResultCard>span b{color:#fff;font-weight:650}.topResultPlay{background:var(--green);color:#000;opacity:0;width:48px;height:48px;box-shadow:var(--shadow);border-radius:50%;justify-content:center;align-items:center;transition:opacity .16s,transform .16s;display:flex;position:absolute;bottom:18px;right:18px;transform:translateY(6px)}:is(.topResultCard:hover .topResultPlay,.topResultCard:focus-visible .topResultPlay){opacity:1;transform:translateY(0)}.songResults{min-width:0}.songResults .sectionTitleRow{margin-top:-44px}.trackResult{min-height:56px;color:var(--muted);border-radius:5px;grid-template-columns:minmax(190px,1.3fr) minmax(100px,.8fr) 34px 40px 34px;align-items:center;gap:8px;padding:4px 7px;font-size:11px;display:grid}.trackResult:hover,.trackResultActive{background:#ffffff14}.trackResultMain{min-width:0;color:inherit;cursor:pointer;text-align:left;background:0 0;grid-template-columns:45px minmax(0,1fr);align-items:center;gap:10px;padding:0;display:grid}.trackResultArtWrap{position:relative}.trackResultArt{border-radius:3px;width:45px;height:45px}.trackResultPlay{color:#fff;opacity:0;background:#00000073;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;inset:0}.trackResult:hover .trackResultPlay,.trackResultActive .trackResultPlay{opacity:1}.trackResultCopy{flex-direction:column;gap:4px;min-width:0;display:flex}.trackResultCopy span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.trackResultTitle{color:#fff;font-size:12px;font-weight:550}.trackResultActive .trackResultTitle{color:var(--green)}.trackResultAlbum{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.trackResultLike{opacity:0}.trackResult:hover .trackResultLike,.trackResultLike.isActive{opacity:1}.trackResultDuration{text-align:right}.searchPlaylistSection{margin-top:34px}.noResults{text-align:center;flex-direction:column;align-items:center;padding:90px 20px;display:flex}.noResults>span{width:58px;height:58px;color:var(--muted);background:#242424;border-radius:50%;justify-content:center;align-items:center;display:flex}.noResults h2{margin:20px 0 7px;font-size:20px}.noResults p{color:var(--muted);margin:0;font-size:12px}.libraryPageHeading{background:radial-gradient(circle at 13% 30%,#5937da52,#0000 29%),linear-gradient(110deg,#3f2db82e,#0000 55%)}.libraryCollectionGrid{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-top:28px;display:grid}.likedCollection{color:#fff;cursor:pointer;text-align:left;background:radial-gradient(circle at 15% 10%,#ffffff3b,#0000 32%),linear-gradient(135deg,#3828b8,#7ebbc0);border-radius:8px;flex-direction:column;grid-column:span 2;justify-content:flex-end;align-items:flex-start;min-height:225px;padding:21px;display:flex;position:relative;overflow:hidden}.likedCollection:after{content:"";border:1px solid #ffffff2e;border-radius:50%;width:180px;height:180px;position:absolute;top:-55px;right:-35px;box-shadow:0 0 0 22px #ffffff0a}.likedTrackNames{flex-direction:column;gap:5px;max-width:95%;margin-bottom:27px;font-size:10px;line-height:1.4;display:flex}.likedTrackNames span span{opacity:.65}.likedCollection>strong{letter-spacing:-.8px;margin-bottom:6px;font-size:24px}.likedCollection>span:not(.likedTrackNames,.likedCollectionPlay){font-size:11px}.likedCollectionPlay{background:var(--green);color:#000;opacity:0;width:47px;height:47px;box-shadow:var(--shadow);border-radius:50%;justify-content:center;align-items:center;transition:opacity .16s,transform .16s;display:flex;position:absolute;bottom:15px;right:15px;transform:translateY(5px)}:is(.likedCollection:hover .likedCollectionPlay,.likedCollection:focus-visible .likedCollectionPlay){opacity:1;transform:translateY(0)}.libraryCollectionCard{color:#fff;cursor:pointer;text-align:left;background:#181818;border-radius:8px;flex-direction:column;align-items:flex-start;min-width:0;padding:12px;transition:background .17s,transform .17s;display:flex}.libraryCollectionCard:hover,.libraryCollectionActive{background:#242424;transform:translateY(-2px)}.libraryCollectionArt{aspect-ratio:1;border-radius:5px;width:100%;margin-bottom:13px;box-shadow:0 10px 24px #00000057}.libraryCollectionCard strong,.libraryCollectionCard span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.libraryCollectionCard strong{margin-bottom:6px;font-size:13px}.libraryCollectionCard span{color:var(--muted);font-size:10px}.likedTracksSection{margin-top:38px}.likedTracksTable{border-top:1px solid var(--border);padding-top:8px}.likedTracksTable>button{width:100%;min-height:59px;color:var(--muted);cursor:pointer;text-align:left;background:0 0;border-radius:5px;grid-template-columns:28px 42px minmax(150px,1fr) minmax(120px,1fr) 30px 42px;align-items:center;gap:10px;padding:4px 10px;font-size:11px;display:grid}.likedTracksTable>button:hover,.likedTracksTable .likedTrackActive{background:#ffffff14}.likedTrackNumber{text-align:center}.likedTrackArt{border-radius:3px;width:42px;height:42px}.likedTrackCopy{flex-direction:column;gap:4px;min-width:0;display:flex}.likedTrackCopy strong,.likedTrackCopy span,.likedTrackAlbum{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.likedTrackCopy strong{color:#fff;font-size:12px;font-weight:550}.likedTrackActive .likedTrackCopy strong,.likedTracksTable svg{color:var(--green)}.miniEqualizer{align-items:flex-end;gap:2px;height:13px;display:inline-flex}.miniEqualizer i{background:var(--green);width:2px;height:8px;animation:.65s ease-in-out infinite alternate equalize}.miniEqualizer i:nth-child(2){height:12px;animation-delay:-.22s}.miniEqualizer i:nth-child(3){height:5px;animation-delay:-.42s}.contentFooter{border-top:1px solid var(--border);color:#747474;justify-content:space-between;align-items:flex-end;gap:24px;margin:66px 0 5px;padding:30px 0 6px;font-size:10px;display:flex}.contentFooter>div{flex-direction:column;gap:5px;display:flex}.contentFooter strong{color:#a4a4a4;font-size:11px}@keyframes equalize{0%{transform:scaleY(.35)}to{transform:scaleY(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes popoverEnter{0%{opacity:0;transform:translateY(-5px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes queuePanelEnter{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:translate(0)}}@media (max-width:1180px){.spotifyApp{grid-template-columns:240px minmax(0,1fr)}.topBar{grid-template-columns:auto minmax(230px,360px) 1fr;padding-inline:14px}.explorePremium{display:none}.hero{grid-template-columns:minmax(0,1fr) 290px;min-height:310px}.heroArt{width:280px;height:260px}.heroCover{width:175px;height:175px}.quickGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.libraryCollectionGrid{grid-template-columns:repeat(4,minmax(0,1fr))}.libraryCollectionCard:nth-of-type(n+4),.playerTools .iconButton:first-child{display:none}}@media (max-width:940px){.spotifyApp{grid-template-columns:205px minmax(0,1fr)}.sidebarTop{padding-inline:16px}.libraryHeader>button span{display:none}.topBar{grid-template-columns:auto minmax(220px,1fr) auto}.installButton{display:none}.hero{grid-template-columns:minmax(0,1fr);padding:38px}.heroCopy{max-width:570px}.heroArt{opacity:.34;width:285px;position:absolute;bottom:-75px;right:-40px;transform:rotate(5deg)}.playlistGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.playlistCard:nth-child(4){display:none}.recentSearchGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.topResultLayout{grid-template-columns:minmax(210px,.8fr) minmax(300px,1.3fr)}.trackResult{grid-template-columns:minmax(180px,1fr) 34px 40px 34px}.trackResultAlbum{display:none}.desktopPlayer{grid-template-columns:minmax(190px,.8fr) minmax(320px,1.2fr) minmax(145px,.7fr);gap:10px}.playerTrack>.iconButton:last-child,.playerTools .iconButton:nth-child(3),.playerTools .iconButton:last-child{display:none}}@media (max-width:760px){html,body{overflow:hidden}.spotifyApp{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0, 1fr) 66px calc(62px + env(safe-area-inset-bottom));background:#121212;gap:0;min-height:460px;padding:0}.sidebar,.desktopPlayer,.queuePanel{display:none}.mainPanel{border-radius:0;grid-area:1/1}.topBar{grid-template-columns:minmax(0,1fr) auto;gap:8px;min-height:59px;padding:7px 14px}.historyButtons,.globalSearch,.topActions .installButton,.topActions .explorePremium,.topActions>.iconButton{display:none}.topBar:before{content:"Spotify";letter-spacing:-.6px;align-self:center;align-items:center;font-size:18px;font-weight:800;display:flex}.topActions{grid-column:2;gap:4px}.headerPopoverWrap>.iconButton{width:35px;height:35px}.headerPopover{width:auto;max-height:calc(100dvh - 198px);position:fixed;top:61px;left:8px;right:8px}.downloadsPopover{width:auto}.homeView,.searchView,.fullLibraryView{padding:8px 15px 36px}.hero{border-radius:10px;min-height:285px;padding:27px 23px}.hero h1{letter-spacing:-2.6px;max-width:440px;margin-top:10px;font-size:clamp(34px,11vw,51px)}.hero p{max-width:400px;font-size:13px}.heroArt{opacity:.22;bottom:-98px;right:-74px}.heroActions{margin-top:21px}.primaryButton,.secondaryButton{min-height:43px;padding-inline:17px;font-size:12px}.quickSection,.shelfSection{margin-top:28px}.quickGrid{gap:7px}.quickTile{grid-template-columns:54px minmax(0,1fr);gap:9px;min-height:54px;padding-right:6px}.quickTileArt{width:54px;height:54px}.quickTile strong{font-size:10px}.quickTilePlay{display:none}.sectionTitleRow{margin-bottom:12px}.sectionTitleRow h2{font-size:20px}.sectionTitleRow p{display:none}.playlistGrid{scroll-snap-type:x proximity;scrollbar-width:none;gap:12px;margin-inline:-15px;padding:0 15px 4px;scroll-padding-inline:15px;display:flex;overflow-x:auto}.playlistGrid::-webkit-scrollbar{display:none}.playlistCard,.playlistCard:nth-child(4){scroll-snap-align:start;background:0 0;flex:0 0 148px;width:148px;padding:0;display:block}.playlistCard:hover,.playlistCardActive{box-shadow:none;background:0 0;transform:none}.playlistCardArt{margin-bottom:10px}.playlistCardArt>.playButton{display:none}.playlistCardTitle{font-size:12px}.playlistCardDescription{min-height:31px;font-size:10px}.pageHeading{padding:21px 0 18px}.pageHeading h1{letter-spacing:-2px;margin:7px 0 5px;font-size:38px}.pageHeading p{font-size:11px}.mobileSearchInput{color:#161616;background:#fff;border-radius:6px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;min-height:47px;margin:18px 0;padding:0 13px;display:grid}.mobileSearchInput input{color:#111;background:0 0;border:0;outline:0;min-width:0;font-size:13px;font-weight:600}.mobileSearchInput input::placeholder{color:#5e5e5e}.mobileSearchInput button{color:#111;background:0 0;padding:4px;display:flex}.searchRecentSection,.searchResults{margin-top:22px}.recentSearchGrid{scroll-snap-type:x proximity;scrollbar-width:none;gap:12px;margin-inline:-15px;padding:0 15px 4px;scroll-padding-inline:15px;display:flex;overflow-x:auto}.recentSearchGrid::-webkit-scrollbar{display:none}.recentSearchCard{scroll-snap-align:start;background:0 0;flex:0 0 148px;width:148px;padding:0}.recentSearchCard:hover,.recentSearchCardActive{box-shadow:none;background:0 0;transform:none}.recentSearchCard:focus-visible{box-shadow:none;background:0 0;transform:none}.recentSearchPlay{display:none}.topResultLayout{display:block}.topResultCard{min-height:205px;margin-bottom:28px}.topResultCard .topResultPlay{opacity:1;transform:none}.songResults .sectionTitleRow{margin-top:0}.trackResult{grid-template-columns:minmax(0,1fr) 34px 34px;padding-inline:3px}.trackResultAlbum,.trackResultDuration,.trackResultLike{display:none}.trackResultPlay{opacity:1}.libraryPageHeading{margin-inline:-15px;padding-inline:15px}.libraryCollectionGrid{scroll-snap-type:x proximity;scrollbar-width:none;gap:12px;margin-inline:-15px;padding:0 15px 5px;display:flex;overflow-x:auto}.libraryCollectionGrid::-webkit-scrollbar{display:none}.likedCollection{scroll-snap-align:start;flex:0 0 250px;width:250px;min-height:190px}.likedCollectionPlay{opacity:1;transform:none}.libraryCollectionCard,.libraryCollectionCard:nth-of-type(n+4){scroll-snap-align:start;background:0 0;flex:0 0 138px;width:138px;padding:0;display:flex}.libraryCollectionCard:hover,.libraryCollectionActive{background:0 0;transform:none}.likedTracksTable>button{grid-template-columns:23px 42px minmax(0,1fr) 36px;padding-inline:3px}.likedTrackAlbum,.likedTracksTable>button>svg{display:none}.mobilePlayer{z-index:60;background:linear-gradient(90deg,#1ed7600f,#0000 45%),#282828;border-radius:7px;grid-area:2/1;grid-template-columns:46px minmax(0,1fr) 42px 42px 42px;align-items:center;gap:8px;margin:0 8px 3px;padding:5px 7px;display:grid;position:relative;overflow:hidden;box-shadow:0 -5px 20px #0003}.mobilePlayerProgress{z-index:2;background:#fff;height:2px;display:block;position:absolute;bottom:0;left:0}.mobilePlayerArt{border-radius:4px;width:46px;height:46px}.mobilePlayerCopy{text-align:left;background:0 0;flex-direction:column;gap:3px;min-width:0;padding:0;display:flex}.mobilePlayerCopy strong,.mobilePlayerCopy span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mobilePlayerCopy strong{font-size:11px;font-weight:600}.mobilePlayerCopy span{color:var(--muted);font-size:9px}.mobilePlayer .iconButton{color:#fff;width:42px;height:42px}.mobilePlayer .iconButton.isActive{color:var(--green)}.mobileExpandedPlayerBackdrop{z-index:85;top:var(--app-top-nav-height,2.25rem);padding:18px 12px max(12px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000b8;justify-content:center;align-items:flex-end;animation:.18s ease-out mobilePlayerBackdropEnter;display:flex;position:fixed;bottom:0;left:0;right:0;overflow-y:auto}.mobileExpandedPlayer{flex-direction:column;gap:10px;width:min(100%,520px);animation:.21s ease-out mobileExpandedPlayerEnter;display:flex}.mobileExpandedPlayerHeader{justify-content:space-between;align-items:center;gap:16px;min-height:52px;padding:0 4px 0 7px;display:flex}.mobileExpandedPlayerHeader>div{min-width:0}.mobileExpandedPlayerHeader span{color:var(--green);letter-spacing:.12em;text-transform:uppercase;font-size:9px;font-weight:800;display:block}.mobileExpandedPlayerHeader h2{letter-spacing:-.02em;margin:3px 0 0;font-size:19px}.mobileExpandedPlayerHeader .iconButton{color:#fff;background:#ffffff1a;flex:0 0 40px}.mobileExpandedPlayer .activity-card{width:100%}.mobileNav{z-index:60;padding:5px 12px calc(5px + env(safe-area-inset-bottom));background:linear-gradient(#000000d1,#000 34%);grid-area:3/1;grid-template-columns:repeat(3,1fr);display:grid;position:relative}.mobileNav button{color:#8e8e8e;background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-height:48px;font-size:9px;font-weight:550;display:flex}.mobileNav button.mobileNavActive{color:#fff}.toast{bottom:calc(139px + env(safe-area-inset-bottom));white-space:nowrap;max-width:calc(100vw - 30px);font-size:11px}.contentFooter{margin-top:42px}.contentFooter>span{display:none}}@media (max-width:430px){.popoverHeader{min-height:62px;padding-block:10px}.popoverHeader h2{font-size:18px}.providerRow{grid-template-columns:35px minmax(0,1fr) auto;gap:8px;padding-inline:7px}.providerMark{width:35px;height:35px}.syncProviderButton{width:34px;min-width:34px;padding:0}.syncProviderButton span{display:none}.addMusicForm{padding-inline:12px}.musicUrlControl button{width:42px;min-width:42px;padding:0}.musicUrlControl button span{display:none}.downloadRow{grid-template-columns:52px minmax(0,1fr);gap:9px;padding-inline:6px}.downloadArtworkButton,.downloadArtwork{width:52px;height:52px}.hero{min-height:310px}.heroActions{grid-template-columns:1fr;display:grid}.heroActions button{width:100%}.quickTile{grid-template-columns:48px minmax(0,1fr);min-height:48px}.quickTileArt{width:48px;height:48px}.mobilePlayer{grid-template-columns:43px minmax(0,1fr) 40px 40px 40px;gap:5px}.mobilePlayerArt{width:43px;height:43px}.mobilePlayer .iconButton{width:40px;height:40px}}@keyframes mobilePlayerBackdropEnter{0%{opacity:0}}@keyframes mobileExpandedPlayerEnter{0%{opacity:0;transform:translateY(18px)scale(.985)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}