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
+ :root{--netflix-red:#e50914;--netflix-red-dark:#b20710;--background:#141414;--background-deep:#050505;--surface:#181818;--surface-raised:#2f2f2f;--text:#fff;--text-muted:#b3b3b3;--text-dim:#777;--page-padding:clamp(1rem, 4vw, 3.75rem);--header-height:4.25rem;--app-top-nav-height:2.25rem;--ease-out:cubic-bezier(.2, .8, .2, 1)}*{box-sizing:border-box}html{background:var(--background);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;scroll-behavior:smooth}body{background:var(--background);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow-x:hidden}.visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}a{color:inherit;text-decoration:none}button:focus-visible{outline-offset:3px;outline:2px solid #fff}a:focus-visible{outline-offset:3px;outline:2px solid #fff}input:focus-visible{outline-offset:3px;outline:2px solid #fff}[role=button]:focus-visible{outline-offset:3px;outline:2px solid #fff}.site-shell{background:radial-gradient(circle at 80% 35%, #590b1014, transparent 24rem), var(--background);min-height:100vh;overflow:clip}.app-top-nav-offset{padding-top:var(--app-top-nav-height)}.top-nav{z-index:80;top:var(--app-top-nav-height);height:calc(var(--header-height) + env(safe-area-inset-top));padding:env(safe-area-inset-top) var(--page-padding) 0;background:linear-gradient(#000000db 0%,#00000073 52%,#0000 100%);justify-content:space-between;align-items:center;gap:2rem;transition:background-color .22s,box-shadow .22s;display:flex;position:fixed;left:0;right:0}.top-nav--solid{background:#141414f7;box-shadow:0 .5rem 1.75rem #0000002e}.top-nav--search{box-shadow:none;background:#0c0c0c;gap:1.5rem;padding-inline:clamp(1rem,1.65vw,1.75rem)}.top-nav--search .nav-start{gap:clamp(1.5rem,2.4vw,2.6rem)}.top-nav--search .nav-end{flex:1}.top-nav--search .nav-end>.nav-popover-wrap{display:none}.nav-start,.nav-end{align-items:center;min-width:0;display:flex}.nav-start{gap:clamp(1.5rem,2.7vw,3rem)}.nav-end{justify-content:flex-end;gap:clamp(.75rem,1.25vw,1.4rem)}.netflix-wordmark{color:var(--netflix-red);letter-spacing:-.085em;text-shadow:0 0 1px #ffffff26;transform-origin:0;font-size:clamp(1.5rem,2.25vw,2rem);font-weight:950;line-height:1;transform:scaleX(.92)}.primary-nav{align-items:center;gap:clamp(.85rem,1.35vw,1.35rem);display:flex}.primary-nav a{color:#e5e5e5;white-space:nowrap;font-size:clamp(.75rem,.9vw,.9rem);font-weight:400;transition:color .18s}.primary-nav a:hover{color:var(--text-muted)}.primary-nav a.active{color:#fff;font-weight:650}.icon-button{cursor:pointer;background:0 0;border:0;place-items:center;width:2.75rem;height:2.75rem;padding:0;display:grid}.icon-button svg{stroke-width:2px;width:1.35rem;height:1.35rem}.mobile-menu-button{display:none}.kids-link{font-size:.85rem}.search-box{width:2.75rem;height:2.35rem;transition:width .26s var(--ease-out), border-color .18s ease, background .18s ease;background:0 0;border:1px solid #0000;justify-content:flex-start;align-items:center;display:flex;overflow:hidden}.search-box--open{background:#000000d1;border-color:#ffffffd1;width:min(17rem,28vw)}.search-box .search-trigger{flex:0 0 2.75rem}.search-box input{color:#fff;background:0 0;border:0;outline:0;width:100%;min-width:0;height:100%;padding:0 .7rem 0 .15rem;font-size:.82rem}.search-box input::placeholder{color:#a7a7a7}.search-clear{color:#989898;cursor:pointer;background:#3b3b3b;border:0;border-radius:50%;flex:0 0 1.45rem;place-items:center;width:1.45rem;height:1.45rem;margin-right:.65rem;padding:0;display:grid}.search-clear:hover{color:#d0d0d0;background:#505050}.search-clear svg{stroke-width:3px;width:.92rem;height:.92rem}.top-nav--search .search-box--open{background:#181818;border-color:#5c5c5c;border-radius:999px;width:min(25rem,32vw);height:3.5rem;margin-left:auto}.top-nav--search .search-box .search-trigger{flex-basis:3rem}.top-nav--search .search-box input{padding:0 .45rem 0 0;font-size:1rem}.nav-popover-wrap,.download-button,.notification-button{position:relative}.download-badge{background:var(--netflix-red);color:#fff;border:1.5px solid #141414;border-radius:999px;place-items:center;min-width:1.05rem;height:1.05rem;padding:0 .22rem;font-size:.58rem;font-weight:800;line-height:1;display:grid;position:absolute;top:.05rem;right:0}.notification-badge{background:var(--netflix-red);color:#fff;border:1.5px solid #141414;border-radius:999px;place-items:center;min-width:1.05rem;height:1.05rem;padding:0 .22rem;font-size:.58rem;font-weight:800;line-height:1;display:grid;position:absolute;bottom:.1rem;right:.1rem}.profile-trigger{cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;gap:.6rem;min-width:2.75rem;min-height:2.75rem;padding:0;display:flex}.profile-trigger>svg{fill:#fff;width:.75rem;height:.75rem;transition:transform .18s}.profile-trigger>svg.rotate{transform:rotate(180deg)}.profile-avatar{background:linear-gradient(155deg,#ffffff47,#0000 35%),#1565c0;border-radius:.25rem;width:2rem;height:2rem;display:block;position:relative;overflow:hidden;box-shadow:inset 0 -.3rem #00000026}.profile-avatar span:first-child,.profile-avatar span:nth-child(2){background:#fff;border-radius:50%;width:.28rem;height:.36rem;position:absolute;top:.7rem}.profile-avatar span:first-child{left:.46rem}.profile-avatar span:nth-child(2){right:.46rem}.profile-avatar span:last-child{border-bottom:.16rem solid #fff;border-radius:0 0 50% 50%;height:.35rem;position:absolute;bottom:.38rem;left:.45rem;right:.45rem}.nav-popover{width:15rem;animation:popover-in .16s var(--ease-out);background:#000000f0;border:1px solid #ffffff24;position:absolute;top:calc(100% + 1.05rem);right:-.1rem;box-shadow:0 1rem 2.5rem #00000073}.popover-caret{background:#000000f0;border-top:1px solid #fff3;border-left:1px solid #fff3;width:.85rem;height:.85rem;position:absolute;top:-.48rem;right:1rem;transform:rotate(45deg)}.profile-popover{width:14rem;padding:.65rem 0}.profile-popover a,.profile-popover button{width:100%;min-height:2.5rem;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:.75rem;padding:.35rem .8rem;font-size:.82rem;display:flex}.profile-popover a:hover,.profile-popover button:hover{text-decoration:underline}.profile-popover a>svg,.profile-popover button>svg{color:#b3b3b3;width:1.4rem}.profile-popover .profile-active-check{color:#46d369;width:1rem;margin-left:auto}.profile-signout{border-top:1px solid #fff3;justify-content:center;margin-top:.45rem}.mini-avatar{border-radius:.2rem;flex:none;place-items:center;width:2rem;height:2rem;font-weight:800;display:grid}.profile-option[aria-current=true]{background:#ffffff14}.mini-avatar--blue{background:#1565c0}.mini-avatar--red{background:#f05b47}.notification-popover{width:min(25rem,88vw);right:-.5rem}.sources-popover{border-radius:.35rem;width:min(24rem,92vw);padding:.8rem;right:-2.8rem}.access-popover.netflix-access-popover{--access-top:calc(100% + 1.05rem);--access-right:-2.8rem}.access-popover.netflix-access-popover .access-caret{right:3.75rem}.downloads-popover{border-radius:.35rem;width:min(25rem,100vw - 2rem);max-height:min(35rem,76vh);right:-2.8rem;overflow:hidden}.downloads-heading{background:#171717;align-items:center;gap:.75rem;padding:1rem;display:flex}.downloads-heading>span{color:#ff3943;background:#e509142b;border-radius:50%;flex:none;place-items:center;width:2.5rem;height:2.5rem;display:grid}.downloads-heading>span svg{width:1.2rem}.downloads-heading>div,.download-copy{flex-direction:column;flex:1;min-width:0;display:flex}.downloads-heading b{font-size:.95rem}.downloads-heading small{color:var(--text-muted);font-size:.72rem}.download-list{overscroll-behavior:contain;max-height:min(28rem,76vh - 4.5rem);overflow-y:auto}.download-item{background:#141414fa;border-top:1px solid #303030;grid-template-columns:6.25rem minmax(0,1fr);align-items:center;gap:.75rem;min-height:5.25rem;padding:.8rem;display:grid}.download-thumb{aspect-ratio:16/9;cursor:pointer;background-color:#292929;background-position:50%;background-size:cover;border:0;border-radius:.2rem;width:100%;padding:0;display:block;position:relative;overflow:hidden}.download-thumb:before{content:"";opacity:0;background:#0000006b;transition:opacity .16s;position:absolute;inset:0}.download-thumb-play{color:#fff;opacity:0;border:2px solid #ffffffeb;border-radius:50%;place-items:center;width:2rem;height:2rem;transition:opacity .16s,transform .16s;display:grid;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)scale(.82)}.download-thumb-play svg{width:.9rem;height:.9rem}.download-thumb:hover:before,.download-thumb:hover .download-thumb-play{opacity:1}.download-thumb:focus-visible:before{opacity:1}.download-thumb:focus-visible .download-thumb-play{opacity:1}:is(.download-thumb:hover .download-thumb-play,.download-thumb:focus-visible .download-thumb-play){transform:translate(-50%,-50%)scale(1)}.download-copy>div:first-child{justify-content:space-between;align-items:center;gap:.5rem;min-width:0;display:flex}.download-copy b,.download-copy small,.download-copy em{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.download-copy b{font-size:.82rem}.download-copy small,.download-copy em{color:#b3b3b3;font-size:.7rem;line-height:1.35}.download-copy em{color:#ff777d;margin-top:.3rem;font-style:normal}.download-status-icon{color:#ddd;border-radius:50%;flex:none;place-items:center;width:1.25rem;height:1.25rem;display:grid}.download-status-icon svg{width:.95rem}.download-item--ready .download-status-icon{color:#08180d;background:#46d369}.download-item--failed .download-status-icon{color:#fff;background:#e50914}.download-progress{background:#4a4a4a;border-radius:999px;height:.22rem;margin-top:.5rem;overflow:hidden}.download-progress span{border-radius:inherit;background:var(--netflix-red);height:100%;transition:width .24s;display:block}.download-item--ready .download-progress span{background:#46d369}.download-item--failed .download-progress span{background:#ff5f66}.downloads-empty{color:#ddd;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;min-height:12rem;padding:2rem;display:flex}.downloads-empty>svg{color:#777;width:2rem;margin-bottom:.35rem}.downloads-empty b{font-size:.86rem}.downloads-empty small{color:var(--text-muted);font-size:.72rem}.sources-heading,.provider-list article,.download-state{align-items:center;display:flex}.sources-heading{gap:.75rem;padding:.35rem .35rem .85rem}.sources-heading>span,.add-movie-icon{color:#ff3943;background:#e509142b;border-radius:50%;place-items:center;width:2.5rem;height:2.5rem;display:grid}.sources-heading svg,.add-movie-icon svg{width:1.2rem}.sources-heading div,.provider-copy{flex-direction:column;flex:1;min-width:0;display:flex}.sources-heading b{font-size:.95rem}.sources-heading small,.provider-copy small{color:var(--text-muted);font-size:.7rem}.provider-list{border-top:1px solid #303030}.provider-list article{background:#00000003;border-bottom:1px solid #303030;gap:.55rem;min-height:4.65rem;padding:.65rem .35rem .65rem 0;transition:background .12s,box-shadow .12s;position:relative}.provider-row--dragging{z-index:1;box-shadow:0 0 0 1px #ffffff38;background:#252525!important}.provider-drag-handle{color:#7d7d7d;cursor:grab;touch-action:none;background:0 0;border:0;flex:none;place-items:center;width:1.55rem;height:2.7rem;padding:0;display:grid}:is(.provider-drag-handle:hover,.provider-drag-handle:focus-visible,.provider-row--dragging .provider-drag-handle){color:#fff}.provider-drag-handle:focus-visible{outline-offset:-2px;border-radius:.2rem;outline:2px solid #fff}.provider-row--dragging .provider-drag-handle{cursor:grabbing}.provider-drag-handle svg{pointer-events:none;width:1.15rem}.provider-mark{background:linear-gradient(145deg,#e50914,#76070d);border-radius:.3rem;flex:none;place-items:center;width:2rem;height:2rem;font-weight:850;display:grid}.provider-copy b{font-size:.82rem}.provider-copy a{color:#ddd;text-overflow:ellipsis;white-space:nowrap;width:max-content;max-width:100%;font-size:.73rem;overflow:hidden}.provider-copy a:hover{text-decoration:underline}.provider-copy small{text-overflow:ellipsis;white-space:nowrap;margin-top:.12rem;overflow:hidden}.provider-sync{color:#fff;cursor:pointer;background:#252525;border:1px solid #525252;border-radius:50%;flex:none;place-items:center;width:2.2rem;height:2.2rem;padding:0;display:grid}.provider-sync:hover:not(:disabled){background:#333;border-color:#fff}.provider-sync:disabled{color:#999;cursor:wait}.provider-sync svg{width:1rem}.source-message{color:#b8b8b8;margin:.7rem .35rem 0;font-size:.72rem;line-height:1.4}.add-movie-button{color:#111;cursor:pointer;background:#fff;border:0;border-radius:.25rem;justify-content:center;align-items:center;gap:.5rem;width:100%;margin-top:.75rem;padding:.72rem .8rem;font-weight:750;display:flex}.add-movie-button:hover{background:#dcdcdc}.add-movie-button svg{width:1rem}.spin{animation:.9s linear infinite source-spin}.notification-popover article,.notification-item{width:100%;min-height:6rem;color:inherit;cursor:pointer;font:inherit;text-align:left;background:#141414f5;border:0;border-bottom:1px solid #ffffff1f;grid-template-columns:6.5rem 1fr;gap:.75rem;padding:.75rem;display:grid}.notification-popover article:hover,.notification-item:hover{background:#252525}.notification-item.is-unread{border-left:.2rem solid var(--netflix-red)}.notification-empty{color:var(--text-muted);text-align:center;background:#141414f5;margin:0;padding:1.4rem 1rem;font-size:.82rem}.notification-popover article>span:last-child,.notification-item>span:last-child{flex-direction:column;justify-content:center;min-width:0;display:flex}.notification-popover b{font-size:.85rem}.notification-thumb:empty{background-color:#2b2b2b;min-height:4.4rem}.notification-popover small,.notification-popover em{color:var(--text-muted);font-size:.76rem;font-style:normal;line-height:1.4}.notification-popover em{color:var(--text-dim);margin-top:.35rem}.notification-thumb{background-position:50%;background-size:cover;border-radius:.2rem;width:100%;display:block}.notification-thumb--one{background-image:linear-gradient(140deg,#0000,#000000b8),url(https://images.unsplash.com/photo-1485846234645-a62644f84728?auto=format&fit=crop&w=500&q=75)}.notification-thumb--two{background-image:linear-gradient(140deg,#0000,#000000b8),url(https://images.unsplash.com/photo-1489599849927-2ee91cede3ba?auto=format&fit=crop&w=500&q=75)}.hero{--hero-image:none;--hero-accent:#b20710;isolation:isolate;background:#090909;height:clamp(39rem,82vh,54rem);min-height:39rem;position:relative;overflow:hidden}.hero-backdrop{z-index:-3;background-image:var(--hero-image);background-position:62% 22%;background-size:cover;animation:18s ease-in-out infinite alternate hero-breathe;position:absolute;inset:0;transform:scale(1.015)}.hero--paused .hero-backdrop{animation-play-state:paused}.hero-vignette{z-index:-2;background:linear-gradient(90deg, #000000e8 0%, #000000b8 25%, #0000002e 56%, transparent 72%), linear-gradient(0deg, var(--background) 0%, #141414e0 5%, transparent 35%), linear-gradient(180deg, #00000073, transparent 20%);position:absolute;inset:0}.hero:after{z-index:-1;background:var(--hero-accent);content:"";filter:blur(10rem);opacity:.09;border-radius:50%;width:42rem;height:42rem;position:absolute;bottom:-19rem;right:-16rem}.hero-content{z-index:2;top:clamp(8.5rem,18vh,12rem);left:var(--page-padding);width:min(38rem,43vw);position:absolute}.netflix-series{color:#ffffffe0;letter-spacing:.34em;align-items:center;gap:.5rem;margin:0 0 .8rem;font-size:.86rem;font-weight:750;display:flex}.netflix-series span{color:var(--netflix-red);letter-spacing:-.1em;font-size:1.8rem;font-weight:950}.hero-content h1{letter-spacing:-.06em;text-wrap:balance;text-shadow:0 .15rem 1.2rem #0000006b;max-width:9ch;margin:0 0 1rem;font-family:Georgia,Times New Roman,serif;font-size:clamp(3rem,6vw,6rem);font-style:italic;font-weight:800;line-height:.86}.hero-title-logo{object-fit:contain;object-position:left bottom;filter:drop-shadow(0 .15rem .9rem #00000057);width:min(33rem,90%);max-height:11.5rem;margin:0 0 1rem;display:block}.hero-rank{align-items:center;gap:.75rem;margin:1.2rem 0 .8rem;font-size:clamp(1rem,1.35vw,1.35rem);font-weight:750;display:flex}.hero-rank span{background:var(--netflix-red);letter-spacing:-.05em;text-align:center;border-radius:.15rem;place-items:center;width:2.25rem;height:2.25rem;font-size:.68rem;font-weight:900;line-height:.7;display:grid}.hero-description{color:#fffffff0;text-shadow:0 .1rem .6rem #000000b3;-webkit-line-clamp:3;-webkit-box-orient:vertical;max-width:36rem;margin:0 0 1.55rem;font-size:clamp(.95rem,1.32vw,1.25rem);font-weight:420;line-height:1.42;display:-webkit-box;overflow:hidden}.hero-actions,.modal-actions{align-items:center;gap:.75rem;display:flex}.button{cursor:pointer;border:0;border-radius:.3rem;justify-content:center;align-items:center;gap:.65rem;min-width:7.25rem;min-height:3rem;padding:.6rem 1.6rem;font-size:clamp(.92rem,1.15vw,1.08rem);font-weight:750;transition:background .16s,transform .16s;display:inline-flex}.button:active{transform:scale(.97)}.button svg{stroke-width:2.7px;width:1.65rem;height:1.65rem}.button--primary{color:#000;background:#fff}.button--primary:hover{background:#ffffffc7}.button--secondary{color:#fff;background:#6d6d6ec7}.button--secondary:hover{background:#6d6d6e8c}.hero-side-controls{z-index:3;align-items:center;gap:.9rem;display:flex;position:absolute;bottom:clamp(10rem,20vh,14rem);right:0}.round-button{cursor:pointer;background:#18181857;border:1.5px solid #ffffffc7;border-radius:50%;place-items:center;width:2.75rem;height:2.75rem;padding:0;transition:background .16s,border-color .16s,transform .16s;display:grid}.round-button:hover{background:#ffffff24;border-color:#fff;transform:scale(1.06)}.round-button.is-active,.card-controls button.is-active{color:#46d369;border-color:#46d369}.round-button.track-button.is-active{border-color:var(--netflix-red);color:var(--netflix-red)}.round-button svg{width:1.25rem;height:1.25rem}.maturity-badge{background:#3333339e;border-left:.2rem solid #fff;min-width:7rem;padding:.55rem 2.8rem .55rem .95rem;font-size:1rem}.hero-scroll-cue{z-index:4;color:#ffffff9e;animation:2s ease-in-out infinite scroll-cue;position:absolute;bottom:7rem;left:50%}.catalog{z-index:10;margin-top:clamp(-9rem,-11vw,-6rem);padding-bottom:1rem;scroll-margin-top:5rem;position:relative}.my-list-anchor{scroll-margin-top:5rem}.my-list-empty{min-height:10rem;margin:0 var(--page-padding) 3.5rem;background:linear-gradient(115deg,#ffffff0f,#0000 55%),#191919;border:1px solid #ffffff1f;border-radius:.35rem;grid-template-columns:auto 1fr;align-items:center;gap:1.2rem;padding:1.5rem;display:none}.my-list-anchor:target .my-list-empty{display:grid}.my-list-empty>span{border:1.5px solid #777;border-radius:50%;place-items:center;width:3rem;height:3rem;display:grid}.my-list-empty h2{margin:0 0 .3rem;font-size:clamp(1rem,1.45vw,1.35rem)}.my-list-empty p{color:var(--text-muted);margin:0;font-size:.88rem}.title-row{margin-bottom:clamp(-4rem,-3.6vw,-2.5rem);scroll-margin-top:6rem;position:relative}.row-heading{z-index:6;height:2rem;padding:0 var(--page-padding);align-items:center;gap:.7rem;display:flex;position:relative}.row-heading h2{letter-spacing:-.025em;margin:0;font-size:clamp(1.05rem,1.55vw,1.55rem);font-weight:720}.explore-link{color:#54b9c5;opacity:0;white-space:nowrap;cursor:pointer;background:0 0;border:0;align-items:center;gap:.15rem;max-width:0;padding:0;font-size:.75rem;font-weight:700;transition:max-width .24s,opacity .2s;display:flex;overflow:hidden}.title-row:hover .explore-link{opacity:1;max-width:7rem}.explore-link:focus-visible{opacity:1;max-width:7rem}.explore-link svg{width:1rem}.rail-shell{z-index:5;position:relative}.title-rail{padding:2.3rem var(--page-padding) 8rem;overscroll-behavior-inline:contain;grid-auto-columns:calc((100vw - (2 * var(--page-padding)) - 2.5rem) / 6);scroll-padding-inline:var(--page-padding);scroll-snap-type:x proximity;scrollbar-width:none;grid-auto-flow:column;gap:.5rem;display:grid;overflow-x:auto}.title-rail:has(.card-episode-strip){padding-bottom:11rem}.title-rail::-webkit-scrollbar{display:none}.title-card{z-index:1;aspect-ratio:16/9;scroll-snap-align:start;transform-origin:50%;min-width:0;transition:transform .22s var(--ease-out), z-index 0s .22s;cursor:pointer;position:relative}.title-card:first-child{transform-origin:0}.title-card:last-child{transform-origin:100%}.card-visual{background:linear-gradient(125deg,#262626,#101010);border-radius:.25rem;width:100%;height:100%;position:relative;overflow:hidden;box-shadow:0 .15rem .35rem #00000047}.card-visual img{object-fit:cover;width:100%;height:100%;transition:transform 1.2s var(--ease-out);display:block}.card-image-shade{opacity:.3;background:linear-gradient(#0000 60%,#0000009e);transition:opacity .2s;position:absolute;inset:0}.card-title-fallback{opacity:0;text-overflow:ellipsis;text-shadow:0 .1rem .35rem #000;white-space:nowrap;font-size:clamp(.65rem,.82vw,.82rem);font-weight:750;transition:opacity .18s;position:absolute;bottom:.55rem;left:.6rem;right:.6rem;overflow:hidden}.card-visual img:not([src]),.card-visual img[src=""]{opacity:0}.card-visual:has(img[src=""]) .card-title-fallback{opacity:1}.card-n{color:var(--netflix-red);letter-spacing:-.08em;text-shadow:0 1px .3rem #000c;font-size:1.05rem;font-weight:950;line-height:.8;position:absolute;top:.35rem;left:.45rem}.card-n small{color:#fff;letter-spacing:.19em;margin:.16rem 0 0 -.05rem;font-size:.27rem;display:block}.new-season{background:var(--netflix-red);text-transform:uppercase;border-radius:.12rem;padding:.15rem .35rem;font-size:.54rem;font-weight:800;position:absolute;bottom:.4rem;right:.45rem}.new-episode-label{z-index:2;color:#fff;white-space:nowrap;background:#000000d1;border-radius:.22rem;align-items:baseline;gap:.35rem;width:max-content;max-width:calc(100% - .9rem);padding:.38rem .55rem;font-size:clamp(.68rem,.9vw,.9rem);line-height:1.2;display:flex;position:absolute;bottom:.4rem;left:.45rem;right:.45rem;overflow:hidden;box-shadow:0 .08rem .3rem #00000080}.new-episode-label strong{color:#fff;flex:none;font-weight:850}.new-episode-label small{color:#ddd;min-width:0;font-size:inherit;text-overflow:ellipsis;overflow:hidden}.progress-track{z-index:4;background:#808080b8;height:.22rem;position:absolute;bottom:.42rem;left:10%;right:10%}.progress-track span{background:var(--netflix-red);height:100%;display:block}.resume-checkpoint{z-index:4;color:#fff;letter-spacing:.02em;text-align:right;text-overflow:ellipsis;text-shadow:0 .08rem .3rem #000;white-space:nowrap;font-size:clamp(.48rem,.65vw,.66rem);font-weight:750;position:absolute;bottom:.78rem;left:10%;right:10%;overflow:hidden}.card-details{z-index:0;background:var(--surface);opacity:0;pointer-events:none;min-height:6.7rem;transition:opacity .15s ease, transform .18s var(--ease-out);border-radius:0 0 .25rem .25rem;padding:.65rem;position:absolute;top:calc(100% - .2rem);left:0;right:0;transform:translateY(-.5rem);box-shadow:0 .65rem 1.3rem #000000a6}.card-controls{align-items:center;gap:.35rem;display:flex}.card-controls button{cursor:pointer;background:#242424;border:1.5px solid #8f8f8f;border-radius:50%;place-items:center;width:1.8rem;height:1.8rem;padding:0;display:grid}.card-controls button:hover{border-color:#fff}.card-controls button:first-child{color:#000;background:#fff;border-color:#fff}.card-controls svg{stroke-width:2.4px;width:.9rem;height:.9rem}.card-controls .card-more-button{margin-left:auto}.card-meta{white-space:nowrap;align-items:center;gap:.45rem;margin-top:.55rem;font-size:clamp(.55rem,.68vw,.7rem);display:flex}.card-meta strong,.modal-meta strong{color:#46d369}.mini-maturity{border:1px solid #7b7b7b;padding:.08rem .25rem}.quality-badge{color:#ddd;border:1px solid #777;border-radius:.12rem;padding:.04rem .2rem;font-size:.58rem}.card-details p{text-overflow:ellipsis;white-space:nowrap;margin:.5rem 0 0;font-size:clamp(.52rem,.63vw,.65rem);overflow:hidden}.title-card:has(.card-episode-strip) .card-details{min-height:9.4rem}.card-episode-strip{overscroll-behavior-inline:contain;scrollbar-width:none;grid-auto-columns:calc(33.3333% - .186667rem);grid-auto-flow:column;gap:.28rem;height:2.45rem;margin-top:.55rem;display:grid;overflow-x:auto}.card-episode-strip::-webkit-scrollbar{display:none}.card-episode-strip button{cursor:pointer;background:#333;border:0;border-radius:.15rem;min-width:0;padding:0;position:relative;overflow:hidden}.card-episode-strip button:hover{outline:1px solid #fff}.card-episode-strip img{object-fit:cover;width:100%;height:100%;display:block}.card-episode-strip button>span{color:#fff;background:#000000d1;border-radius:999px;place-items:center;min-width:.85rem;height:.85rem;padding:0 .15rem;font-size:.5rem;font-weight:800;display:grid;position:absolute;bottom:.12rem;right:.18rem}.rail-control{z-index:25;width:var(--page-padding);opacity:0;cursor:pointer;background:#14141499;border:0;place-items:center;min-width:2.5rem;padding:0;transition:opacity .18s,background .18s;display:grid;position:absolute;top:2.3rem;bottom:8rem}.rail-control:hover{background:#141414d1}.rail-control svg{stroke-width:2.3px;width:clamp(1.5rem,2.5vw,2.6rem);height:clamp(1.5rem,2.5vw,2.6rem);transition:transform .18s}.rail-control:hover svg{transform:scale(1.24)}.rail-control--left{left:0}.rail-control--right{right:0}.rail-shell:hover .rail-control{opacity:1}.rail-control:focus-visible{opacity:1}.title-card--ranked{aspect-ratio:auto;grid-template-columns:42% 58%;display:grid}.title-card--ranked .rank-number{z-index:0;color:#080808;letter-spacing:-.09em;text-align:right;-webkit-text-stroke:clamp(1px, .12vw, 2px) #777;align-self:stretch;font-family:Impact,Haettenschweiler,Arial Narrow Bold,sans-serif;font-size:clamp(6rem,10vw,11rem);font-weight:950;line-height:.83;transform:translate(.08em)}.title-card--ranked .card-visual{z-index:1;aspect-ratio:2/3;align-self:center;height:auto}.title-card--ranked .card-details{left:38%}.title-row--ranked .title-rail{grid-auto-columns:calc((100vw - (2 * var(--page-padding)) - 2rem) / 5)}.title-row--originals .title-rail{grid-auto-columns:calc((100vw - (2 * var(--page-padding)) - 2.5rem) / 6.25)}.title-card--portrait{aspect-ratio:2/3}.title-card--portrait .card-visual{box-shadow:0 .25rem .8rem #00000080}@media (hover:hover) and (pointer:fine) and (min-width:701px){.rail-shell:has(.title-card:hover,.title-card:focus-within,.title-card:focus-visible){z-index:30}:is(.title-card:hover,.title-card:focus-within,.title-card:focus-visible){z-index:20;transition-delay:.28s,0s;transform:scale(1.2)}:is(.title-card:hover .card-details,.title-card:focus-within .card-details,.title-card:focus-visible .card-details){z-index:2;opacity:1;pointer-events:auto;transition-delay:.28s;transform:translateY(0)}:is(.title-card:hover .card-visual,.title-card:focus-within .card-visual,.title-card:focus-visible .card-visual){border-radius:.25rem .25rem 0 0}:is(.title-card:hover .card-visual img,.title-card:focus-within .card-visual img,.title-card:focus-visible .card-visual img){transform:scale(1.035)}.title-card:hover .card-image-shade,.title-card:focus-within .card-image-shade{opacity:.55}}.netflix-search-page{width:100%;min-height:100svh;padding:calc(var(--header-height) + var(--app-top-nav-height) + 2.25rem) clamp(1rem, 1.65vw, 1.75rem) 3rem;background:#121212;margin:0;animation:.22s search-in;overflow-x:hidden}.netflix-search-notice{color:#f2b8b5;background:#89181c47;border-radius:.35rem;margin:-1.2rem 0 .85rem;padding:.6rem .8rem;font-size:.82rem}.netflix-search-grid{grid-template-columns:repeat(auto-fill,minmax(min(17rem,100%),1fr));gap:1.25rem .5rem;display:grid}.netflix-search-card{cursor:pointer;text-align:left;min-width:0;transition:transform .18s var(--ease-out);background:0 0;border:0;gap:.55rem;padding:0;display:grid}.netflix-search-card:hover{z-index:2;transform:scale(1.025)}.netflix-search-card:disabled{cursor:wait;opacity:.72}.netflix-search-card:disabled:hover{transform:none}.netflix-search-artwork{aspect-ratio:16/9;background:#252525;border-radius:.65rem;display:block;position:relative;overflow:hidden}.netflix-search-artwork img{object-fit:cover;width:100%;height:100%;display:block}.netflix-search-title{color:#f5f5f5;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-width:0;min-height:2.4em;padding-inline:.1rem;font-size:.92rem;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.netflix-search-loader{z-index:2;color:#fff;background:#000000b8;border-radius:50%;width:2rem;height:2rem;margin:-1rem 0 0 -1rem;padding:.35rem;position:absolute;top:50%;left:50%}.empty-search{min-height:55vh;color:var(--text-muted);text-align:center;place-content:center;display:grid}.empty-search svg{color:#555;width:3.5rem;height:3.5rem;margin:0 auto 1rem}.empty-search h2{color:#fff;margin:0 0 .6rem}.empty-search p{margin:0}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(.25rem);backdrop-filter:blur(.25rem);background:#000000c2;place-items:start center;padding:2.5rem 1rem;animation:.18s modal-backdrop-in;display:grid;position:fixed;inset:0;overflow-y:auto}.details-modal{background:var(--surface);width:min(53rem,94vw);animation:modal-in .22s var(--ease-out);border-radius:.45rem;position:relative;overflow:hidden;box-shadow:0 1.5rem 5rem #000000bf}.modal-close{z-index:5;cursor:pointer;background:#181818;border:0;border-radius:50%;place-items:center;width:2.25rem;height:2.25rem;padding:0;display:grid;position:absolute;top:1rem;right:1rem}.modal-close svg{width:1.35rem}.modal-hero{--modal-image:none;background-image:linear-gradient(0deg, var(--surface) 0%, transparent 42%), linear-gradient(90deg, #0000009e, transparent 58%), var(--modal-image);background-position:50%;background-size:cover;height:min(31rem,56vw);min-height:20rem;position:relative}.modal-hero-content{position:absolute;bottom:2.25rem;left:3.2rem;right:3.2rem}.modal-hero-content h2{letter-spacing:-.06em;text-shadow:0 .15rem .8rem #000;max-width:11ch;margin:0 0 1.2rem;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.4rem,5vw,4.5rem);font-style:italic;line-height:.95}.modal-actions .button{min-height:2.75rem}.modal-actions .round-button{background:#2a2a2abf}.modal-body{grid-template-columns:minmax(0,1.65fr) minmax(12rem,.85fr);gap:2.5rem;padding:.6rem 3.2rem 2.5rem;display:grid}.modal-meta{flex-wrap:wrap;align-items:center;gap:.65rem;margin-bottom:.75rem;font-size:.92rem;display:flex}.modal-maturity{border:1px solid #777;margin-bottom:.7rem;padding:.15rem .45rem;font-size:.78rem;display:inline-block}.modal-synopsis{margin:0;font-size:1rem;line-height:1.55}.modal-facts{color:var(--text-muted);margin:0;font-size:.82rem;line-height:1.55}.modal-facts div{margin-bottom:.75rem}.modal-facts dt,.modal-facts dd{margin:0;display:inline}.modal-facts dt{color:#777}.modal-facts dd{color:#ddd}.episode-panel{border-top:1px solid #333;padding:1.5rem 3.2rem 3rem}.episode-panel-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.episode-panel h3{margin:0;font-size:1.5rem}.episode-panel-tools{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.85rem;display:flex}.episode-panel-tools>span{font-weight:700}.episode-sort-button{color:#fff;cursor:pointer;background:#2a2a2abf;border:1px solid #4a4a4a;border-radius:999px;align-items:center;gap:.4rem;padding:.4rem .75rem;font-size:.82rem;font-weight:600;transition:background .16s,border-color .16s;display:inline-flex}.episode-sort-button:hover{background:#3a3a3a;border-color:#6d6d6d}.episode-sort-button svg{width:1.05rem;height:1.05rem}.episode-card-list{overscroll-behavior:contain;scrollbar-color:#565656 transparent;scrollbar-width:thin;border-radius:.25rem;max-height:min(34rem,58vh);display:grid;overflow-y:auto}.episode-card-list::-webkit-scrollbar{width:.4rem}.episode-card-list::-webkit-scrollbar-track{background:0 0}.episode-card-list::-webkit-scrollbar-thumb{background:#565656;border-radius:999px}.episode-card{text-align:left;cursor:pointer;background:#2a2a2a;border:0;border-bottom:1px solid #404040;border-radius:0;grid-template-columns:2rem 9rem 1fr;align-items:center;gap:1rem;width:100%;padding:1rem;display:grid}.episode-card:first-child{border-radius:.25rem .25rem 0 0}.episode-card:last-child{border-radius:0 0 .25rem .25rem}.episode-card:hover{background:#363636}.episode-number{color:var(--text-muted);text-align:center;font-size:1.4rem}.episode-image{aspect-ratio:16/9;background-position:50%;background-size:cover;border-radius:.2rem;place-items:center;display:grid}.episode-image svg{opacity:0;background:#00000073;border:1px solid #fff;border-radius:50%;width:2rem;height:2rem;padding:.45rem;transition:opacity .16s}.episode-card:hover .episode-image svg{opacity:1}.episode-copy{grid-template-columns:1fr auto;gap:.35rem 1rem;display:grid}.episode-copy small{color:#ddd}.episode-copy em{color:var(--text-muted);grid-column:1/-1;font-size:.78rem;font-style:normal}.add-movie-backdrop{z-index:140}.manage-profiles-backdrop{z-index:150}.manage-profiles-modal{background:radial-gradient(circle at 90% 0,#e5091429,#0000 18rem),#181818;border:1px solid #3f3f3f;border-radius:.65rem;width:min(45rem,100vw - 2rem);padding:2.5rem;position:relative;box-shadow:0 1.5rem 5rem #000000b8}.manage-profiles-modal>header{align-items:center;gap:.9rem;margin-bottom:1.5rem;display:flex}.manage-profiles-icon{background:var(--netflix-red);border-radius:.45rem;flex:none;place-items:center;width:2.8rem;height:2.8rem;display:grid}.manage-profiles-icon svg{width:1.35rem}.manage-profiles-modal h2{margin:0 0 .25rem;font-size:1.75rem}.manage-profiles-modal header p{color:#aaa;margin:0;font-size:.82rem}.profile-manager-list{border:1px solid #3b3b3b;border-radius:.4rem;display:grid;overflow:hidden}.profile-manager-row{background:#232323;border-bottom:1px solid #383838;grid-template-columns:auto 1fr auto auto;align-items:center;gap:.75rem;min-height:4.8rem;padding:.8rem;display:grid}.profile-manager-row:last-child{border-bottom:0}.manager-avatar{border-radius:.35rem;flex:none;place-items:center;width:3rem;height:3rem;font-size:1.2rem;font-weight:850;display:grid;box-shadow:inset 0 -.35rem #00000021}.profile-manager-name{flex-direction:column;gap:.18rem;min-width:0;display:flex}.profile-manager-name b{text-overflow:ellipsis;overflow:hidden}.profile-manager-name small{color:#999;font-size:.7rem}.manager-icon-button{cursor:pointer;background:0 0;border:1px solid #565656;border-radius:50%;place-items:center;width:2.35rem;height:2.35rem;padding:0;display:grid}.manager-icon-button:hover{background:#343434;border-color:#fff}.manager-icon-button svg{width:1rem}.manager-icon-button--danger{color:#ff8d92}.manager-icon-button:disabled{opacity:.3;cursor:not-allowed}.profile-editor{background:#292929;border-bottom:1px solid #383838;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:1rem;padding:1rem;display:grid}.profile-editor-fields{gap:.4rem;min-width:0;display:grid}.profile-editor-fields>label,.add-profile-form label{font-size:.72rem;font-weight:750}.profile-editor input[type=text],.profile-editor-fields>input,.add-profile-form>div>input{color:#fff;background:#181818;border:1px solid #686868;border-radius:.25rem;outline:0;width:100%;height:2.6rem;padding:0 .75rem}.profile-editor input:focus,.add-profile-form input:focus{border-color:#fff}.profile-editor-actions{align-self:center;gap:.45rem;display:flex}.manager-button{color:#fff;cursor:pointer;background:#303030;border:1px solid #5a5a5a;border-radius:.25rem;justify-content:center;align-items:center;gap:.4rem;min-height:2.45rem;padding:.45rem .8rem;font-size:.75rem;font-weight:750;display:inline-flex}.manager-button svg{width:1rem}.manager-button--primary{border-color:var(--netflix-red);background:var(--netflix-red)}.manager-button--quiet{background:0 0}.manager-button--danger{background:#8f2026;border-color:#8f2026}.manager-button:disabled{opacity:.55;cursor:wait}.profile-color-picker{border:0;min-width:0;margin:.25rem 0 0;padding:0}.profile-color-picker legend{color:#aaa;margin-bottom:.35rem;font-size:.67rem}.profile-color-picker>div{flex-wrap:wrap;gap:.42rem;display:flex}.profile-color-picker label{cursor:pointer;display:block}.profile-color-picker input{opacity:0;width:1px;height:1px;position:absolute}.profile-color-picker span{border:2px solid #0000;border-radius:50%;width:1.45rem;height:1.45rem;display:block;box-shadow:0 0 0 1px #5c5c5c}.profile-color-picker input:checked+span{border-color:#fff;box-shadow:0 0 0 2px #fff}.profile-delete-confirm{background:#75272b2b;border:1px solid #75272b;border-radius:.35rem;grid-template-columns:1fr auto auto;align-items:center;gap:.55rem;margin-top:.8rem;padding:.8rem;display:grid}.profile-delete-confirm>span{flex-direction:column;gap:.2rem;display:flex}.profile-delete-confirm small{color:#aaa;font-size:.7rem}.add-profile-form{grid-template-columns:minmax(10rem,1fr) 1fr auto;align-items:end;gap:1rem;margin-top:1.25rem;display:grid}.add-profile-form>div:first-child{gap:.4rem;display:grid}.add-movie-modal{background:radial-gradient(circle at 85% 0,#e509142e,#0000 14rem),#181818;border:1px solid #3f3f3f;border-radius:.65rem;width:min(34rem,100vw - 2rem);padding:2.6rem;position:relative;box-shadow:0 1.5rem 5rem #000000b8}.add-movie-modal h2{margin:1rem 0 .35rem;font-size:1.7rem}.add-movie-modal>p{color:#b7b7b7;margin:0 0 1.6rem;font-size:.88rem;line-height:1.6}.add-movie-modal form,.add-movie-modal label{flex-direction:column;display:flex}.add-movie-modal label{margin-bottom:.45rem;font-size:.78rem;font-weight:700}.add-movie-modal input{color:#fff;background:#282828;border:1px solid #696969;border-radius:.25rem;outline:0;width:100%;height:3rem;padding:0 .85rem}.add-movie-modal input:focus{border-color:#fff}.add-movie-modal form>small{color:#858585;margin-top:.45rem;font-size:.7rem}.add-movie-modal .offline-option{cursor:pointer;background:#ffffff09;border:1px solid #454545;border-radius:.3rem;grid-template-columns:auto 1fr;align-items:center;gap:.75rem;margin:1.1rem 0 0;padding:.8rem;display:grid}.add-movie-modal .offline-option input{width:1.05rem;height:1.05rem;accent-color:var(--netflix-red);margin:0}.offline-option span{flex-direction:column;gap:.18rem;min-width:0;display:flex}.offline-option b{font-size:.78rem}.offline-option small{color:#999;font-size:.68rem;font-weight:400}.form-error{color:#ff777d;margin:.8rem 0 0;font-size:.78rem}.add-movie-actions{justify-content:flex-end;gap:.65rem;margin-top:1.5rem;display:flex}.add-movie-actions .button{min-width:8.5rem}.add-movie-actions .button:disabled,.modal-actions .button:disabled{opacity:.58;cursor:wait}.download-state{background:#222;border:1px solid #3e3e3e;border-radius:.3rem;gap:.65rem;margin-bottom:1rem;padding:.75rem}.download-state>svg{color:#f2c94c;width:1.25rem}.download-state--ready>svg{color:#46d369}.download-state--failed>svg{color:#ff5f66}.download-state span{flex-direction:column;min-width:0;display:flex}.download-state b{font-size:.8rem}.download-state small{color:#aaa;font-size:.7rem}.player{--player-image:none;z-index:120;overscroll-behavior:none;color:#fff;isolation:isolate;background:#000;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;position:fixed;inset:0;overflow:hidden}.player--idle,.player--idle *{cursor:none!important}.player-topbar,.player-bottom,.player-noise,.big-play{transition:opacity .4s}.player--idle .player-topbar,.player--idle .player-bottom,.player--idle .player-noise,.player--idle .big-play{opacity:0;pointer-events:none}.player--local:before{display:none}.player-video,.player-embed{z-index:1;background:#000;border:0;width:100%;height:100%;position:absolute;inset:0}.player-video{object-fit:contain;cursor:pointer}.player-embed{width:min(100%,177.778vh);height:min(100%,56.25vw + 1px);inset:50% auto auto 50%;transform:translate(-50%,-50%)}.player-stream-status{z-index:8;color:#fff;text-align:center;background:#141414e6;border-radius:.3rem;align-items:center;gap:.7rem;max-width:min(30rem,100vw - 3rem);padding:.85rem 1.1rem;font-size:.9rem;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 .75rem 2rem #0000007a}.player-stream-status svg{flex:none;width:1.2rem}.player-stream-status--error{color:#ffd3d5;border:1px solid #ff5f669e}.player-cinematic-bars{display:none}.player--local .player-noise{pointer-events:none}.player:before{z-index:0;background-image:linear-gradient(90deg, #0003, transparent 35%), var(--player-image);content:"";filter:saturate(.92)contrast(1.03);background-position:50%;background-size:cover;transition:filter .22s;animation:18s ease-in-out infinite alternate player-pan;position:absolute;inset:-2%}.player--paused:before{filter:saturate(.6)brightness(.72);animation-play-state:paused}.player-noise{z-index:2;pointer-events:none;background:linear-gradient(#000000d1 0,#00000047 18%,#0000 42% 100%);position:absolute;inset:0}.player-topbar{z-index:8;top:max(.45rem, env(safe-area-inset-top));pointer-events:none;justify-content:space-between;align-items:center;height:3.5rem;display:flex;position:absolute;left:1.45rem;right:1.45rem}.player-topbar-start{flex:auto;align-items:center;min-width:0;display:flex}.player-topbar-start>.player-back{flex:none}.player-embed-program{color:#fff;text-shadow:0 .08rem .2rem #000000e6;flex-direction:column;flex:auto;min-width:0;margin-left:.35rem;line-height:1.15;display:flex}.player-embed-program strong,.player-embed-program span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.player-embed-program strong{font-size:clamp(.9rem,1.15vw,1.25rem);font-weight:650}.player-embed-program span{color:#d2d2d2;margin-top:.2rem;font-size:clamp(.7rem,.85vw,.9rem);font-weight:500}.player-icon-button{color:#fff;cursor:pointer;filter:drop-shadow(0 .08rem .16rem #000c);pointer-events:auto;background:0 0;border:0;place-items:center;width:3.5rem;height:3.5rem;padding:0;display:grid}.player-icon-button svg{stroke-width:2.2px;width:2.8rem;height:2.8rem}.player-icon-button:disabled{opacity:.38;cursor:not-allowed}.player-report svg{width:2.8rem;height:2.8rem}.player-topbar-actions{flex:none;align-items:center;gap:.35rem;display:flex}.player-server-control{pointer-events:auto;position:relative}.player-server-trigger.is-active,.player-topbar-episodes.is-active{background:#ffffff29;border-radius:.25rem}.player-server-trigger svg,.player-topbar-episodes svg,.player-topbar-next svg{width:2.45rem;height:2.45rem}.player-server-menu{z-index:14;color:#fff;transform-origin:calc(100% - 1.75rem) 0;background:#202020fa;border:1px solid #ffffff1f;border-radius:.3rem;width:min(18rem,100vw - 1rem);animation:.14s ease-out subtitle-menu-in;position:absolute;top:calc(100% + .35rem);left:auto;right:0;overflow:hidden;box-shadow:0 .9rem 2.6rem #000000a8}.player-server-menu h2{margin:0;padding:1rem 1.1rem .6rem;font-size:1.1rem;font-weight:650}.player-server-options{flex-direction:column;padding:0 0 .55rem;display:flex}.player-server-options button{color:#c7c7c7;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:1.45rem minmax(0,1fr) 1.25rem;align-items:center;gap:.65rem;min-height:3rem;padding:.6rem 1rem;display:grid}:is(.player-server-options button:hover,.player-server-options button:focus-visible){color:#fff;background:#3a3a3a;outline:none}.player-server-options button[aria-selected=true]{color:#fff;font-weight:700}.player-server-options button svg{width:1.25rem;height:1.25rem}.player-server-options button svg:last-child{color:#46d369}.player-popover-wrap{pointer-events:auto;position:relative}.access-popover.player-access-popover{--access-mobile-top:calc(3.35rem + env(safe-area-inset-top));--access-top:calc(100% + .35rem);--access-right:-.35rem;max-height:calc(100vh - 6rem);overflow-y:auto}.access-popover.player-access-popover .access-caret{display:none}.player-subtitles{z-index:5;width:max-content;max-width:min(100% - 4rem,70rem);color:var(--player-subtitle-color,#fff);font-family:var(--player-subtitle-font-family,inherit);font-size:clamp(1.125rem, var(--player-subtitle-font-size,2rem), 4rem);text-align:center;text-shadow:-2px -2px 1px #000,2px -2px 1px #000,-2px 2px 1px #000,2px 2px 1px #000,0 0 .35rem #000;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;outline:none;flex-direction:column;align-items:center;padding:.45rem 1rem;font-weight:750;line-height:1.3;display:flex;position:absolute;transform:translate(-50%,-50%)}.player-subtitles:focus-visible{outline-offset:.2rem;border-radius:.25rem;outline:.15rem solid #ffffffe6}.player-subtitles--dragging{cursor:grabbing}.player-subtitles span{background:var(--player-subtitle-bg,transparent);border-radius:.15rem;max-width:48ch;padding:.05em .25em;display:block}.player-episodes{z-index:7;background:#262626;border-radius:.2rem 0 0 .2rem;width:min(39.6vw,47.5rem);min-width:34rem;position:absolute;top:clamp(6.4rem,12.3vh,7.4rem);bottom:5.75rem;right:0;overflow:hidden}.player-episodes--embed{bottom:max(1rem, env(safe-area-inset-bottom))}.player-episodes-header{justify-content:space-between;align-items:center;gap:1rem;height:4.4rem;padding:0 1.4rem;display:flex}.player-episodes h2{color:#fff;letter-spacing:-.02em;align-items:center;margin:0;font-size:clamp(1.5rem,1.65vw,2rem);font-weight:600;display:flex}.player-episode-list{scrollbar-color:#414141 transparent;scrollbar-width:thin;height:calc(100% - 4.4rem);overflow-y:auto}.player-episode-list::-webkit-scrollbar{width:.4rem}.player-episode-list::-webkit-scrollbar-track{background:0 0}.player-episode-list::-webkit-scrollbar-thumb{background:#414141;border-radius:999px}.player-episode{color:#fff;text-align:left;cursor:pointer;background:0 0;border:.18rem solid #0000;width:calc(100% - .65rem);min-height:5.3rem;padding:0;display:block}.player-episode:hover{background:#303030}.player-episode--active{background:#131313;border-color:#fff;min-height:15rem}.player-episode--active:hover{background:#131313}.player-episode-heading{grid-template-columns:1.7rem minmax(0,1fr) minmax(5rem,8.25rem);align-items:center;column-gap:.35rem;height:5rem;padding:0 1.6rem 0 2.6rem;font-size:clamp(1rem,1.08vw,1.3rem);display:grid}.player-episode--active .player-episode-heading{height:4.15rem}.player-episode-heading>span{font-weight:500}.player-episode-heading strong{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.player-episode-heading>i{background:gray;width:100%;height:.12rem;display:block}.player-episode-details{grid-template-columns:minmax(12.5rem,15.6rem) minmax(0,1fr);align-items:start;gap:1.9rem;padding:0 1.55rem 1.45rem 1.7rem;display:grid}.player-episode-thumbnail{aspect-ratio:16/9;background-position:50%;background-size:cover;place-items:center;display:grid;position:relative;overflow:hidden}.player-now-playing{color:#fff;white-space:nowrap;text-shadow:0 .1rem .25rem #000;align-items:center;gap:.45rem;font-size:clamp(.82rem,1.03vw,1.25rem);font-weight:500;display:flex}.player-playing-bars{align-items:center;gap:.12rem;height:1.15rem;display:flex}.player-playing-bars i{background:#fff;border-radius:999px;width:.13rem;animation:.65s ease-in-out infinite alternate player-bars}.player-playing-bars i:first-child,.player-playing-bars i:nth-child(3){height:.7rem}.player-playing-bars i:nth-child(2){height:1rem;animation-delay:-220ms}.player-playing-bars i:nth-child(4){height:.5rem;animation-delay:-380ms}.player-episode-synopsis{color:#fff;-webkit-line-clamp:5;-webkit-box-orient:vertical;font-size:clamp(.95rem,1.08vw,1.3rem);font-style:normal;font-weight:400;line-height:1.27;display:-webkit-box;overflow:hidden}.big-play{z-index:8;cursor:pointer;background:#00000061;border:.15rem solid #fff;border-radius:50%;place-items:center;width:5rem;height:5rem;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.big-play svg{width:2.2rem;height:2.2rem}.player-notice{z-index:10;background:#262626f5;border-radius:.2rem;padding:.7rem 1rem;font-size:.9rem;position:absolute;top:5rem;left:50%;transform:translate(-50%);box-shadow:0 .5rem 1.5rem #00000059}.player-bottom{z-index:9;right:1.7rem;bottom:max(2.5rem, env(safe-area-inset-bottom));position:absolute;left:1.25rem}.player-timeline-row{align-items:center;gap:1.15rem;height:1.1rem;margin-bottom:1.95rem;display:flex}.player-timeline-row>time{color:#fff;font-variant-numeric:tabular-nums;text-align:right;flex:none;min-width:2.7rem;font-size:1rem;line-height:1}.player-timeline-wrap{--seek-preview-position:0%;--seek-preview-width:clamp(10rem, 17vw, 14rem);width:100%;min-width:0;position:relative}.player-seek-preview{z-index:2;bottom:calc(100% + .6rem);left:clamp(calc(var(--seek-preview-width) / 2), var(--seek-preview-position), calc(100% - (var(--seek-preview-width) / 2)));width:var(--seek-preview-width);opacity:0;pointer-events:none;flex-direction:column;align-items:center;gap:.45rem;transition:opacity .12s,transform .12s;display:flex;position:absolute;transform:translate(-50%)translateY(.35rem)}.player-timeline-wrap--previewing .player-seek-preview{opacity:1;transform:translate(-50%)}.player-seek-preview img,.player-seek-preview-frame{aspect-ratio:16/9;object-fit:cover;background:#181818;border-radius:.18rem;width:100%;display:block;box-shadow:0 .5rem 1.4rem #000000b8}.player-seek-preview time{color:#fff;font-variant-numeric:tabular-nums;text-align:center;background:#1c1c1cf5;border-radius:999px;min-width:auto;padding:.35rem .65rem;font-size:.9rem;font-weight:600;line-height:1;box-shadow:0 .2rem .6rem #0000008c}.player-timeline{--player-progress:57%;--player-buffered:61%;-webkit-appearance:none;appearance:none;cursor:pointer;background:0 0;width:100%;min-width:0;height:1rem;margin:0;padding:0}.player-timeline::-webkit-slider-runnable-track{background:linear-gradient(to right, red 0 var(--player-progress), #d3d3d3 var(--player-progress) var(--player-buffered), gray var(--player-buffered) 100%);height:.25rem}.player-timeline::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:red;border:0;border-radius:50%;width:1rem;height:1rem;margin-top:-.375rem;box-shadow:0 0 0 .05rem red}.player-timeline::-moz-range-track{background:linear-gradient(to right, red 0 var(--player-progress), #d3d3d3 var(--player-progress) var(--player-buffered), gray var(--player-buffered) 100%);border:0;height:.25rem}.player-timeline::-moz-range-thumb{background:red;border:0;border-radius:50%;width:1rem;height:1rem}.player-controls{align-items:center;min-width:0;display:flex}.player-controls-left,.player-controls-right{flex:none;align-items:center;gap:2.125rem;display:flex}.player-subtitle-control{flex:none;place-items:center;width:3rem;height:3rem;display:grid;position:relative}.player-control-button{color:#fff;cursor:pointer;filter:drop-shadow(0 .08rem .14rem #000000d9);background:0 0;border:0;place-items:center;width:3rem;height:3rem;padding:0;transition:opacity .12s,transform .14s;display:grid;position:relative}.player-control-button:hover{transform:scale(1.08)}.player-control-button:disabled{opacity:.38;cursor:not-allowed;transform:none}.player-control-button:active{transform:scale(.96)}.player-control-button.is-active{color:#fff}.player-control-button>svg{stroke-width:2px;width:2.45rem;height:2.45rem}.player-subtitle-menu{z-index:14;color:#fff;text-align:left;transform-origin:calc(100% - 7.5rem) 100%;background:#242424;border:1px solid #ffffff17;border-radius:.22rem;flex-direction:column;width:min(23rem,100vw - 2rem);max-height:min(70vh,38rem);animation:.14s ease-out subtitle-menu-in;display:flex;position:absolute;bottom:calc(100% + 1.1rem);right:-6.2rem;overflow:hidden;box-shadow:0 .9rem 2.6rem #000000a8}.player-subtitle-menu h2{letter-spacing:-.02em;margin:0;padding:1.25rem 1.3rem .75rem;font-size:1.45rem;font-weight:650}.player-subtitle-options{scrollbar-color:#565656 transparent;scrollbar-width:thin;min-height:0;padding:.25rem 0 .65rem;overflow-y:auto}.player-subtitle-options::-webkit-scrollbar{width:.38rem}.player-subtitle-options::-webkit-scrollbar-thumb{background:#565656;border-radius:999px}.player-subtitle-options button{color:#bdbdbd;width:100%;min-height:3.1rem;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:1.65rem minmax(0,1fr);align-items:center;gap:.35rem;padding:.65rem 1.3rem .65rem 1.05rem;font-size:1.1rem;display:grid}:is(.player-subtitle-options button:hover,.player-subtitle-options button:focus-visible){color:#fff;background:#303030;outline:none}.player-subtitle-options button[aria-selected=true]{color:#fff}.player-subtitle-check{place-items:center;width:1.35rem;height:1.35rem;display:grid}.player-subtitle-check svg{stroke-width:2px;width:1.3rem;height:1.3rem}.player-subtitle-settings{z-index:1;background:#242424;border-top:1px solid #515151;flex:none;padding:1rem 1.3rem 1.15rem;position:relative}.player-subtitle-setting-heading{justify-content:space-between;align-items:center;gap:1rem;font-size:.95rem;font-weight:600;display:flex}.player-subtitle-setting-heading output{color:#bdbdbd;font-variant-numeric:tabular-nums;font-size:.82rem;font-weight:500}.player-subtitle-size-control{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.8rem;margin-top:.75rem;display:grid}.player-subtitle-size-control>span:first-child{font-size:.8rem}.player-subtitle-size-control>span:last-child{font-size:1.25rem;font-weight:600}.player-subtitle-size-control input{accent-color:#fff;cursor:pointer;width:100%}.player-subtitle-position-setting{justify-content:space-between;align-items:center;gap:.8rem;margin-top:.8rem;display:flex}.player-subtitle-position-setting p{color:#aaa;margin:0;font-size:.75rem;line-height:1.3}.player-subtitle-position-setting button{color:#eee;min-height:2rem;font:inherit;cursor:pointer;background:0 0;border:1px solid #777;border-radius:.15rem;flex:none;padding:.35rem .65rem;font-size:.72rem}:is(.player-subtitle-position-setting button:hover,.player-subtitle-position-setting button:focus-visible){color:#111;background:#fff;border-color:#fff;outline:none}.player-subtitle-color-setting{justify-content:space-between;align-items:center;gap:.7rem;margin-top:.65rem;display:flex}.player-subtitle-color-setting label{color:#ccc;margin:0;font-size:.75rem}.player-subtitle-color-setting input[type=color]{cursor:pointer;background:0 0;border:1px solid #666;border-radius:.15rem;width:2rem;height:1.5rem;padding:0}.player-subtitle-color-setting select{color:#eee;min-height:1.6rem;font:inherit;cursor:pointer;background:#2a2a2a;border:1px solid #666;border-radius:.15rem;padding:.2rem .4rem;font-size:.72rem}:is(.player-subtitle-color-setting select:hover,.player-subtitle-color-setting select:focus-visible){border-color:#fff;outline:none}.player-controls-left>button:first-child svg{fill:currentColor;stroke-width:1.4px}.player-program{color:#fff;white-space:nowrap;flex:1;justify-content:center;align-items:baseline;gap:1rem;min-width:0;padding:0 1.5rem;font-size:clamp(.9rem,1.05vw,1.25rem);display:flex}.player-program strong{text-overflow:ellipsis;font-weight:500;overflow:hidden}.player-program span{flex:none;font-weight:400}.player-ten-second span{font-size:.73rem;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%)}.player-ten-second svg{stroke-width:1.75px;width:2.55rem;height:2.55rem}.player-episodes-trigger svg{transform:scale(1.24)}.player-speed span{color:#000;background:#fff;border-radius:.18rem;padding:.1rem .22rem;font-size:.58rem;font-weight:800;position:absolute;bottom:-.12rem;right:-.35rem}@keyframes subtitle-menu-in{0%{opacity:0;transform:translateY(.35rem)scale(.98)}}@keyframes player-bars{to{height:.25rem}}.player-timeline-marker{z-index:3;pointer-events:none;border-radius:.08rem;width:.38rem;height:.85rem;position:absolute;top:50%;transform:translate(-50%,-50%)}.player-timeline-marker--intro{background:#ffd600;box-shadow:0 0 .35rem #ffd60073}.player-timeline-marker--outro{background:#00e5ff;box-shadow:0 0 .35rem #00e5ff73}.player-marker-control{z-index:4;flex-direction:column;align-items:center;display:flex;position:absolute;bottom:calc(100% + .35rem);transform:translate(-50%)}.player-marker-trigger{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;cursor:pointer;background:#ffffff26;border:0;border-radius:50%;place-items:center;width:2rem;height:2rem;padding:0;transition:background .14s,transform .14s;animation:.2s ease-out marker-trigger-in;display:grid}.player-marker-trigger:hover{background:#ffffff4d;transform:scale(1.15)}.player-marker-trigger svg{stroke-width:2.2px;width:1.15rem;height:1.15rem}@keyframes marker-trigger-in{0%{opacity:0;transform:scale(.6)}}.player-marker-menu{z-index:14;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transform-origin:50% 100%;background:#181818f5;border:1px solid #ffffff1f;border-radius:.5rem;flex-direction:column;width:max-content;min-width:13rem;animation:.16s ease-out marker-menu-in;display:flex;position:absolute;bottom:calc(100% + .65rem);left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 .8rem 2.4rem #000000b3,0 0 0 1px #ffffff0d}@keyframes marker-menu-in{0%{opacity:0;transform:translate(-50%)translateY(.4rem)scale(.96)}}.player-marker-menu button{color:#e0e0e0;width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:1.4rem minmax(0,1fr) auto;align-items:center;gap:.6rem;padding:.75rem 1.1rem;font-size:.95rem;font-weight:500;transition:background 80ms,color 80ms;display:grid}.player-marker-menu button:first-child{border-radius:.5rem .5rem 0 0}.player-marker-menu button:last-child{border-radius:0 0 .5rem .5rem}.player-marker-menu button+button{border-top:1px solid #ffffff14}.player-marker-menu button:hover{color:#fff;background:#ffffff1a}.player-marker-menu button svg{stroke-width:2px;color:#bbb;width:1.25rem;height:1.25rem}.player-marker-menu button:hover svg{color:#fff}.player-marker-menu button small{color:gray;font-variant-numeric:tabular-nums;font-size:.72rem;font-weight:400}.player-marker-menu-remove{color:#f07070!important}.player-marker-menu-remove:hover{color:#ff6b6b!important;background:#f050501f!important}.player-marker-menu-remove svg{color:#f07070!important}.player-marker-menu-remove:hover svg{color:#ff6b6b!important}.player-skip-intro{z-index:10;color:#fff;font:inherit;letter-spacing:.04em;cursor:pointer;background:#000000a6;border:1.5px solid #ffffffb3;border-radius:.18rem;padding:.65rem 1.6rem;font-size:clamp(1rem,1.2vw,1.3rem);font-weight:600;transition:background .12s,border-color .12s;animation:.3s ease-out skip-intro-in;position:absolute;bottom:18%;right:6%}.player-skip-intro:hover{background:#fff3;border-color:#fff}@keyframes skip-intro-in{0%{opacity:0;transform:translate(1rem)}}.player-next-episode-prompt{z-index:10;color:#141414;font:inherit;letter-spacing:.02em;cursor:pointer;background:#fff;border:0;border-radius:.22rem;align-items:center;gap:.45rem;padding:.55rem 1.5rem .55rem 1rem;font-size:clamp(.95rem,1.15vw,1.25rem);font-weight:700;transition:background .1s;animation:.35s ease-out next-episode-in;display:flex;position:absolute;bottom:18%;right:6%}.player-next-episode-prompt:hover{background:#ffffffd9}.player-next-episode-prompt svg{stroke-width:1.5px;width:1.35rem;height:1.35rem}@keyframes next-episode-in{0%{opacity:0;transform:translate(1rem)}}.site-footer{max-width:68rem;padding:0 var(--page-padding) 3rem;color:gray;margin:3rem auto 0;font-size:.78rem}.social-links{align-items:center;gap:1.4rem;margin-bottom:1.5rem;display:flex}.social-links a{color:#fff;place-items:center;width:1.6rem;height:1.6rem;font-size:1.4rem;font-weight:700;display:grid}.footer-links{grid-template-columns:repeat(4,1fr);gap:1rem 2rem;display:grid}.footer-links a:hover{text-decoration:underline}.service-code{color:gray;background:0 0;border:1px solid gray;margin:1.8rem 0 .5rem;padding:.45rem;font-size:.75rem;display:inline-block}@keyframes hero-breathe{0%{transform:scale(1.015)}to{transform:scale(1.055)}}@keyframes player-pan{0%{transform:scale(1.02)translate(-.5%)}to{transform:scale(1.08)translate(1.5%)}}@keyframes source-spin{to{transform:rotate(360deg)}}@keyframes scroll-cue{0%,to{opacity:.35;transform:translateY(0)}50%{opacity:.75;transform:translateY(.45rem)}}@keyframes popover-in{0%{opacity:0;transform:translateY(-.35rem)}}@keyframes search-in{0%{opacity:0}}@keyframes modal-backdrop-in{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:scale(.96)translateY(1rem)}}@media (max-height:900px){.catalog{margin-top:0}}@media (max-width:1199px){.title-rail{grid-auto-columns:calc((100vw - (2 * var(--page-padding)) - 2rem) / 5)}.title-row--ranked .title-rail{grid-auto-columns:calc((100vw - (2 * var(--page-padding)) - 1.5rem) / 4)}.title-row--originals .title-rail{grid-auto-columns:calc((100vw - (2 * var(--page-padding)) - 2rem) / 5.2)}}@media (max-width:960px){:root{--page-padding:clamp(1.1rem, 3vw, 2rem)}.primary-nav{top:calc(100% - .2rem);left:var(--page-padding);background:#000000f0;border-top:2px solid #fff;flex-direction:column;align-items:stretch;gap:0;width:14rem;padding:.85rem 0;display:none;position:absolute;box-shadow:0 1.2rem 2.5rem #0000006b}.primary-nav:before{content:"";background:#fff;width:.8rem;height:.8rem;position:absolute;top:-.48rem;left:1rem;transform:rotate(45deg)}.primary-nav--open{display:flex}.primary-nav a{z-index:1;text-align:center;background:#000000f5;padding:.75rem 1.15rem;position:relative}.primary-nav a:hover{background:#1e1e1e}.mobile-menu-button{display:grid}.nav-start{gap:.8rem}.hero-content{width:min(32rem,55vw)}.title-rail{grid-auto-columns:calc((100vw - (2 * var(--page-padding)) - 1.5rem) / 4)}.title-row--ranked .title-rail{grid-auto-columns:calc((100vw - (2 * var(--page-padding)) - 1rem) / 3.2)}.title-row--originals .title-rail{grid-auto-columns:calc((100vw - (2 * var(--page-padding)) - 1.5rem) / 4.2)}.netflix-search-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.player-episodes{width:min(55vw,47.5rem);min-width:30rem}.player-controls-left,.player-controls-right{gap:.75rem}.player-control-button,.player-subtitle-control{width:2.6rem;height:2.6rem}.player-control-button>svg{width:2.1rem;height:2.1rem}.player-program{padding-inline:.65rem;font-size:.86rem}}@media (max-width:700px){:root{--header-height:3.5rem;--page-padding:1rem}.top-nav{gap:.5rem}.nav-start{gap:.4rem}.nav-end{gap:.2rem}.nav-end>.nav-popover-wrap>.icon-button,.search-box,.search-box .search-trigger{width:2.25rem}.search-box .search-trigger{flex-basis:2.25rem}.netflix-wordmark{font-size:1.35rem}.kids-link,.notification-button,.profile-trigger>svg{display:none}.profile-avatar{width:1.85rem;height:1.85rem}.profile-popover{right:-.25rem}.access-popover.netflix-access-popover{--access-mobile-top:calc(var(--app-top-nav-height) + var(--header-height) + env(safe-area-inset-top) + .35rem)}.sources-popover,.downloads-popover{top:calc(var(--app-top-nav-height) + var(--header-height) + env(safe-area-inset-top) + .35rem);width:auto;position:fixed;left:1rem;right:1rem}.sources-popover .popover-caret,.downloads-popover .popover-caret{display:none}.search-box--open{z-index:10;top:calc(var(--header-height) + env(safe-area-inset-top));background:#141414;border:1px solid #333;border-left:0;border-right:0;width:100%;height:3.2rem;position:fixed;left:0;right:0}.search-box--open .search-trigger{margin-left:.5rem}.search-box--open input{font-size:1rem}.top-nav--search .search-box--open{top:calc(var(--header-height) + env(safe-area-inset-top) + .4rem);right:var(--page-padding);left:var(--page-padding);background:#181818;border:1px solid #5c5c5c;border-radius:999px;width:auto;height:2.75rem}.hero{height:max(36rem,72svh);min-height:36rem}.hero-backdrop{background-position:66%}.hero-vignette{background:linear-gradient(90deg, #000000c7, #00000040 75%), linear-gradient(0deg, var(--background) 0%, #141414d1 16%, transparent 58%), linear-gradient(180deg, #00000094, transparent 25%)}.hero-content{top:auto;right:var(--page-padding);width:auto;bottom:6rem}.netflix-series{margin-bottom:.4rem;font-size:.62rem}.netflix-series span{font-size:1.35rem}.hero-content h1{max-width:8ch;font-size:clamp(2.8rem,13vw,4.5rem)}.hero-title-logo{width:min(22rem,82%);max-height:7rem}.hero-rank{margin:.7rem 0 .65rem;font-size:.95rem}.hero-rank span{width:1.9rem;height:1.9rem;font-size:.56rem}.hero-description{-webkit-line-clamp:2;max-width:29rem;margin-bottom:1.1rem;font-size:.88rem;line-height:1.35}.button{min-width:6.6rem;min-height:2.75rem;padding:.5rem 1rem;font-size:.86rem}.button svg{width:1.25rem}.hero-side-controls{bottom:3.25rem;right:0}.hero-side-controls .round-button{display:none}.maturity-badge{min-width:4.7rem;padding:.35rem 1.6rem .35rem .65rem;font-size:.74rem}.hero-scroll-cue{display:none}.catalog{margin-top:0}.title-row{margin-bottom:1.5rem}.row-heading{height:1.6rem}.row-heading h2{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:1.05rem;overflow:hidden}.explore-link,.rail-control{display:none}.title-rail{grid-auto-columns:calc((100vw - (2 * var(--page-padding)) - .6rem) / 2.25);scroll-snap-type:x mandatory;gap:.4rem;padding-top:1.6rem;padding-bottom:0}.title-rail:has(.card-episode-strip){padding-bottom:0}.title-row--ranked .title-rail{grid-auto-columns:calc((100vw - (2 * var(--page-padding)) - .4rem) / 1.85)}.title-row--originals .title-rail{grid-auto-columns:calc((100vw - (2 * var(--page-padding)) - .8rem) / 3.15)}.title-card{transition:none}.title-card--ranked .rank-number{font-size:8rem}.card-title-fallback{font-size:.68rem}.new-season{display:none}.netflix-search-page{padding-top:calc((2 * var(--header-height)) + var(--app-top-nav-height) + 1.2rem)}.netflix-search-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem .4rem}.modal-backdrop{place-items:stretch stretch;padding:0}.details-modal{border-radius:0;width:100%;min-height:100svh}.manage-profiles-modal{width:100%;min-height:100svh;padding:4.5rem 1rem max(2rem, env(safe-area-inset-bottom));border:0;border-radius:0}.profile-editor{grid-template-columns:auto minmax(0,1fr)}.profile-editor-actions{grid-column:1/-1;justify-content:flex-end}.profile-delete-confirm,.add-profile-form{grid-template-columns:1fr}.profile-delete-confirm .manager-button{width:100%}.modal-close{top:max(.8rem, env(safe-area-inset-top));position:fixed;right:.8rem}.modal-hero{height:60vw;min-height:18rem}.modal-hero-content{bottom:1.4rem;left:1.2rem;right:1.2rem}.modal-hero-content h2{max-width:8ch;font-size:2.5rem}.modal-body{grid-template-columns:1fr;gap:1.5rem;padding:.6rem 1.2rem 2rem}.episode-panel{padding:1.5rem 1.2rem max(2rem, env(safe-area-inset-bottom))}.episode-panel-header{flex-direction:column;align-items:flex-start}.episode-panel-tools{justify-content:space-between;width:100%}.episode-card-list{max-height:65svh}.episode-card{grid-template-columns:1.2rem 7rem minmax(0,1fr);gap:.65rem;padding:.75rem}.episode-copy em{display:none}.episode-copy{min-width:0}.player-topbar{top:max(.2rem, env(safe-area-inset-top));height:3rem;left:.4rem;right:.4rem}.player-server-menu{top:calc(3.55rem + env(safe-area-inset-top));transform-origin:calc(100% - 10.5rem) 0;width:auto;position:fixed;left:.5rem;right:.5rem}.player-icon-button{width:3rem;height:3rem}.player-icon-button svg,.player-report svg{width:2rem;height:2rem}.player-episodes{border-radius:0;width:100%;min-width:0;top:4.25rem;bottom:4.8rem}.player-episodes--embed{bottom:max(.5rem, env(safe-area-inset-bottom))}.player-episodes-header{height:3.5rem;padding-inline:1rem}.player-episodes h2{font-size:1.35rem}.player-episode-list{height:calc(100% - 3.5rem)}.player-episode{width:calc(100% - .35rem);min-height:4rem}.player-episode--active{min-height:12rem}.player-episode-heading,.player-episode--active .player-episode-heading{grid-template-columns:1.35rem minmax(0,1fr) minmax(3.5rem,6rem);height:3.9rem;padding:0 .85rem;font-size:.9rem}.player-episode-details{grid-template-columns:minmax(8rem,12rem) minmax(0,1fr);gap:.8rem;padding:0 .8rem .85rem}.player-episode-synopsis{-webkit-line-clamp:5;font-size:.78rem}.player-now-playing{font-size:.72rem}.player-subtitles{width:max-content;max-width:calc(100% - 1.5rem);padding-inline:.5rem}.big-play{width:4rem;height:4rem}.player-bottom{right:.75rem;bottom:max(1.15rem, env(safe-area-inset-bottom));left:.75rem}.player-timeline-row{gap:.6rem;height:.8rem;margin-bottom:.7rem}.player-timeline-row>time{min-width:2rem;font-size:.72rem}.player-timeline-wrap{--seek-preview-width:min(9rem, 45vw)}.player-seek-preview{gap:.3rem;bottom:calc(100% + .45rem)}.player-seek-preview time{padding:.28rem .52rem;font-size:.72rem}.player-controls{justify-content:space-between}.player-controls-left,.player-controls-right{gap:.15rem}.player-control-button,.player-subtitle-control{width:2rem;height:2rem}.player-control-button>svg{width:1.65rem;height:1.65rem}.player-ten-second span{font-size:.5rem}.player-program{display:none}.player-speed span{font-size:.48rem;right:-.2rem}.player-subtitle-menu{width:min(23rem,100vw - 1.5rem);max-height:min(68vh,32rem);right:-4rem}.player-subtitle-menu h2{padding:1rem 1rem .55rem;font-size:1.2rem}.player-subtitle-options button{min-height:2.7rem;padding:.5rem 1rem .5rem .75rem;font-size:.95rem}.player-subtitle-settings{padding:.8rem 1rem .9rem}.player-subtitle-position-setting{flex-direction:column;align-items:flex-start}.player-subtitle-position-setting button{align-self:flex-end}.footer-links{grid-template-columns:repeat(2,1fr)}}@media (max-width:380px){.mobile-menu-button{width:1.8rem}.mobile-menu-button svg{width:1.15rem}.netflix-wordmark{font-size:1.15rem}.hero-actions{gap:.45rem}.button{min-width:6rem;padding-inline:.75rem}.episode-card{grid-template-columns:1rem 6rem 1fr}.player-bottom{left:.45rem;right:.45rem}.player-control-button,.player-subtitle-control{width:1.85rem;height:1.85rem}.player-control-button>svg{width:1.5rem;height:1.5rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
@@ -0,0 +1 @@
1
+ .access-popover-wrap{position:relative}.access-popover{--access-surface:#000000f0;--access-border:#ffffff24;--access-line:#363636;--access-raised:#333;--access-field:#1c1c1c;--access-field-border:#444;--access-text:#fff;--access-strong:#eee;--access-muted:#b3b3b3;--access-accent:#e50914;--access-accent-soft:#e509142b;--access-accent-icon:#ff3943;--access-action:#fff;--access-action-hover:#dcdcdc;--access-action-text:#111;--access-shadow:0 1rem 2.5rem #00000073;z-index:60;top:var(--access-top,calc(100% + .55rem));right:var(--access-right,0);border:1px solid var(--access-border);background:var(--access-surface);width:min(26rem,100vw - 2rem);box-shadow:var(--access-shadow);color:var(--access-text);text-align:left;border-radius:.35rem;padding:.8rem;font-size:1rem;animation:.16s cubic-bezier(.2,.8,.2,1) access-popover-in;position:absolute}.access-popover--light{--access-surface:#fff;--access-border:#dadce0;--access-line:#e3e5e8;--access-raised:#e8f0fe;--access-field:#f8f9fa;--access-field-border:#dadce0;--access-text:#202124;--access-strong:#202124;--access-muted:#5f6368;--access-accent:#1a73e8;--access-accent-soft:#1a73e81f;--access-accent-icon:#1a73e8;--access-action:#1a73e8;--access-action-hover:#1b66c9;--access-action-text:#fff;--access-shadow:0 .5rem 1.5rem #3c404338}.access-popover .access-caret{border-top:1px solid var(--access-border);border-left:1px solid var(--access-border);background:var(--access-surface);width:.85rem;height:.85rem;position:absolute;top:-.48rem;right:1rem;transform:rotate(45deg)}.access-popover .access-heading{align-items:center;gap:.75rem;padding:.35rem .35rem .85rem;display:flex}.access-popover .access-heading>span{background:var(--access-accent-soft);width:2.5rem;height:2.5rem;color:var(--access-accent-icon);border-radius:50%;flex:none;place-items:center;display:grid}.access-popover .access-heading>span svg{width:1.2rem;height:1.2rem;color:inherit}.access-popover .access-heading>div{flex-direction:column;flex:1;min-width:0;display:flex}.access-popover .access-heading b{color:var(--access-text);font-size:.95rem}.access-popover .access-heading small{color:var(--access-muted);font-size:.7rem}.access-popover .access-tabs{border:1px solid var(--access-line);background:var(--access-field);border-radius:.3rem;grid-template-columns:1fr 1.35fr;gap:.2rem;padding:.2rem;display:grid}.access-popover .access-tabs button{width:100%;height:auto;min-height:2.35rem;color:var(--access-muted);cursor:pointer;background:0 0;border:0;border-radius:.2rem;padding:.45rem .65rem;font-family:inherit;font-size:.76rem;font-weight:700}.access-popover .access-tabs button:hover{color:var(--access-text)}.access-popover .access-tabs button[aria-selected=true]{background:var(--access-raised);color:var(--access-text);box-shadow:inset 0 -2px 0 var(--access-accent)}.access-popover .access-tab-panel{min-height:18.8rem;padding-top:.8rem}.access-popover .access-url-row{grid-template-columns:minmax(0,1fr) auto;gap:.45rem;display:grid}.access-popover .access-url-row>a{border:1px solid var(--access-field-border);background:var(--access-field);min-width:0;min-height:2.5rem;color:var(--access-muted);border-radius:.25rem;align-items:center;gap:.45rem;padding:.55rem .65rem;font-size:.72rem;text-decoration:none;display:flex}.access-popover .access-url-row>a:hover{border-color:var(--access-muted);color:var(--access-text)}.access-popover .access-url-row>a span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.access-popover .access-url-row>a svg{width:.9rem;height:.9rem;color:inherit;flex:none}.access-popover .access-url-row>button{background:var(--access-action);width:auto;min-width:5.25rem;height:auto;color:var(--access-action-text);cursor:pointer;border:0;border-radius:.25rem;justify-content:center;align-items:center;gap:.38rem;padding:.55rem .7rem;font-family:inherit;font-size:.72rem;font-weight:800;display:flex}.access-popover .access-url-row>button:hover{background:var(--access-action-hover)}.access-popover .access-url-row>button svg{width:.95rem;height:.95rem;color:inherit}.access-popover .access-qr{background:#fff;border-radius:.35rem;place-items:center;width:max-content;margin:.8rem auto 0;display:grid;overflow:hidden}.access-popover .access-qr svg{width:min(11.5rem,50vw);height:auto;display:block}.access-popover .access-tab-panel>p{color:var(--access-muted);text-align:center;margin:.55rem 0 0;font-size:.7rem}.access-popover .access-loading,.access-popover .access-unavailable{min-height:17.5rem;color:var(--access-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.45rem;padding:1.5rem;font-size:.78rem;display:flex}.access-popover .access-loading svg,.access-popover .access-unavailable>svg{width:1.75rem;height:1.75rem;color:var(--access-muted);margin-bottom:.25rem}.access-popover .access-unavailable b{color:var(--access-strong);font-size:.85rem}.access-popover .access-unavailable small{max-width:17rem;color:var(--access-muted);font-size:.72rem;line-height:1.45}.access-popover .access-unavailable-link{background:var(--access-action);color:var(--access-action-text);border-radius:.25rem;align-items:center;gap:.38rem;margin-top:.5rem;padding:.5rem .8rem;font-size:.72rem;font-weight:800;text-decoration:none;display:flex}.access-popover .access-unavailable-link:hover{background:var(--access-action-hover)}.access-popover .access-unavailable-link svg{width:.9rem;height:.9rem;color:inherit;flex:none}.access-popover .access-spin{animation:.9s linear infinite access-spin}@keyframes access-popover-in{0%{opacity:0;transform:translateY(-.35rem)}}@keyframes access-spin{to{transform:rotate(360deg)}}@media (max-width:700px){.access-popover{top:var(--access-mobile-top,3.6rem);width:auto;max-height:calc(100dvh - var(--access-mobile-top,3.6rem) - .8rem);position:fixed;left:.6rem;right:.6rem;overflow-y:auto}.access-popover .access-caret{display:none}}@media (max-height:560px){.access-popover .access-heading,.access-popover .access-tab-panel>p{display:none}.access-popover .access-tab-panel,.access-popover .access-loading,.access-popover .access-unavailable{min-height:0}.access-popover .access-qr svg{width:min(11.5rem,34vh)}}._backdrop_ttlmb_1{z-index:150;color:#fff;-webkit-backdrop-filter:blur(.25rem);backdrop-filter:blur(.25rem);background:#000000c2;place-items:start center;padding:2.5rem 1rem;animation:.18s _backdrop-in_ttlmb_1;display:grid;position:fixed;inset:0;overflow-y:auto}._modal_ttlmb_15{--profile-manager-red:#e50914;background:radial-gradient(circle at 90% 0,#e5091429,#0000 18rem),#181818;border:1px solid #3f3f3f;border-radius:.65rem;width:min(45rem,100vw - 2rem);padding:2.5rem;animation:.22s cubic-bezier(.16,1,.3,1) _modal-in_ttlmb_1;position:relative;box-shadow:0 1.5rem 5rem #000000b8}._close_ttlmb_29{z-index:5;color:#fff;cursor:pointer;background:#181818;border:0;border-radius:50%;place-items:center;width:2.25rem;height:2.25rem;padding:0;display:grid;position:absolute;top:1rem;right:1rem}._close_ttlmb_29:hover{background:#303030}._close_ttlmb_29:focus-visible{outline-offset:2px;outline:2px solid #fff}._close_ttlmb_29 svg{width:1.35rem}._header_ttlmb_59{align-items:center;gap:.9rem;margin-bottom:1.5rem;display:flex}._icon_ttlmb_66{background:var(--profile-manager-red);border-radius:.45rem;flex:none;place-items:center;width:2.8rem;height:2.8rem;display:grid}._icon_ttlmb_66 svg{width:1.35rem}._header_ttlmb_59 h2{margin:0 0 .25rem;font-size:1.75rem}._header_ttlmb_59 p{color:#aaa;margin:0;font-size:.82rem}._list_ttlmb_91{border:1px solid #3b3b3b;border-radius:.4rem;display:grid;overflow:hidden}._row_ttlmb_98{background:#232323;border-bottom:1px solid #383838;grid-template-columns:auto 1fr auto auto;align-items:center;gap:.75rem;min-height:4.8rem;padding:.8rem;display:grid}._row_ttlmb_98:last-child{border-bottom:0}._avatar_ttlmb_113{border-radius:.35rem;flex:none;place-items:center;width:3rem;height:3rem;font-size:1.2rem;font-weight:850;display:grid;box-shadow:inset 0 -.35rem #00000021}._name_ttlmb_125{flex-direction:column;gap:.18rem;min-width:0;display:flex}._name_ttlmb_125 b{text-overflow:ellipsis;overflow:hidden}._name_ttlmb_125 small{color:#999;font-size:.7rem}._iconButton_ttlmb_142{color:#fff;cursor:pointer;background:0 0;border:1px solid #565656;border-radius:50%;place-items:center;width:2.35rem;height:2.35rem;padding:0;display:grid}._iconButton_ttlmb_142:hover{background:#343434;border-color:#fff}:is(._iconButton_ttlmb_142:focus-visible,._button_ttlmb_161:focus-visible){outline-offset:2px;outline:2px solid #fff}._iconButton_ttlmb_142 svg{width:1rem}._iconButtonDanger_ttlmb_170{color:#ff8d92}._iconButton_ttlmb_142:disabled{opacity:.3;cursor:not-allowed}._editor_ttlmb_179{background:#292929;border-bottom:1px solid #383838;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:1rem;padding:1rem;display:grid}._editorFields_ttlmb_189{gap:.4rem;min-width:0;display:grid}._editorFields_ttlmb_189>label,._addForm_ttlmb_196 label{font-size:.72rem;font-weight:750}._editorFields_ttlmb_189>input,._addForm_ttlmb_196>div>input{color:#fff;background:#181818;border:1px solid #686868;border-radius:.25rem;outline:0;width:100%;height:2.6rem;padding:0 .75rem}._editorFields_ttlmb_189>input:focus,._addForm_ttlmb_196 input:focus{border-color:#fff}._editorActions_ttlmb_218{align-self:center;gap:.45rem;display:flex}._button_ttlmb_161{color:#fff;cursor:pointer;background:#303030;border:1px solid #5a5a5a;border-radius:.25rem;justify-content:center;align-items:center;gap:.4rem;min-height:2.45rem;padding:.45rem .8rem;font-size:.75rem;font-weight:750;display:inline-flex}._button_ttlmb_161 svg{width:1rem}._buttonPrimary_ttlmb_244{border-color:var(--profile-manager-red);background:var(--profile-manager-red)}._buttonQuiet_ttlmb_249{background:0 0}._buttonDanger_ttlmb_253{background:#8f2026;border-color:#8f2026}._button_ttlmb_161:disabled{opacity:.55;cursor:wait}._colorPicker_ttlmb_263{border:0;min-width:0;margin:.25rem 0 0;padding:0}._colorPicker_ttlmb_263 legend{color:#aaa;margin-bottom:.35rem;font-size:.67rem}._colorPicker_ttlmb_263>div{flex-wrap:wrap;gap:.42rem;display:flex}._colorPicker_ttlmb_263 label{cursor:pointer;display:block}._colorPicker_ttlmb_263 input{opacity:0;width:1px;height:1px;position:absolute}._colorPicker_ttlmb_263 span{border:2px solid #0000;border-radius:50%;width:1.45rem;height:1.45rem;display:block;box-shadow:0 0 0 1px #5c5c5c}._colorPicker_ttlmb_263 input:focus-visible+span{outline-offset:2px;outline:2px solid #fff}._colorPicker_ttlmb_263 input:checked+span{border-color:#fff;box-shadow:0 0 0 2px #fff}._deleteConfirm_ttlmb_313{background:#75272b2b;border:1px solid #75272b;border-radius:.35rem;grid-template-columns:1fr auto auto;align-items:center;gap:.55rem;margin-top:.8rem;padding:.8rem;display:grid}._deleteConfirm_ttlmb_313>span{flex-direction:column;gap:.2rem;display:flex}._deleteConfirm_ttlmb_313 small{color:#aaa;font-size:.7rem}._addForm_ttlmb_196{grid-template-columns:minmax(10rem,1fr) 1fr auto;align-items:end;gap:1rem;margin-top:1.25rem;display:grid}._addForm_ttlmb_196>div:first-child{gap:.4rem;display:grid}._error_ttlmb_349{color:#ff777d;margin:.8rem 0 0;font-size:.78rem}._spin_ttlmb_355{animation:.9s linear infinite _spin_ttlmb_355}@keyframes _backdrop-in_ttlmb_1{0%{opacity:0}}@keyframes _modal-in_ttlmb_1{0%{opacity:0;transform:scale(.96)translateY(1rem)}}@keyframes _spin_ttlmb_355{to{transform:rotate(360deg)}}@media (max-width:700px){._backdrop_ttlmb_1{place-items:stretch stretch;padding:0}._modal_ttlmb_15{width:100%;min-height:100svh;padding:4.5rem 1rem max(2rem, env(safe-area-inset-bottom));border:0;border-radius:0}._editor_ttlmb_179{grid-template-columns:auto minmax(0,1fr)}._editorActions_ttlmb_218{grid-column:1/-1;justify-content:flex-end}._deleteConfirm_ttlmb_313,._addForm_ttlmb_196{grid-template-columns:1fr}._deleteConfirm_ttlmb_313 ._button_ttlmb_161{width:100%}._close_ttlmb_29{top:max(.8rem, env(safe-area-inset-top));position:fixed;right:.8rem}}
@@ -1,3 +1,3 @@
1
1
  {
2
- "appBrowserEntry": "_next/static/chunks/index-hn3AiVww.js"
2
+ "appBrowserEntry": "_next/static/chunks/index-BUxxgh38.js"
3
3
  }
@@ -1 +1 @@
1
- e1ce9af7-d770-43d6-845a-511443f19971
1
+ 7c810a6d-59fd-41d6-b465-cf61efaea04f
@@ -1,8 +1,8 @@
1
1
  export default {
2
- "bootstrapScriptContent": "import(\"/_next/static/chunks/index-hn3AiVww.js\")",
2
+ "bootstrapScriptContent": "import(\"/_next/static/chunks/index-BUxxgh38.js\")",
3
3
  "clientEntryDeps": {
4
4
  "js": [
5
- "/_next/static/chunks/index-hn3AiVww.js",
5
+ "/_next/static/chunks/index-BUxxgh38.js",
6
6
  "/_next/static/chunks/rolldown-runtime-QTnfLwEv.js",
7
7
  "/_next/static/chunks/framework-BQUlGUOV.js",
8
8
  "/_next/static/chunks/navigation-errors-C_V42-00.js"
@@ -12,10 +12,10 @@ export default {
12
12
  "clientReferenceDeps": {
13
13
  "a340ac14ea46": {
14
14
  "js": [
15
- "/_next/static/chunks/app-top-nav-Dh0jEt8u.js",
15
+ "/_next/static/chunks/app-top-nav-Co7RIixU.js",
16
16
  "/_next/static/chunks/framework-BQUlGUOV.js",
17
17
  "/_next/static/chunks/rolldown-runtime-QTnfLwEv.js",
18
- "/_next/static/chunks/index-hn3AiVww.js",
18
+ "/_next/static/chunks/index-BUxxgh38.js",
19
19
  "/_next/static/chunks/navigation-errors-C_V42-00.js",
20
20
  "/_next/static/chunks/chevron-left-Dn3noAqV.js",
21
21
  "/_next/static/chunks/house-DQz6VeTk.js"
@@ -24,56 +24,56 @@ export default {
24
24
  },
25
25
  "f1da2b17eb86": {
26
26
  "js": [
27
- "/_next/static/chunks/storefront-C_nmcuvH.js",
27
+ "/_next/static/chunks/storefront-CCeanBPs.js",
28
28
  "/_next/static/chunks/rolldown-runtime-QTnfLwEv.js",
29
29
  "/_next/static/chunks/framework-BQUlGUOV.js",
30
- "/_next/static/chunks/index-hn3AiVww.js",
30
+ "/_next/static/chunks/index-BUxxgh38.js",
31
31
  "/_next/static/chunks/navigation-errors-C_V42-00.js",
32
32
  "/_next/static/chunks/chevron-left-Dn3noAqV.js",
33
- "/_next/static/chunks/step-forward-CV8I5pPb.js",
34
- "/_next/static/chunks/playback-activity-track-switcher-CbO6kl8K.js",
35
- "/_next/static/chunks/manage-profiles-modal-Doi6QM4e.js"
33
+ "/_next/static/chunks/provider-registry-CWHfJn3B.js",
34
+ "/_next/static/chunks/playback-activity-track-switcher-BzvHiv7c.js",
35
+ "/_next/static/chunks/manage-profiles-modal-CWi3qgd4.js"
36
36
  ],
37
37
  "css": [
38
- "/_next/static/css/manage-profiles-modal.BAVyxRRR.css"
38
+ "/_next/static/css/manage-profiles-modal.BOKESpxI.css"
39
39
  ]
40
40
  },
41
41
  "278c117307e7": {
42
42
  "js": [
43
- "/_next/static/chunks/netflix-browser-L_Vb9wXK.js",
43
+ "/_next/static/chunks/netflix-browser-BrXQctI5.js",
44
44
  "/_next/static/chunks/rolldown-runtime-QTnfLwEv.js",
45
45
  "/_next/static/chunks/framework-BQUlGUOV.js",
46
- "/_next/static/chunks/index-hn3AiVww.js",
46
+ "/_next/static/chunks/index-BUxxgh38.js",
47
47
  "/_next/static/chunks/navigation-errors-C_V42-00.js",
48
48
  "/_next/static/chunks/chevron-left-Dn3noAqV.js",
49
- "/_next/static/chunks/step-forward-CV8I5pPb.js",
50
- "/_next/static/chunks/playback-activity-Dug3BRYr.js",
51
- "/_next/static/chunks/manage-profiles-modal-Doi6QM4e.js"
49
+ "/_next/static/chunks/provider-registry-CWHfJn3B.js",
50
+ "/_next/static/chunks/playback-activity-66FeikYZ.js",
51
+ "/_next/static/chunks/manage-profiles-modal-CWi3qgd4.js"
52
52
  ],
53
53
  "css": [
54
- "/_next/static/css/manage-profiles-modal.BAVyxRRR.css"
54
+ "/_next/static/css/manage-profiles-modal.BOKESpxI.css"
55
55
  ]
56
56
  },
57
57
  "6fda1fc439ba": {
58
58
  "js": [
59
- "/_next/static/chunks/spotify-app-f93K4FG_.js",
59
+ "/_next/static/chunks/spotify-app-CJimeMR0.js",
60
60
  "/_next/static/chunks/rolldown-runtime-QTnfLwEv.js",
61
61
  "/_next/static/chunks/framework-BQUlGUOV.js",
62
62
  "/_next/static/chunks/chevron-left-Dn3noAqV.js",
63
- "/_next/static/chunks/playback-activity-track-switcher-CbO6kl8K.js",
64
- "/_next/static/chunks/manage-profiles-modal-Doi6QM4e.js",
65
- "/_next/static/chunks/playback-activity-Dug3BRYr.js",
63
+ "/_next/static/chunks/playback-activity-track-switcher-BzvHiv7c.js",
64
+ "/_next/static/chunks/manage-profiles-modal-CWi3qgd4.js",
65
+ "/_next/static/chunks/playback-activity-66FeikYZ.js",
66
66
  "/_next/static/chunks/house-DQz6VeTk.js",
67
- "/_next/static/chunks/index-hn3AiVww.js",
67
+ "/_next/static/chunks/index-BUxxgh38.js",
68
68
  "/_next/static/chunks/navigation-errors-C_V42-00.js"
69
69
  ],
70
70
  "css": [
71
- "/_next/static/css/manage-profiles-modal.BAVyxRRR.css"
71
+ "/_next/static/css/manage-profiles-modal.BOKESpxI.css"
72
72
  ]
73
73
  },
74
74
  "9276801271d6": {
75
75
  "js": [
76
- "/_next/static/chunks/index-hn3AiVww.js",
76
+ "/_next/static/chunks/index-BUxxgh38.js",
77
77
  "/_next/static/chunks/rolldown-runtime-QTnfLwEv.js",
78
78
  "/_next/static/chunks/framework-BQUlGUOV.js",
79
79
  "/_next/static/chunks/navigation-errors-C_V42-00.js"
@@ -82,7 +82,7 @@ export default {
82
82
  },
83
83
  "0b874ad30386": {
84
84
  "js": [
85
- "/_next/static/chunks/index-hn3AiVww.js",
85
+ "/_next/static/chunks/index-BUxxgh38.js",
86
86
  "/_next/static/chunks/rolldown-runtime-QTnfLwEv.js",
87
87
  "/_next/static/chunks/framework-BQUlGUOV.js",
88
88
  "/_next/static/chunks/navigation-errors-C_V42-00.js"
@@ -91,7 +91,7 @@ export default {
91
91
  },
92
92
  "593f344dc510": {
93
93
  "js": [
94
- "/_next/static/chunks/index-hn3AiVww.js",
94
+ "/_next/static/chunks/index-BUxxgh38.js",
95
95
  "/_next/static/chunks/rolldown-runtime-QTnfLwEv.js",
96
96
  "/_next/static/chunks/framework-BQUlGUOV.js",
97
97
  "/_next/static/chunks/navigation-errors-C_V42-00.js"
@@ -100,7 +100,7 @@ export default {
100
100
  },
101
101
  "bad85346fc72": {
102
102
  "js": [
103
- "/_next/static/chunks/index-hn3AiVww.js",
103
+ "/_next/static/chunks/index-BUxxgh38.js",
104
104
  "/_next/static/chunks/rolldown-runtime-QTnfLwEv.js",
105
105
  "/_next/static/chunks/framework-BQUlGUOV.js",
106
106
  "/_next/static/chunks/navigation-errors-C_V42-00.js"
@@ -109,17 +109,17 @@ export default {
109
109
  },
110
110
  "15c18cfaeeff": {
111
111
  "js": [
112
- "/_next/static/chunks/layout-segment-context-DRM8YCgm.js",
112
+ "/_next/static/chunks/layout-segment-context-D_cL7vkY.js",
113
113
  "/_next/static/chunks/rolldown-runtime-QTnfLwEv.js",
114
114
  "/_next/static/chunks/framework-BQUlGUOV.js",
115
115
  "/_next/static/chunks/navigation-errors-C_V42-00.js",
116
- "/_next/static/chunks/index-hn3AiVww.js"
116
+ "/_next/static/chunks/index-BUxxgh38.js"
117
117
  ],
118
118
  "css": []
119
119
  },
120
120
  "8c0f216c4604": {
121
121
  "js": [
122
- "/_next/static/chunks/index-hn3AiVww.js",
122
+ "/_next/static/chunks/index-BUxxgh38.js",
123
123
  "/_next/static/chunks/rolldown-runtime-QTnfLwEv.js",
124
124
  "/_next/static/chunks/framework-BQUlGUOV.js",
125
125
  "/_next/static/chunks/navigation-errors-C_V42-00.js"
@@ -131,7 +131,7 @@ export default {
131
131
  "/_next/static/chunks/streamed-icons-DwsKSgMb.js",
132
132
  "/_next/static/chunks/rolldown-runtime-QTnfLwEv.js",
133
133
  "/_next/static/chunks/framework-BQUlGUOV.js",
134
- "/_next/static/chunks/index-hn3AiVww.js",
134
+ "/_next/static/chunks/index-BUxxgh38.js",
135
135
  "/_next/static/chunks/navigation-errors-C_V42-00.js"
136
136
  ],
137
137
  "css": []
@@ -141,21 +141,21 @@ export default {
141
141
  "app/layout.tsx": {
142
142
  "js": [],
143
143
  "css": [
144
- "/_next/static/css/index.BGXy8e6j.css"
144
+ "/_next/static/css/index.8o3Y-jts.css"
145
145
  ]
146
146
  },
147
147
  "app/netflix/layout.tsx": {
148
148
  "js": [],
149
149
  "css": [
150
- "/_next/static/css/layout.D8T68cCD.css",
151
- "/_next/static/css/index.BGXy8e6j.css"
150
+ "/_next/static/css/layout.D4D5fsiD.css",
151
+ "/_next/static/css/index.8o3Y-jts.css"
152
152
  ]
153
153
  },
154
154
  "app/spotify/layout.tsx": {
155
155
  "js": [],
156
156
  "css": [
157
- "/_next/static/css/layout.AKSLtSR6.css",
158
- "/_next/static/css/index.BGXy8e6j.css"
157
+ "/_next/static/css/layout.D2NsWbhP.css",
158
+ "/_next/static/css/index.8o3Y-jts.css"
159
159
  ]
160
160
  }
161
161
  }
@@ -1 +1 @@
1
- import{F as e,a as t,c as n,d as r,f as i,m as a,p as o,t as s}from"./cache-headers-BQ-QuzWN.js";import{x as c}from"./request-context-C1ZJzkex.js";import{D as l,E as u,_ as d,f}from"../../index.js";import{n as p}from"./isr-decision-D1zHgPSI.js";new TextEncoder,`${d(`vinext.navigationRuntime`)}`;function m(e,t){try{e?.(t)}catch{}}function h(t,n){let r=[t,`_N_T_${t.length>1&&t.endsWith(`/`)?t.slice(0,-1):t}`,`_N_T_/layout`],i=t.split(`/`),a=``;for(let e=1;e<i.length;e++){let t=i[e];t&&(a+=`/${t}`,r.push(`_N_T_${a}/layout`))}r.push(`_N_T_${a}/page`);for(let e of n)r.includes(e)||r.push(e);return r.map(e)}function g(e){let r=new Headers({"Content-Type":e.contentType,Vary:i});if(t(r,{cacheControl:e.cacheControl}),s(r,e.cacheState),u(r,e.isEdgeRuntime),e.linkHeader)if(Array.isArray(e.linkHeader))for(let t of e.linkHeader)r.append(`Link`,t);else r.set(`Link`,e.linkHeader);return e.mountedSlotsHeader&&r.set(c,e.mountedSlotsHeader),n(r,e.middlewareHeaders??null),r}function _(e){return e?.value.value&&e.value.value.kind===`APP_PAGE`?e.value.value:null}function v(e){return e.renderObservation!==void 0&&f(e.renderObservation,[`searchParams`])}function y(e){let t=e.routeRevalidateSeconds,n=e.renderCacheControl?.revalidate;return typeof n==`number`&&(t=t>0?Math.min(t,n):n),{expireSeconds:e.renderCacheControl?.expire??e.expireSeconds,revalidateSeconds:t}}function b(e,t){let n=t.middlewareStatus??(e.status||200),{cacheControl:i}=p({cacheState:t.cacheState,kind:`app-page`,revalidateSeconds:t.revalidateSeconds,expireSeconds:t.expireSeconds,cacheControlMeta:t.cacheControl});if(t.isRscRequest){if(!e.rscData)return null;let s=g({cacheControl:i,cacheState:t.cacheState,contentType:r,isEdgeRuntime:t.isEdgeRuntime,middlewareHeaders:t.middlewareHeaders,mountedSlotsHeader:t.mountedSlotsHeader});return o(s),a(s),new Response(e.rscData,{status:n,headers:s})}if(typeof e.html!=`string`||e.html.length===0)return null;let s=g({cacheControl:i,cacheState:t.cacheState,contentType:`text/html; charset=utf-8`,isEdgeRuntime:t.isEdgeRuntime,linkHeader:e.headers?.link,middlewareHeaders:t.middlewareHeaders});return new Response(e.html,{status:n,headers:s})}async function x(e){if(e.isRscRequest&&e.mountedSlotsHeader)return e.isrDebug?.(`MISS (mounted slots RSC variant)`,e.cleanPathname),null;let t=e.isRscRequest?e.isrRscKey(e.cleanPathname,null,e.renderMode,e.interceptionContext):e.isrHtmlKey(e.cleanPathname),n=e.isRscRequest?`rsc`:`html`;try{let r=await e.isrGet(t),i=_(r);if(r?.isExpired)return m(e.recordCacheOutcome,{artifact:n,cacheKey:t,outcome:`miss`,reason:`expired`}),e.isrDebug?.(`MISS (expired)`,e.cleanPathname),null;if(r&&!i)return m(e.recordCacheOutcome,{artifact:n,cacheKey:t,outcome:`miss`,reason:`non-app-page-entry`}),e.isrDebug?.(`MISS (non app-page cache entry)`,e.cleanPathname),null;if(i&&e.hasRequestSearchParams===!0&&!v(i))return m(e.recordCacheOutcome,{artifact:n,cacheKey:t,outcome:`miss`,reason:`query-variant-unproven`}),e.isrDebug?.(`MISS (query-bearing request lacks cache proof)`,e.cleanPathname),null;if(i&&!r?.isStale){let a=b(i,{cacheState:`HIT`,cacheControl:r?.value.cacheControl,expireSeconds:e.expireSeconds,isEdgeRuntime:e.isEdgeRuntime,isRscRequest:e.isRscRequest,middlewareHeaders:e.middlewareHeaders,middlewareStatus:e.middlewareStatus,mountedSlotsHeader:e.mountedSlotsHeader,revalidateSeconds:e.revalidateSeconds});if(a)return m(e.recordCacheOutcome,{artifact:n,cacheKey:t,outcome:`hit`,reason:`served`}),e.isrDebug?.(e.isRscRequest?`HIT (RSC)`:`HIT (HTML)`,e.cleanPathname),e.clearRequestContext(),a;m(e.recordCacheOutcome,{artifact:n,cacheKey:t,outcome:`miss`,reason:`empty-entry`}),e.isrDebug?.(`MISS (empty cached entry)`,e.cleanPathname)}if(r?.isStale&&i){e.scheduleBackgroundRegeneration(t,async()=>{let n=await e.renderFreshPageForCache(),r=y({expireSeconds:e.expireSeconds,renderCacheControl:n.cacheControl,routeRevalidateSeconds:e.revalidateSeconds}),i=[e.isrSet(e.isRscRequest?t:e.isrRscKey(e.cleanPathname,null,e.renderMode,e.interceptionContext),l(``,n.rscData,200,n.rscRenderObservation),r.revalidateSeconds,n.tags,r.expireSeconds)];e.isRscRequest||i.push(e.isrSet(t,l(n.html,void 0,200,n.htmlRenderObservation,n.linkHeader?{link:n.linkHeader}:void 0),r.revalidateSeconds,n.tags,r.expireSeconds)),await Promise.all(i),e.isrDebug?.(`regen complete`,e.cleanPathname)});let a=b(i,{cacheState:`STALE`,cacheControl:r.value.cacheControl,expireSeconds:e.expireSeconds,isEdgeRuntime:e.isEdgeRuntime,isRscRequest:e.isRscRequest,middlewareHeaders:e.middlewareHeaders,middlewareStatus:e.middlewareStatus,mountedSlotsHeader:e.mountedSlotsHeader,revalidateSeconds:e.revalidateSeconds});if(a)return m(e.recordCacheOutcome,{artifact:n,cacheKey:t,outcome:`stale`,reason:`served`}),e.isrDebug?.(e.isRscRequest?`STALE (RSC)`:`STALE (HTML)`,e.cleanPathname),e.clearRequestContext(),a;m(e.recordCacheOutcome,{artifact:n,cacheKey:t,outcome:`miss`,reason:`stale-empty-entry`}),e.isrDebug?.(`STALE MISS (empty stale entry)`,e.cleanPathname)}r||(m(e.recordCacheOutcome,{artifact:n,cacheKey:t,outcome:`miss`,reason:`no-entry`}),e.isrDebug?.(`MISS (no cache entry)`,e.cleanPathname))}catch(r){m(e.recordCacheOutcome,{artifact:n,cacheKey:t,outcome:`miss`,reason:`read-error`}),console.error(`[vinext] ISR cache read error:`,r)}return null}export{h as buildAppPageCacheTags,x as readAppPageCacheResponse};
1
+ import{F as e,a as t,c as n,d as r,f as i,m as a,p as o,t as s}from"./cache-headers-lY59goLh.js";import{x as c}from"./request-context-C1ZJzkex.js";import{D as l,E as u,_ as d,f}from"../../index.js";import{n as p}from"./isr-decision-BOA4L6nr.js";new TextEncoder,`${d(`vinext.navigationRuntime`)}`;function m(e,t){try{e?.(t)}catch{}}function h(t,n){let r=[t,`_N_T_${t.length>1&&t.endsWith(`/`)?t.slice(0,-1):t}`,`_N_T_/layout`],i=t.split(`/`),a=``;for(let e=1;e<i.length;e++){let t=i[e];t&&(a+=`/${t}`,r.push(`_N_T_${a}/layout`))}r.push(`_N_T_${a}/page`);for(let e of n)r.includes(e)||r.push(e);return r.map(e)}function g(e){let r=new Headers({"Content-Type":e.contentType,Vary:i});if(t(r,{cacheControl:e.cacheControl}),s(r,e.cacheState),u(r,e.isEdgeRuntime),e.linkHeader)if(Array.isArray(e.linkHeader))for(let t of e.linkHeader)r.append(`Link`,t);else r.set(`Link`,e.linkHeader);return e.mountedSlotsHeader&&r.set(c,e.mountedSlotsHeader),n(r,e.middlewareHeaders??null),r}function _(e){return e?.value.value&&e.value.value.kind===`APP_PAGE`?e.value.value:null}function v(e){return e.renderObservation!==void 0&&f(e.renderObservation,[`searchParams`])}function y(e){let t=e.routeRevalidateSeconds,n=e.renderCacheControl?.revalidate;return typeof n==`number`&&(t=t>0?Math.min(t,n):n),{expireSeconds:e.renderCacheControl?.expire??e.expireSeconds,revalidateSeconds:t}}function b(e,t){let n=t.middlewareStatus??(e.status||200),{cacheControl:i}=p({cacheState:t.cacheState,kind:`app-page`,revalidateSeconds:t.revalidateSeconds,expireSeconds:t.expireSeconds,cacheControlMeta:t.cacheControl});if(t.isRscRequest){if(!e.rscData)return null;let s=g({cacheControl:i,cacheState:t.cacheState,contentType:r,isEdgeRuntime:t.isEdgeRuntime,middlewareHeaders:t.middlewareHeaders,mountedSlotsHeader:t.mountedSlotsHeader});return o(s),a(s),new Response(e.rscData,{status:n,headers:s})}if(typeof e.html!=`string`||e.html.length===0)return null;let s=g({cacheControl:i,cacheState:t.cacheState,contentType:`text/html; charset=utf-8`,isEdgeRuntime:t.isEdgeRuntime,linkHeader:e.headers?.link,middlewareHeaders:t.middlewareHeaders});return new Response(e.html,{status:n,headers:s})}async function x(e){if(e.isRscRequest&&e.mountedSlotsHeader)return e.isrDebug?.(`MISS (mounted slots RSC variant)`,e.cleanPathname),null;let t=e.isRscRequest?e.isrRscKey(e.cleanPathname,null,e.renderMode,e.interceptionContext):e.isrHtmlKey(e.cleanPathname),n=e.isRscRequest?`rsc`:`html`;try{let r=await e.isrGet(t),i=_(r);if(r?.isExpired)return m(e.recordCacheOutcome,{artifact:n,cacheKey:t,outcome:`miss`,reason:`expired`}),e.isrDebug?.(`MISS (expired)`,e.cleanPathname),null;if(r&&!i)return m(e.recordCacheOutcome,{artifact:n,cacheKey:t,outcome:`miss`,reason:`non-app-page-entry`}),e.isrDebug?.(`MISS (non app-page cache entry)`,e.cleanPathname),null;if(i&&e.hasRequestSearchParams===!0&&!v(i))return m(e.recordCacheOutcome,{artifact:n,cacheKey:t,outcome:`miss`,reason:`query-variant-unproven`}),e.isrDebug?.(`MISS (query-bearing request lacks cache proof)`,e.cleanPathname),null;if(i&&!r?.isStale){let a=b(i,{cacheState:`HIT`,cacheControl:r?.value.cacheControl,expireSeconds:e.expireSeconds,isEdgeRuntime:e.isEdgeRuntime,isRscRequest:e.isRscRequest,middlewareHeaders:e.middlewareHeaders,middlewareStatus:e.middlewareStatus,mountedSlotsHeader:e.mountedSlotsHeader,revalidateSeconds:e.revalidateSeconds});if(a)return m(e.recordCacheOutcome,{artifact:n,cacheKey:t,outcome:`hit`,reason:`served`}),e.isrDebug?.(e.isRscRequest?`HIT (RSC)`:`HIT (HTML)`,e.cleanPathname),e.clearRequestContext(),a;m(e.recordCacheOutcome,{artifact:n,cacheKey:t,outcome:`miss`,reason:`empty-entry`}),e.isrDebug?.(`MISS (empty cached entry)`,e.cleanPathname)}if(r?.isStale&&i){e.scheduleBackgroundRegeneration(t,async()=>{let n=await e.renderFreshPageForCache(),r=y({expireSeconds:e.expireSeconds,renderCacheControl:n.cacheControl,routeRevalidateSeconds:e.revalidateSeconds}),i=[e.isrSet(e.isRscRequest?t:e.isrRscKey(e.cleanPathname,null,e.renderMode,e.interceptionContext),l(``,n.rscData,200,n.rscRenderObservation),r.revalidateSeconds,n.tags,r.expireSeconds)];e.isRscRequest||i.push(e.isrSet(t,l(n.html,void 0,200,n.htmlRenderObservation,n.linkHeader?{link:n.linkHeader}:void 0),r.revalidateSeconds,n.tags,r.expireSeconds)),await Promise.all(i),e.isrDebug?.(`regen complete`,e.cleanPathname)});let a=b(i,{cacheState:`STALE`,cacheControl:r.value.cacheControl,expireSeconds:e.expireSeconds,isEdgeRuntime:e.isEdgeRuntime,isRscRequest:e.isRscRequest,middlewareHeaders:e.middlewareHeaders,middlewareStatus:e.middlewareStatus,mountedSlotsHeader:e.mountedSlotsHeader,revalidateSeconds:e.revalidateSeconds});if(a)return m(e.recordCacheOutcome,{artifact:n,cacheKey:t,outcome:`stale`,reason:`served`}),e.isrDebug?.(e.isRscRequest?`STALE (RSC)`:`STALE (HTML)`,e.cleanPathname),e.clearRequestContext(),a;m(e.recordCacheOutcome,{artifact:n,cacheKey:t,outcome:`miss`,reason:`stale-empty-entry`}),e.isrDebug?.(`STALE MISS (empty stale entry)`,e.cleanPathname)}r||(m(e.recordCacheOutcome,{artifact:n,cacheKey:t,outcome:`miss`,reason:`no-entry`}),e.isrDebug?.(`MISS (no cache entry)`,e.cleanPathname))}catch(r){m(e.recordCacheOutcome,{artifact:n,cacheKey:t,outcome:`miss`,reason:`read-error`}),console.error(`[vinext] ISR cache read error:`,r)}return null}export{h as buildAppPageCacheTags,x as readAppPageCacheResponse};
@@ -1 +1 @@
1
- import{C as e,j as t,lt as n,ut as r}from"./cache-headers-BQ-QuzWN.js";import{c as i,d as a,g as o,h as s,l as c,m as l,o as u,p as d,u as f,y as p}from"../../index.js";async function m(m){let h=o(m.renderToReadableStream(m.element,{onError:m.onError}),m.captureRscData),g={value:null},_=m.getFontPreloads(),v=await(await m.loadSsrHandler()).handleSsr(h.ssrStream,m.getNavigationContext(),{links:m.getFontLinks(),styles:m.getFontStyles(),preloads:_},{basePath:m.basePath,clientTraceMetadata:m.clientTraceMetadata,reactMaxHeadersLength:m.reactMaxHeadersLength,rootParams:m.rootParams,waitForAllReady:m.waitForAllReady,...h.sideStream?{sideStream:h.sideStream,capturedRscDataRef:g}:{}}),y=l(v)?v.htmlStream:v,b=d(l(v)?v.linkHeader:void 0,s(_),m.reactMaxHeadersLength),x=await u(y),S;if(m.captureRscData){let e=g.value;if(!e)throw Error(`[vinext] Expected captured RSC data while rendering app page cache artifacts`);S=await e}let C=t(),w=p(m.cleanPathname,e(),m.route.routeSegments),T=i();r(),n();let E={html:x,htmlRenderObservation:f({boundaryOutcome:{kind:`success`},cacheability:`public`,cacheTags:w,cleanPathname:m.cleanPathname,completeness:`complete`,output:c({element:m.element,renderEpoch:null,rootBoundaryId:null,routePattern:m.route.pattern}),params:m.navigationParams,state:T}),...b?{linkHeader:b}:{},tags:w,cacheControl:typeof C?.revalidate==`number`?{revalidate:C.revalidate,expire:C.expire}:void 0};return m.captureRscData&&(E.rscData=S,E.rscRenderObservation=f({boundaryOutcome:{kind:`success`},cacheability:`public`,cacheTags:w,cleanPathname:m.cleanPathname,completeness:`complete`,output:a({element:m.element,mountedSlotsHeader:m.mountedSlotsHeader,renderEpoch:null,rootBoundaryId:null,routePattern:m.route.pattern}),params:m.navigationParams,state:T})),E}export{m as renderAppPageCacheArtifacts};
1
+ import{C as e,j as t,lt as n,ut as r}from"./cache-headers-lY59goLh.js";import{c as i,d as a,g as o,h as s,l as c,m as l,o as u,p as d,u as f,y as p}from"../../index.js";async function m(m){let h=o(m.renderToReadableStream(m.element,{onError:m.onError}),m.captureRscData),g={value:null},_=m.getFontPreloads(),v=await(await m.loadSsrHandler()).handleSsr(h.ssrStream,m.getNavigationContext(),{links:m.getFontLinks(),styles:m.getFontStyles(),preloads:_},{basePath:m.basePath,clientTraceMetadata:m.clientTraceMetadata,reactMaxHeadersLength:m.reactMaxHeadersLength,rootParams:m.rootParams,waitForAllReady:m.waitForAllReady,...h.sideStream?{sideStream:h.sideStream,capturedRscDataRef:g}:{}}),y=l(v)?v.htmlStream:v,b=d(l(v)?v.linkHeader:void 0,s(_),m.reactMaxHeadersLength),x=await u(y),S;if(m.captureRscData){let e=g.value;if(!e)throw Error(`[vinext] Expected captured RSC data while rendering app page cache artifacts`);S=await e}let C=t(),w=p(m.cleanPathname,e(),m.route.routeSegments),T=i();r(),n();let E={html:x,htmlRenderObservation:f({boundaryOutcome:{kind:`success`},cacheability:`public`,cacheTags:w,cleanPathname:m.cleanPathname,completeness:`complete`,output:c({element:m.element,renderEpoch:null,rootBoundaryId:null,routePattern:m.route.pattern}),params:m.navigationParams,state:T}),...b?{linkHeader:b}:{},tags:w,cacheControl:typeof C?.revalidate==`number`?{revalidate:C.revalidate,expire:C.expire}:void 0};return m.captureRscData&&(E.rscData=S,E.rscRenderObservation=f({boundaryOutcome:{kind:`success`},cacheability:`public`,cacheTags:w,cleanPathname:m.cleanPathname,completeness:`complete`,output:a({element:m.element,mountedSlotsHeader:m.mountedSlotsHeader,renderEpoch:null,rootBoundaryId:null,routePattern:m.route.pattern}),params:m.navigationParams,state:T})),E}export{m as renderAppPageCacheArtifacts};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-DaDcL9Zw.js";import{n as t}from"./framework~index~layout~layout~page~page~page~layout~page~app-page-cache-render~app-page-cac~nvd6h53m-ydvR7YSg.js";import{C as n,D as r,M as i,O as a,S as o,Tt as s,_t as c,a as l,c as u,ft as d,k as f,lt as p,mt as m,n as h,pt as g,t as _,vt as v,wt as y}from"./cache-headers-BQ-QuzWN.js";import{o as b,r as x,t as S}from"./unified-request-context-CgIMz2dD.js";import{t as C}from"./request-context-C1ZJzkex.js";import{a as w,i as T,o as E,r as D,t as O}from"./server-CS40XqUP.js";import{t as ee}from"./base-path-Cmiu3HvG.js";import{t as te}from"./instrumentation-BV3gg-L-.js";import{A as ne,M as k,N as A,T as j,b as re,n as ie,s as ae,v as oe,w as se}from"../../index.js";import{n as ce,t as le}from"./isr-decision-D1zHgPSI.js";import{createStaticGenerationHeadersContext as M,getAppRouteStaticGenerationErrorMessage as ue}from"./app-static-generation-BX8cz43B.js";var N=e(t(),1),de=Symbol.for(`vinext.appRouterContext`),fe=Symbol.for(`vinext.globalLayoutRouterContext`),pe=Symbol.for(`vinext.layoutRouterContext`),me=Symbol.for(`vinext.missingSlotContext`),he=Symbol.for(`vinext.templateContext`);function P(e,t){if(typeof N.createContext!=`function`)return null;let n=globalThis;return n[e]||(n[e]=N.createContext(t)),n[e]??null}P(de,null),P(fe,null),P(pe,null),P(me,new Set),P(he,null);function F(e,t){if(e===void 0||e===``)return t;let n=Number(e);return!Number.isFinite(n)||n<0?t:n*1e3}F(`0`,3e4),F(`300`,3e4);function I(e){let t=e.indexOf(`=`);if(t<=0)return null;let n=e.indexOf(`;`),r=n===-1?t:Math.min(t,n);return e.slice(0,r)}var L=`NextResponse.rewrite() was used in a app route handler, this is not currently supported. Please remove the invocation to continue.`,R=`NextResponse.next() was used in a app route handler, this is not supported. See here for more info: https://nextjs.org/docs/messages/next-response-next-in-app-route-handler`;function ge(e){for(let t of e.keys())if(t.startsWith(`x-middleware-`))return!0;return!1}function z(e,t){if(!t.headers&&t.status==null)return e;let n=new Headers(e.headers);return u(n,t.headers),new Response(e.body,{status:t.status??e.status,statusText:e.statusText,headers:n})}function B(e){if(e.headers.has(`x-middleware-rewrite`))throw Error(L);if(e.headers.get(`x-middleware-next`)===`1`)throw Error(R)}function V(e,t){let n=new Headers;for(let[t,r]of Object.entries(e.headers))if(Array.isArray(r))for(let e of r)n.append(t,e);else n.set(t,r);_(n,t.cacheState);let{cacheControl:r}=ce({cacheState:t.cacheState,kind:`app-route`,revalidateSeconds:t.revalidateSeconds,expireSeconds:t.expireSeconds,cacheControlMeta:t.cacheControl});return l(n,{cacheControl:r}),new Response(t.isHead?null:e.body,{status:e.status,headers:n})}function _e(e,t,n,r){l(e.headers,{cacheControl:le(t,n),tags:r})}function ve(e){_(e.headers,`MISS`)}function ye(e,t){let n=t.toLowerCase(),r=e.indexOf(`;`);for(;r!==-1;){let t=r+1;for(;t<e.length&&e[t]===` `;)t++;let i=e.indexOf(`;`,t),a=i===-1?e.length:i,o=e.indexOf(`=`,t),s=o===-1||o>a?a:o;if(e.slice(t,s).trim().toLowerCase()===n)return!0;r=i}return!1}function be(e){return ye(e,`Path`)?e:`${e.replace(/;\s*$/,``)}; Path=/`}function xe(e,t){if(t.length===0)return;let n=e.getSetCookie(),r=new Set;for(let e of n){let t=I(e);t&&r.add(t)}let i=new Map,a=[];for(let e of t){let t=I(e);if(!t){a.push(e);continue}r.has(t)||i.set(t,e)}e.delete(`Set-Cookie`);for(let t of a)e.append(`Set-Cookie`,t);for(let t of i.values())e.append(`Set-Cookie`,t);for(let t of n)e.append(`Set-Cookie`,be(t))}async function H(e){let t=await e.arrayBuffer(),n={};e.headers.forEach((e,t)=>{t===`set-cookie`||t===`x-vinext-cache`||t===`x-nextjs-cache`||t===`cache-control`||t.startsWith(`x-middleware-`)||(n[t]=e)});let r=e.headers.getSetCookie?.()??[];return r.length>0&&(n[`set-cookie`]=r),{kind:`APP_ROUTE`,body:t,status:e.status,headers:n}}function U(e,t){let{pendingCookies:n,draftCookie:r,isHead:i}=t;if(n.length===0&&!r&&!i&&!ge(e.headers))return e;let a=new Headers(e.headers);return ne(a),xe(a,n),r&&a.append(`Set-Cookie`,r),new Response(i?null:e.body,{status:e.status,statusText:e.statusText,headers:a})}var W=[`GET`,`HEAD`,`POST`,`PUT`,`DELETE`,`PATCH`,`OPTIONS`];function Se(e){return W.includes(e)}function Ce(e){let t=W.filter(t=>typeof e[t]==`function`);return t.includes(`GET`)&&!t.includes(`HEAD`)&&t.push(`HEAD`),t}function we(e){let t=new Set(e);return t.add(`OPTIONS`),Array.from(t).sort().join(`, `)}var Te=Symbol.for(`vinext.appRouteHandlerRuntime.knownDynamicHandlers`),Ee=globalThis,G=Ee[Te]??=new Set;function De(e){return G.has(e)}function K(e){G.add(e)}function q(e,t){return typeof e==`function`?e.bind(t):e}function Oe(e){return!e.basePath&&!e.i18n&&!e.trailingSlash?null:{basePath:e.basePath,i18n:e.i18n??void 0,trailingSlash:e.trailingSlash}}function ke(e,t){let n=e.method,r=n!==`GET`&&n!==`HEAD`,i={method:n,headers:t,cache:e.cache,credentials:e.credentials,integrity:e.integrity,keepalive:e.keepalive,mode:e.mode,redirect:e.redirect,referrer:e.referrer,referrerPolicy:e.referrerPolicy,signal:e.signal};return r&&e.body&&(i.body=e.body,i.duplex=`half`),new Request(e.url,i)}function J(e){let t=new URL(e);return t.protocol=`http:`,t.host=`localhost:3000`,t.username=``,t.password=``,t.search=``,t.hash=``,t.href}function Ae(){return new Response(null).arrayBuffer()}function je(){return new Response(null).blob()}function Me(){return new Response(null).formData()}function Ne(){return new Response(null).json()}function Pe(){return new Response(null).text()}function Fe(e,t={}){let n=!1,r=t.requestMode??`auto`,i=Oe(t),a=e=>{n=!0,t.onDynamicAccess?.(e)},o=e=>new Proxy(e,{get(e,t){switch(t){case`search`:case`searchParams`:case`url`:case`href`:case`toJSON`:case`toString`:case`origin`:return a(`nextUrl.${String(t)}`),q(Reflect.get(e,t,e),e);case`clone`:return()=>o(e.clone());default:return q(Reflect.get(e,t,e),e)}}}),s=e=>{let t=new URLSearchParams,n=J(e.href);return new Proxy(e,{get(e,r){switch(r){case`search`:return``;case`searchParams`:return t;case`href`:return n;case`url`:return;case`toJSON`:case`toString`:return()=>n;case`clone`:return()=>s(e.clone());default:return q(Reflect.get(e,r,e),e)}}})},c=e=>{throw Error(t.staticGenerationErrorMessage?.(e)??`Route handler with \`dynamic = "error"\` used ${e}.`)},l=e=>new Proxy(e,{get(e,t){switch(t){case`search`:case`searchParams`:case`url`:case`href`:case`toJSON`:case`toString`:case`origin`:return c(`nextUrl.${String(t)}`);case`clone`:return()=>l(e.clone());default:return q(Reflect.get(e,t,e),e)}}}),u=e=>{let n=e;if(t.basePath){let r=new URL(e.url),i=ee(r.pathname,t.basePath);if(i!==r.pathname){r.pathname=i;let t=e.body&&!e.bodyUsed?e.clone():e;n=new Request(r,t)}}let d=t.middlewareHeaders?E(n.headers,t.middlewareHeaders):null,f=d?ke(n,d):n,p=f instanceof O?f:new O(f,{nextConfig:i??void 0}),m=null,h=null,g=null,_=null,v=null;return new Proxy(p,{get(e,t){if(r===`force-static`)switch(t){case`nextUrl`:return h??=s(e.nextUrl),h;case`headers`:return _??=w(new Headers),_;case`cookies`:return v??=T(new D(new Headers)),v;case`url`:return J(e.nextUrl.href);case`ip`:case`geo`:return;case`body`:return null;case`arrayBuffer`:return Ae;case`blob`:return je;case`formData`:return Me;case`json`:return Ne;case`text`:return Pe;case`clone`:return()=>u(e.clone());default:return q(Reflect.get(e,t,e),e)}if(r===`error`)switch(t){case`nextUrl`:return g??=l(e.nextUrl),g;case`headers`:case`cookies`:case`url`:case`ip`:case`geo`:case`body`:case`blob`:case`json`:case`text`:case`arrayBuffer`:case`formData`:return c(`request.${String(t)}`);case`clone`:return()=>u(e.clone());default:return q(Reflect.get(e,t,e),e)}switch(t){case`nextUrl`:return m??=o(e.nextUrl),m;case`headers`:case`cookies`:case`ip`:case`geo`:case`url`:case`body`:case`blob`:case`json`:case`text`:case`arrayBuffer`:case`formData`:return a(`request.${String(t)}`),q(Reflect.get(e,t,e),e);case`clone`:return()=>u(e.clone());default:return q(Reflect.get(e,t,e),e)}}})};return{request:u(e),didAccessDynamicRequest(){return n}}}function Ie(e){let{revalidate:t}=e;return t===!1?1/0:typeof t!=`number`||!Number.isFinite(t)||t<0?null:t}function Le(e){return typeof e.default==`function`}function Re(e,t){let n=Ce(e),r=we(n),i=t===`OPTIONS`&&typeof e.OPTIONS!=`function`,a=typeof e[t]==`function`?e[t]:void 0,o=!1;return t===`HEAD`&&typeof e.HEAD!=`function`&&typeof e.GET==`function`&&(a=e.GET,o=!0),{allowHeaderForOptions:r,exportedMethods:n,handlerFn:a,isAutoHead:o,shouldAutoRespondToOptions:i}}function Y(e){return e.isProduction&&e.revalidateSeconds!==null&&e.revalidateSeconds>0&&e.revalidateSeconds!==1/0&&e.dynamicConfig!==`force-dynamic`&&!e.isDraftMode&&!e.isKnownDynamic&&(e.method===`GET`||e.isAutoHead)&&typeof e.handlerFn==`function`}function X(e){return e.revalidateSeconds!==null&&!e.isDraftMode&&!e.dynamicUsedInHandler&&(e.method===`GET`||e.isAutoHead)&&!e.handlerSetCacheControl}function ze(e){return e.isProduction&&e.revalidateSeconds!==null&&e.revalidateSeconds>0&&e.revalidateSeconds!==1/0&&e.dynamicConfig!==`force-dynamic`&&!e.isDraftMode&&X(e)}function Be(e,t,n){if(!(e&&typeof e==`object`&&`digest`in e))return null;let r=String(e.digest),i=j(r);if(i)return{kind:`redirect`,location:new URL(i.url,t).toString(),statusCode:n?.isAction?303:i.status};let a=se(r);return a?{kind:`status`,statusCode:a.status}:null}function Z(e,t){if(!t)return e;let n=new Headers(e.headers);return l(n,{cacheControl:h}),new Response(e.body,{status:e.status,statusText:e.statusText,headers:n})}function Ve(e){(e.dynamicConfig===`force-static`||e.dynamicConfig===`error`)&&(s(M({draftModeEnabled:e.isDraftMode??(e.draftModeSecret!==void 0&&c(e.request,e.draftModeSecret)),draftModeSecret:e.draftModeSecret,dynamicConfig:e.dynamicConfig,routeKind:`route`,routePattern:e.routePattern})),e.setHeadersAccessPhase?.(`route-handler`))}async function Q(e){e.consumeDynamicUsage(),Ve(e);let t=Fe(e.request,{basePath:e.basePath,i18n:e.i18n,trailingSlash:e.trailingSlash,middlewareHeaders:e.middlewareRequestHeaders,onDynamicAccess(){e.markDynamicUsage()},requestMode:e.dynamicConfig===`force-static`||e.dynamicConfig===`error`?e.dynamicConfig:`auto`,staticGenerationErrorMessage(t){return ue(e.routePattern,t)}}),n=await oe({kind:`route-handler`,routePattern:e.routePattern??new URL(e.request.url).pathname},()=>e.handlerFn(t.request,{params:e.params}));return{dynamicUsedInHandler:e.consumeDynamicUsage(),response:n}}async function He(e){let t=e.setHeadersAccessPhase(`route-handler`);try{let t;try{t=await Q({...e,dynamicConfig:e.handler.dynamic})}finally{await i()}let{dynamicUsedInHandler:n,response:r}=t;B(r);let a=r.headers.has(`cache-control`);n&&K(e.routePattern);let o=e.getAndClearPendingCookies(),s=e.getDraftModeCookieHeader(),c=s??e.initialDraftModeCookie,l=(e.getActiveDraftModeState?.()??e.isDraftMode===!0)||c!=null;s!=null&&K(e.routePattern);let u=e.buildPageCacheTags(e.cleanPathname,e.getCollectedFetchTags());if(X({dynamicUsedInHandler:n,handlerSetCacheControl:a,isAutoHead:e.isAutoHead,isDraftMode:l,method:e.method,revalidateSeconds:e.revalidateSeconds})){let t=e.revalidateSeconds;if(t==null)throw Error(`Expected route handler revalidate seconds`);_e(r,t,e.expireSeconds,u)}if(ze({dynamicConfig:e.handler.dynamic,dynamicUsedInHandler:n,handlerSetCacheControl:a,isAutoHead:e.isAutoHead,isDraftMode:l,isProduction:e.isProduction,method:e.method,revalidateSeconds:e.revalidateSeconds})){ve(r);let t=r.clone(),n=e.isrRouteKey(e.cleanPathname),i=e.revalidateSeconds;if(i==null)throw Error(`Expected route handler cache revalidate seconds`);let a=(async()=>{try{let r=await H(t);await e.isrSet(n,r,i,u,e.expireSeconds),e.isrDebug?.(`route cache written`,n)}catch(e){console.error(`[vinext] ISR route cache write error:`,e)}})();e.executionContext?.waitUntil(a)}return e.clearRequestContext(),Z(z(U(r,{pendingCookies:o,draftCookie:c,isHead:e.isAutoHead}),e.middlewareContext),l)}catch(t){let n=e.getAndClearPendingCookies(),r=e.getDraftModeCookieHeader(),i=r??e.initialDraftModeCookie,a=(e.getActiveDraftModeState?.()??e.isDraftMode===!0)||i!=null;r!=null&&K(e.routePattern);let o=Be(t,e.request.url,{isAction:ae(e.request)});return e.clearRequestContext(),o?o.kind===`redirect`?Z(z(U(new Response(null,{status:o.statusCode,headers:{Location:o.location}}),{pendingCookies:n,draftCookie:i,isHead:e.isAutoHead}),e.middlewareContext),a):Z(z(new Response(null,{status:o.statusCode}),e.middlewareContext),a):(console.error(`[vinext] Route handler error:`,t),e.reportRequestError(t instanceof Error?t:Error(String(t)),{path:e.cleanPathname,method:e.request.method,headers:Object.fromEntries(e.request.headers.entries())},{routerKind:`App Router`,routePath:e.routePattern,routeType:`route`}),Z(z(new Response(null,{status:500}),e.middlewareContext),a))}finally{e.setHeadersAccessPhase(t)}}var Ue=Object.freeze({});function We(e){return e?.value.value&&e.value.value.kind===`APP_ROUTE`?e.value.value:null}async function Ge(e){let t=e.isrRouteKey(e.cleanPathname);try{let n=await e.isrGet(t),r=We(n);if(n?.isExpired)return e.isrDebug?.(`MISS (expired route)`,e.cleanPathname),null;if(r&&!n?.isStale)return e.isrDebug?.(`HIT (route)`,e.cleanPathname),e.clearRequestContext(),z(V(r,{cacheState:`HIT`,cacheControl:n?.value.cacheControl,expireSeconds:e.expireSeconds,isHead:e.isAutoHead,revalidateSeconds:e.revalidateSeconds}),e.middlewareContext);if(n?.isStale&&r){let i=r,a=new URLSearchParams(e.revalidateSearchParams);return e.scheduleBackgroundRegeneration(t,async()=>{await e.runInRevalidationContext(async()=>{e.setNavigationContext({pathname:e.cleanPathname,searchParams:a,params:e.params??Ue});let{dynamicUsedInHandler:n,response:r}=await Q({basePath:e.basePath,consumeDynamicUsage:e.consumeDynamicUsage,dynamicConfig:e.dynamicConfig,handlerFn:e.handlerFn,i18n:e.i18n,trailingSlash:e.trailingSlash,markDynamicUsage:e.markDynamicUsage,params:e.params===null?null:k(e.params),request:new Request(e.requestUrl,{method:`GET`}),routePattern:e.routePattern,setHeadersAccessPhase:e.setHeadersAccessPhase});if(e.setNavigationContext(null),B(r),n){K(e.routePattern),e.isrDebug?.(`route regen skipped (dynamic usage)`,e.cleanPathname);return}let i=e.buildPageCacheTags(e.cleanPathname,e.getCollectedFetchTags()),o=await H(r);await e.isrSet(t,o,e.revalidateSeconds,i,e.expireSeconds),e.isrDebug?.(`route regen complete`,t)})}),e.isrDebug?.(`STALE (route)`,e.cleanPathname),e.clearRequestContext(),z(V(i,{cacheState:`STALE`,cacheControl:n.value.cacheControl,expireSeconds:e.expireSeconds,isHead:e.isAutoHead,revalidateSeconds:e.revalidateSeconds}),e.middlewareContext)}}catch(e){console.error(`[vinext] ISR route cache read error:`,e)}return null}function Ke(e){return typeof e==`function`}function $(e,t,n){return re(e,t,n,`route`)}async function qe(e,t){let n=x({headersContext:M({draftModeEnabled:!1,draftModeSecret:e.draftModeSecret,dynamicConfig:e.dynamicConfig,routeKind:`route`,routePattern:e.routePattern}),executionContext:C(),unstableCacheRevalidation:`foreground`}),s=b(n,async()=>{o(),a($(e.cleanPathname,[],e.routeSegments)),r(e.fetchCacheMode),f(e.dynamicConfig===`force-dynamic`);try{await t()}finally{await i()}});try{await s}finally{await S(n)}}async function Je(e){let{route:t}=e,i=t.routeHandler,a=e.request.method.toUpperCase(),o=Ie(i),s=e.isDevelopment??!1,l=e.isProduction??!0,u=d()??c(e.request,e.draftModeSecret),h=m(),_=h!=null,b=(t,n=!1)=>{let r=U(t,{pendingCookies:g(),draftCookie:h,isHead:n});return e.clearRequestContext(),Z(z(r,e.middlewareContext),u||_)};if(Le(i)&&s&&console.error(`[vinext] Detected default export in route handler `+t.pattern+`. Export a named export for each HTTP method instead.`),!Se(a))return b(new Response(null,{status:400}));let{allowHeaderForOptions:x,handlerFn:S,isAutoHead:w,shouldAutoRespondToOptions:T}=Re(i,a);if(T)return b(new Response(null,{status:204,headers:{Allow:x}}));let E=Ke(S)?S:void 0,D=ie(i);if(r(D),f(i.dynamic===`force-dynamic`),o!==null&&Y({dynamicConfig:i.dynamic,handlerFn:E,isAutoHead:w,isKnownDynamic:De(t.pattern),isDraftMode:u||_,isProduction:l,method:a,revalidateSeconds:o})&&E){let r=await Ge({basePath:e.basePath,buildPageCacheTags(e,n){return $(e,n,t.routeSegments)},cleanPathname:e.cleanPathname,clearRequestContext:e.clearRequestContext,consumeDynamicUsage:p,dynamicConfig:i.dynamic,getCollectedFetchTags:n,handlerFn:E,i18n:e.i18n,trailingSlash:e.trailingSlash,isAutoHead:w,isrDebug:e.isrDebug,isrGet:e.isrGet,isrRouteKey:e.isrRouteKey,isrSet:e.isrSet,markDynamicUsage:v,middlewareContext:e.middlewareContext,params:e.params,requestUrl:e.request.url,revalidateSearchParams:e.searchParams,expireSeconds:e.expireSeconds,revalidateSeconds:o,routePattern:t.pattern,runInRevalidationContext(n){return qe({cleanPathname:e.cleanPathname,draftModeSecret:e.draftModeSecret,dynamicConfig:i.dynamic,fetchCacheMode:D,routePattern:t.pattern,routeSegments:t.routeSegments},n)},scheduleBackgroundRegeneration(n,r){e.scheduleBackgroundRegeneration(n,r,{routerKind:`App Router`,routePath:t.pattern,routeType:`route`})},setHeadersAccessPhase:y,setNavigationContext:A});if(r)return r}return E?He({basePath:e.basePath,buildPageCacheTags(e,n){return $(e,n,t.routeSegments)},cleanPathname:e.cleanPathname,clearRequestContext:e.clearRequestContext,consumeDynamicUsage:p,draftModeSecret:e.draftModeSecret,executionContext:C(),getAndClearPendingCookies:g,getCollectedFetchTags:n,getActiveDraftModeState:d,getDraftModeCookieHeader:m,handler:i,handlerFn:E,i18n:e.i18n,trailingSlash:e.trailingSlash,isAutoHead:w,initialDraftModeCookie:h,isDraftMode:u,isProduction:l,isrDebug:e.isrDebug,isrRouteKey:e.isrRouteKey,isrSet:e.isrSet,markDynamicUsage:v,method:a,middlewareContext:e.middlewareContext,middlewareRequestHeaders:e.middlewareRequestHeaders,params:e.params===null?null:k(e.params),reportRequestError(e,t,n){te(e,t,n)},request:e.request,expireSeconds:e.expireSeconds,revalidateSeconds:o,routePattern:t.pattern,setHeadersAccessPhase:y}):b(new Response(null,{status:405}))}export{Je as dispatchAppRouteHandler};
1
+ import{o as e}from"./rolldown-runtime-DaDcL9Zw.js";import{n as t}from"./framework~index~layout~layout~page~page~page~layout~page~app-page-cache-render~app-page-cac~nvd6h53m-ydvR7YSg.js";import{C as n,D as r,M as i,O as a,S as o,Tt as s,_t as c,a as l,c as u,ft as d,k as f,lt as p,mt as m,n as h,pt as g,t as _,vt as v,wt as y}from"./cache-headers-lY59goLh.js";import{o as b,r as x,t as S}from"./unified-request-context-CgIMz2dD.js";import{t as C}from"./request-context-C1ZJzkex.js";import{a as w,i as T,o as E,r as D,t as O}from"./server-DwVU6UyP.js";import{t as ee}from"./base-path-Cmiu3HvG.js";import{t as te}from"./instrumentation-BV3gg-L-.js";import{A as ne,M as k,N as A,T as j,b as re,n as ie,s as ae,v as oe,w as se}from"../../index.js";import{n as ce,t as le}from"./isr-decision-BOA4L6nr.js";import{createStaticGenerationHeadersContext as M,getAppRouteStaticGenerationErrorMessage as ue}from"./app-static-generation-BX8cz43B.js";var N=e(t(),1),de=Symbol.for(`vinext.appRouterContext`),fe=Symbol.for(`vinext.globalLayoutRouterContext`),pe=Symbol.for(`vinext.layoutRouterContext`),me=Symbol.for(`vinext.missingSlotContext`),he=Symbol.for(`vinext.templateContext`);function P(e,t){if(typeof N.createContext!=`function`)return null;let n=globalThis;return n[e]||(n[e]=N.createContext(t)),n[e]??null}P(de,null),P(fe,null),P(pe,null),P(me,new Set),P(he,null);function F(e,t){if(e===void 0||e===``)return t;let n=Number(e);return!Number.isFinite(n)||n<0?t:n*1e3}F(`0`,3e4),F(`300`,3e4);function I(e){let t=e.indexOf(`=`);if(t<=0)return null;let n=e.indexOf(`;`),r=n===-1?t:Math.min(t,n);return e.slice(0,r)}var L=`NextResponse.rewrite() was used in a app route handler, this is not currently supported. Please remove the invocation to continue.`,R=`NextResponse.next() was used in a app route handler, this is not supported. See here for more info: https://nextjs.org/docs/messages/next-response-next-in-app-route-handler`;function ge(e){for(let t of e.keys())if(t.startsWith(`x-middleware-`))return!0;return!1}function z(e,t){if(!t.headers&&t.status==null)return e;let n=new Headers(e.headers);return u(n,t.headers),new Response(e.body,{status:t.status??e.status,statusText:e.statusText,headers:n})}function B(e){if(e.headers.has(`x-middleware-rewrite`))throw Error(L);if(e.headers.get(`x-middleware-next`)===`1`)throw Error(R)}function V(e,t){let n=new Headers;for(let[t,r]of Object.entries(e.headers))if(Array.isArray(r))for(let e of r)n.append(t,e);else n.set(t,r);_(n,t.cacheState);let{cacheControl:r}=ce({cacheState:t.cacheState,kind:`app-route`,revalidateSeconds:t.revalidateSeconds,expireSeconds:t.expireSeconds,cacheControlMeta:t.cacheControl});return l(n,{cacheControl:r}),new Response(t.isHead?null:e.body,{status:e.status,headers:n})}function _e(e,t,n,r){l(e.headers,{cacheControl:le(t,n),tags:r})}function ve(e){_(e.headers,`MISS`)}function ye(e,t){let n=t.toLowerCase(),r=e.indexOf(`;`);for(;r!==-1;){let t=r+1;for(;t<e.length&&e[t]===` `;)t++;let i=e.indexOf(`;`,t),a=i===-1?e.length:i,o=e.indexOf(`=`,t),s=o===-1||o>a?a:o;if(e.slice(t,s).trim().toLowerCase()===n)return!0;r=i}return!1}function be(e){return ye(e,`Path`)?e:`${e.replace(/;\s*$/,``)}; Path=/`}function xe(e,t){if(t.length===0)return;let n=e.getSetCookie(),r=new Set;for(let e of n){let t=I(e);t&&r.add(t)}let i=new Map,a=[];for(let e of t){let t=I(e);if(!t){a.push(e);continue}r.has(t)||i.set(t,e)}e.delete(`Set-Cookie`);for(let t of a)e.append(`Set-Cookie`,t);for(let t of i.values())e.append(`Set-Cookie`,t);for(let t of n)e.append(`Set-Cookie`,be(t))}async function H(e){let t=await e.arrayBuffer(),n={};e.headers.forEach((e,t)=>{t===`set-cookie`||t===`x-vinext-cache`||t===`x-nextjs-cache`||t===`cache-control`||t.startsWith(`x-middleware-`)||(n[t]=e)});let r=e.headers.getSetCookie?.()??[];return r.length>0&&(n[`set-cookie`]=r),{kind:`APP_ROUTE`,body:t,status:e.status,headers:n}}function U(e,t){let{pendingCookies:n,draftCookie:r,isHead:i}=t;if(n.length===0&&!r&&!i&&!ge(e.headers))return e;let a=new Headers(e.headers);return ne(a),xe(a,n),r&&a.append(`Set-Cookie`,r),new Response(i?null:e.body,{status:e.status,statusText:e.statusText,headers:a})}var W=[`GET`,`HEAD`,`POST`,`PUT`,`DELETE`,`PATCH`,`OPTIONS`];function Se(e){return W.includes(e)}function Ce(e){let t=W.filter(t=>typeof e[t]==`function`);return t.includes(`GET`)&&!t.includes(`HEAD`)&&t.push(`HEAD`),t}function we(e){let t=new Set(e);return t.add(`OPTIONS`),Array.from(t).sort().join(`, `)}var Te=Symbol.for(`vinext.appRouteHandlerRuntime.knownDynamicHandlers`),Ee=globalThis,G=Ee[Te]??=new Set;function De(e){return G.has(e)}function K(e){G.add(e)}function q(e,t){return typeof e==`function`?e.bind(t):e}function Oe(e){return!e.basePath&&!e.i18n&&!e.trailingSlash?null:{basePath:e.basePath,i18n:e.i18n??void 0,trailingSlash:e.trailingSlash}}function ke(e,t){let n=e.method,r=n!==`GET`&&n!==`HEAD`,i={method:n,headers:t,cache:e.cache,credentials:e.credentials,integrity:e.integrity,keepalive:e.keepalive,mode:e.mode,redirect:e.redirect,referrer:e.referrer,referrerPolicy:e.referrerPolicy,signal:e.signal};return r&&e.body&&(i.body=e.body,i.duplex=`half`),new Request(e.url,i)}function J(e){let t=new URL(e);return t.protocol=`http:`,t.host=`localhost:3000`,t.username=``,t.password=``,t.search=``,t.hash=``,t.href}function Ae(){return new Response(null).arrayBuffer()}function je(){return new Response(null).blob()}function Me(){return new Response(null).formData()}function Ne(){return new Response(null).json()}function Pe(){return new Response(null).text()}function Fe(e,t={}){let n=!1,r=t.requestMode??`auto`,i=Oe(t),a=e=>{n=!0,t.onDynamicAccess?.(e)},o=e=>new Proxy(e,{get(e,t){switch(t){case`search`:case`searchParams`:case`url`:case`href`:case`toJSON`:case`toString`:case`origin`:return a(`nextUrl.${String(t)}`),q(Reflect.get(e,t,e),e);case`clone`:return()=>o(e.clone());default:return q(Reflect.get(e,t,e),e)}}}),s=e=>{let t=new URLSearchParams,n=J(e.href);return new Proxy(e,{get(e,r){switch(r){case`search`:return``;case`searchParams`:return t;case`href`:return n;case`url`:return;case`toJSON`:case`toString`:return()=>n;case`clone`:return()=>s(e.clone());default:return q(Reflect.get(e,r,e),e)}}})},c=e=>{throw Error(t.staticGenerationErrorMessage?.(e)??`Route handler with \`dynamic = "error"\` used ${e}.`)},l=e=>new Proxy(e,{get(e,t){switch(t){case`search`:case`searchParams`:case`url`:case`href`:case`toJSON`:case`toString`:case`origin`:return c(`nextUrl.${String(t)}`);case`clone`:return()=>l(e.clone());default:return q(Reflect.get(e,t,e),e)}}}),u=e=>{let n=e;if(t.basePath){let r=new URL(e.url),i=ee(r.pathname,t.basePath);if(i!==r.pathname){r.pathname=i;let t=e.body&&!e.bodyUsed?e.clone():e;n=new Request(r,t)}}let d=t.middlewareHeaders?E(n.headers,t.middlewareHeaders):null,f=d?ke(n,d):n,p=f instanceof O?f:new O(f,{nextConfig:i??void 0}),m=null,h=null,g=null,_=null,v=null;return new Proxy(p,{get(e,t){if(r===`force-static`)switch(t){case`nextUrl`:return h??=s(e.nextUrl),h;case`headers`:return _??=w(new Headers),_;case`cookies`:return v??=T(new D(new Headers)),v;case`url`:return J(e.nextUrl.href);case`ip`:case`geo`:return;case`body`:return null;case`arrayBuffer`:return Ae;case`blob`:return je;case`formData`:return Me;case`json`:return Ne;case`text`:return Pe;case`clone`:return()=>u(e.clone());default:return q(Reflect.get(e,t,e),e)}if(r===`error`)switch(t){case`nextUrl`:return g??=l(e.nextUrl),g;case`headers`:case`cookies`:case`url`:case`ip`:case`geo`:case`body`:case`blob`:case`json`:case`text`:case`arrayBuffer`:case`formData`:return c(`request.${String(t)}`);case`clone`:return()=>u(e.clone());default:return q(Reflect.get(e,t,e),e)}switch(t){case`nextUrl`:return m??=o(e.nextUrl),m;case`headers`:case`cookies`:case`ip`:case`geo`:case`url`:case`body`:case`blob`:case`json`:case`text`:case`arrayBuffer`:case`formData`:return a(`request.${String(t)}`),q(Reflect.get(e,t,e),e);case`clone`:return()=>u(e.clone());default:return q(Reflect.get(e,t,e),e)}}})};return{request:u(e),didAccessDynamicRequest(){return n}}}function Ie(e){let{revalidate:t}=e;return t===!1?1/0:typeof t!=`number`||!Number.isFinite(t)||t<0?null:t}function Le(e){return typeof e.default==`function`}function Re(e,t){let n=Ce(e),r=we(n),i=t===`OPTIONS`&&typeof e.OPTIONS!=`function`,a=typeof e[t]==`function`?e[t]:void 0,o=!1;return t===`HEAD`&&typeof e.HEAD!=`function`&&typeof e.GET==`function`&&(a=e.GET,o=!0),{allowHeaderForOptions:r,exportedMethods:n,handlerFn:a,isAutoHead:o,shouldAutoRespondToOptions:i}}function Y(e){return e.isProduction&&e.revalidateSeconds!==null&&e.revalidateSeconds>0&&e.revalidateSeconds!==1/0&&e.dynamicConfig!==`force-dynamic`&&!e.isDraftMode&&!e.isKnownDynamic&&(e.method===`GET`||e.isAutoHead)&&typeof e.handlerFn==`function`}function X(e){return e.revalidateSeconds!==null&&!e.isDraftMode&&!e.dynamicUsedInHandler&&(e.method===`GET`||e.isAutoHead)&&!e.handlerSetCacheControl}function ze(e){return e.isProduction&&e.revalidateSeconds!==null&&e.revalidateSeconds>0&&e.revalidateSeconds!==1/0&&e.dynamicConfig!==`force-dynamic`&&!e.isDraftMode&&X(e)}function Be(e,t,n){if(!(e&&typeof e==`object`&&`digest`in e))return null;let r=String(e.digest),i=j(r);if(i)return{kind:`redirect`,location:new URL(i.url,t).toString(),statusCode:n?.isAction?303:i.status};let a=se(r);return a?{kind:`status`,statusCode:a.status}:null}function Z(e,t){if(!t)return e;let n=new Headers(e.headers);return l(n,{cacheControl:h}),new Response(e.body,{status:e.status,statusText:e.statusText,headers:n})}function Ve(e){(e.dynamicConfig===`force-static`||e.dynamicConfig===`error`)&&(s(M({draftModeEnabled:e.isDraftMode??(e.draftModeSecret!==void 0&&c(e.request,e.draftModeSecret)),draftModeSecret:e.draftModeSecret,dynamicConfig:e.dynamicConfig,routeKind:`route`,routePattern:e.routePattern})),e.setHeadersAccessPhase?.(`route-handler`))}async function Q(e){e.consumeDynamicUsage(),Ve(e);let t=Fe(e.request,{basePath:e.basePath,i18n:e.i18n,trailingSlash:e.trailingSlash,middlewareHeaders:e.middlewareRequestHeaders,onDynamicAccess(){e.markDynamicUsage()},requestMode:e.dynamicConfig===`force-static`||e.dynamicConfig===`error`?e.dynamicConfig:`auto`,staticGenerationErrorMessage(t){return ue(e.routePattern,t)}}),n=await oe({kind:`route-handler`,routePattern:e.routePattern??new URL(e.request.url).pathname},()=>e.handlerFn(t.request,{params:e.params}));return{dynamicUsedInHandler:e.consumeDynamicUsage(),response:n}}async function He(e){let t=e.setHeadersAccessPhase(`route-handler`);try{let t;try{t=await Q({...e,dynamicConfig:e.handler.dynamic})}finally{await i()}let{dynamicUsedInHandler:n,response:r}=t;B(r);let a=r.headers.has(`cache-control`);n&&K(e.routePattern);let o=e.getAndClearPendingCookies(),s=e.getDraftModeCookieHeader(),c=s??e.initialDraftModeCookie,l=(e.getActiveDraftModeState?.()??e.isDraftMode===!0)||c!=null;s!=null&&K(e.routePattern);let u=e.buildPageCacheTags(e.cleanPathname,e.getCollectedFetchTags());if(X({dynamicUsedInHandler:n,handlerSetCacheControl:a,isAutoHead:e.isAutoHead,isDraftMode:l,method:e.method,revalidateSeconds:e.revalidateSeconds})){let t=e.revalidateSeconds;if(t==null)throw Error(`Expected route handler revalidate seconds`);_e(r,t,e.expireSeconds,u)}if(ze({dynamicConfig:e.handler.dynamic,dynamicUsedInHandler:n,handlerSetCacheControl:a,isAutoHead:e.isAutoHead,isDraftMode:l,isProduction:e.isProduction,method:e.method,revalidateSeconds:e.revalidateSeconds})){ve(r);let t=r.clone(),n=e.isrRouteKey(e.cleanPathname),i=e.revalidateSeconds;if(i==null)throw Error(`Expected route handler cache revalidate seconds`);let a=(async()=>{try{let r=await H(t);await e.isrSet(n,r,i,u,e.expireSeconds),e.isrDebug?.(`route cache written`,n)}catch(e){console.error(`[vinext] ISR route cache write error:`,e)}})();e.executionContext?.waitUntil(a)}return e.clearRequestContext(),Z(z(U(r,{pendingCookies:o,draftCookie:c,isHead:e.isAutoHead}),e.middlewareContext),l)}catch(t){let n=e.getAndClearPendingCookies(),r=e.getDraftModeCookieHeader(),i=r??e.initialDraftModeCookie,a=(e.getActiveDraftModeState?.()??e.isDraftMode===!0)||i!=null;r!=null&&K(e.routePattern);let o=Be(t,e.request.url,{isAction:ae(e.request)});return e.clearRequestContext(),o?o.kind===`redirect`?Z(z(U(new Response(null,{status:o.statusCode,headers:{Location:o.location}}),{pendingCookies:n,draftCookie:i,isHead:e.isAutoHead}),e.middlewareContext),a):Z(z(new Response(null,{status:o.statusCode}),e.middlewareContext),a):(console.error(`[vinext] Route handler error:`,t),e.reportRequestError(t instanceof Error?t:Error(String(t)),{path:e.cleanPathname,method:e.request.method,headers:Object.fromEntries(e.request.headers.entries())},{routerKind:`App Router`,routePath:e.routePattern,routeType:`route`}),Z(z(new Response(null,{status:500}),e.middlewareContext),a))}finally{e.setHeadersAccessPhase(t)}}var Ue=Object.freeze({});function We(e){return e?.value.value&&e.value.value.kind===`APP_ROUTE`?e.value.value:null}async function Ge(e){let t=e.isrRouteKey(e.cleanPathname);try{let n=await e.isrGet(t),r=We(n);if(n?.isExpired)return e.isrDebug?.(`MISS (expired route)`,e.cleanPathname),null;if(r&&!n?.isStale)return e.isrDebug?.(`HIT (route)`,e.cleanPathname),e.clearRequestContext(),z(V(r,{cacheState:`HIT`,cacheControl:n?.value.cacheControl,expireSeconds:e.expireSeconds,isHead:e.isAutoHead,revalidateSeconds:e.revalidateSeconds}),e.middlewareContext);if(n?.isStale&&r){let i=r,a=new URLSearchParams(e.revalidateSearchParams);return e.scheduleBackgroundRegeneration(t,async()=>{await e.runInRevalidationContext(async()=>{e.setNavigationContext({pathname:e.cleanPathname,searchParams:a,params:e.params??Ue});let{dynamicUsedInHandler:n,response:r}=await Q({basePath:e.basePath,consumeDynamicUsage:e.consumeDynamicUsage,dynamicConfig:e.dynamicConfig,handlerFn:e.handlerFn,i18n:e.i18n,trailingSlash:e.trailingSlash,markDynamicUsage:e.markDynamicUsage,params:e.params===null?null:k(e.params),request:new Request(e.requestUrl,{method:`GET`}),routePattern:e.routePattern,setHeadersAccessPhase:e.setHeadersAccessPhase});if(e.setNavigationContext(null),B(r),n){K(e.routePattern),e.isrDebug?.(`route regen skipped (dynamic usage)`,e.cleanPathname);return}let i=e.buildPageCacheTags(e.cleanPathname,e.getCollectedFetchTags()),o=await H(r);await e.isrSet(t,o,e.revalidateSeconds,i,e.expireSeconds),e.isrDebug?.(`route regen complete`,t)})}),e.isrDebug?.(`STALE (route)`,e.cleanPathname),e.clearRequestContext(),z(V(i,{cacheState:`STALE`,cacheControl:n.value.cacheControl,expireSeconds:e.expireSeconds,isHead:e.isAutoHead,revalidateSeconds:e.revalidateSeconds}),e.middlewareContext)}}catch(e){console.error(`[vinext] ISR route cache read error:`,e)}return null}function Ke(e){return typeof e==`function`}function $(e,t,n){return re(e,t,n,`route`)}async function qe(e,t){let n=x({headersContext:M({draftModeEnabled:!1,draftModeSecret:e.draftModeSecret,dynamicConfig:e.dynamicConfig,routeKind:`route`,routePattern:e.routePattern}),executionContext:C(),unstableCacheRevalidation:`foreground`}),s=b(n,async()=>{o(),a($(e.cleanPathname,[],e.routeSegments)),r(e.fetchCacheMode),f(e.dynamicConfig===`force-dynamic`);try{await t()}finally{await i()}});try{await s}finally{await S(n)}}async function Je(e){let{route:t}=e,i=t.routeHandler,a=e.request.method.toUpperCase(),o=Ie(i),s=e.isDevelopment??!1,l=e.isProduction??!0,u=d()??c(e.request,e.draftModeSecret),h=m(),_=h!=null,b=(t,n=!1)=>{let r=U(t,{pendingCookies:g(),draftCookie:h,isHead:n});return e.clearRequestContext(),Z(z(r,e.middlewareContext),u||_)};if(Le(i)&&s&&console.error(`[vinext] Detected default export in route handler `+t.pattern+`. Export a named export for each HTTP method instead.`),!Se(a))return b(new Response(null,{status:400}));let{allowHeaderForOptions:x,handlerFn:S,isAutoHead:w,shouldAutoRespondToOptions:T}=Re(i,a);if(T)return b(new Response(null,{status:204,headers:{Allow:x}}));let E=Ke(S)?S:void 0,D=ie(i);if(r(D),f(i.dynamic===`force-dynamic`),o!==null&&Y({dynamicConfig:i.dynamic,handlerFn:E,isAutoHead:w,isKnownDynamic:De(t.pattern),isDraftMode:u||_,isProduction:l,method:a,revalidateSeconds:o})&&E){let r=await Ge({basePath:e.basePath,buildPageCacheTags(e,n){return $(e,n,t.routeSegments)},cleanPathname:e.cleanPathname,clearRequestContext:e.clearRequestContext,consumeDynamicUsage:p,dynamicConfig:i.dynamic,getCollectedFetchTags:n,handlerFn:E,i18n:e.i18n,trailingSlash:e.trailingSlash,isAutoHead:w,isrDebug:e.isrDebug,isrGet:e.isrGet,isrRouteKey:e.isrRouteKey,isrSet:e.isrSet,markDynamicUsage:v,middlewareContext:e.middlewareContext,params:e.params,requestUrl:e.request.url,revalidateSearchParams:e.searchParams,expireSeconds:e.expireSeconds,revalidateSeconds:o,routePattern:t.pattern,runInRevalidationContext(n){return qe({cleanPathname:e.cleanPathname,draftModeSecret:e.draftModeSecret,dynamicConfig:i.dynamic,fetchCacheMode:D,routePattern:t.pattern,routeSegments:t.routeSegments},n)},scheduleBackgroundRegeneration(n,r){e.scheduleBackgroundRegeneration(n,r,{routerKind:`App Router`,routePath:t.pattern,routeType:`route`})},setHeadersAccessPhase:y,setNavigationContext:A});if(r)return r}return E?He({basePath:e.basePath,buildPageCacheTags(e,n){return $(e,n,t.routeSegments)},cleanPathname:e.cleanPathname,clearRequestContext:e.clearRequestContext,consumeDynamicUsage:p,draftModeSecret:e.draftModeSecret,executionContext:C(),getAndClearPendingCookies:g,getCollectedFetchTags:n,getActiveDraftModeState:d,getDraftModeCookieHeader:m,handler:i,handlerFn:E,i18n:e.i18n,trailingSlash:e.trailingSlash,isAutoHead:w,initialDraftModeCookie:h,isDraftMode:u,isProduction:l,isrDebug:e.isrDebug,isrRouteKey:e.isrRouteKey,isrSet:e.isrSet,markDynamicUsage:v,method:a,middlewareContext:e.middlewareContext,middlewareRequestHeaders:e.middlewareRequestHeaders,params:e.params===null?null:k(e.params),reportRequestError(e,t,n){te(e,t,n)},request:e.request,expireSeconds:e.expireSeconds,revalidateSeconds:o,routePattern:t.pattern,setHeadersAccessPhase:y}):b(new Response(null,{status:405}))}export{Je as dispatchAppRouteHandler};