@hopeplayer/core 1.0.15 → 1.0.17

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 (130) hide show
  1. package/README.md +24 -14
  2. package/dist/HopePlayerElement.d.ts +37 -0
  3. package/dist/HopePlayerElement.d.ts.map +1 -1
  4. package/dist/chunks/adTriggers-4SueRFgK.js +415 -0
  5. package/dist/chunks/adTriggers-4SueRFgK.js.map +1 -0
  6. package/dist/chunks/{index-BCMVXNL0.js → ads-DPL7m9PV.js} +135 -158
  7. package/dist/chunks/ads-DPL7m9PV.js.map +1 -0
  8. package/dist/chunks/{index-BeJNpAyx.js → audio-LkYgd5Wq.js} +7 -7
  9. package/dist/chunks/audio-LkYgd5Wq.js.map +1 -0
  10. package/dist/chunks/{ScratchSound-0XKHUcJK.js → audioScratchSound-7XkwCCDm.js} +1 -1
  11. package/dist/chunks/audioScratchSound-7XkwCCDm.js.map +1 -0
  12. package/dist/chunks/cast-DCAT2agI.js +387 -0
  13. package/dist/chunks/cast-DCAT2agI.js.map +1 -0
  14. package/dist/chunks/{index-rENB3n9O.js → countdownScreen-CI-u6jjA.js} +1 -1
  15. package/dist/chunks/countdownScreen-CI-u6jjA.js.map +1 -0
  16. package/dist/chunks/{index-Q8FMOHj0.js → dai-B9Tth1Iv.js} +1 -1
  17. package/dist/chunks/dai-B9Tth1Iv.js.map +1 -0
  18. package/dist/chunks/{index-DCXX1ZJG.js → debugPanel-Bnc_7GOn.js} +1 -1
  19. package/dist/chunks/debugPanel-Bnc_7GOn.js.map +1 -0
  20. package/dist/chunks/{index-DXWK4EFa.js → dubbing-kNMPpyHl.js} +1 -1
  21. package/dist/chunks/dubbing-kNMPpyHl.js.map +1 -0
  22. package/dist/chunks/{index-BBmuCtKu.js → geoChecker-BRtvHwI-.js} +1 -1
  23. package/dist/chunks/geoChecker-BRtvHwI-.js.map +1 -0
  24. package/dist/chunks/{index-Ca8hocby.js → gesture-BzPCgi87.js} +1 -1
  25. package/dist/chunks/gesture-BzPCgi87.js.map +1 -0
  26. package/dist/chunks/gpt-CGXHTG_H.js +18 -0
  27. package/dist/chunks/gpt-CGXHTG_H.js.map +1 -0
  28. package/dist/chunks/{index-3QALpwsf.js → inViewAutoplay-CRJe7GA4.js} +1 -1
  29. package/dist/chunks/inViewAutoplay-CRJe7GA4.js.map +1 -0
  30. package/dist/chunks/{index-7IBf8Y-R.js → liveWallClock-ChUTtzLD.js} +1 -1
  31. package/dist/chunks/liveWallClock-ChUTtzLD.js.map +1 -0
  32. package/dist/chunks/{index-f0vSgRIK.js → loopSection-CvF4l5uf.js} +1 -1
  33. package/dist/chunks/loopSection-CvF4l5uf.js.map +1 -0
  34. package/dist/chunks/{index-DRlQC-ev.js → markers-DE4O8xbw.js} +2 -2
  35. package/dist/chunks/markers-DE4O8xbw.js.map +1 -0
  36. package/dist/chunks/{index-CaMVTgh0.js → pauseAd-BQQe21X4.js} +55 -68
  37. package/dist/chunks/pauseAd-BQQe21X4.js.map +1 -0
  38. package/dist/chunks/{index-w7pACyTw.js → player-C886oKP-.js} +726 -391
  39. package/dist/chunks/player-C886oKP-.js.map +1 -0
  40. package/dist/chunks/{index-DpUZXNJS.js → playlist-CI3mRZjo.js} +2 -2
  41. package/dist/chunks/playlist-CI3mRZjo.js.map +1 -0
  42. package/dist/chunks/{VideoPrebid-CpckFzSq.js → prebid-CRY3i2OT.js} +1 -1
  43. package/dist/chunks/prebid-CRY3i2OT.js.map +1 -0
  44. package/dist/chunks/{index-DT8-oMPm.js → qrResume-BNy8XCp_.js} +1 -1
  45. package/dist/chunks/qrResume-BNy8XCp_.js.map +1 -0
  46. package/dist/chunks/redirectScreen-CJ3q9OX4.js +208 -0
  47. package/dist/chunks/redirectScreen-CJ3q9OX4.js.map +1 -0
  48. package/dist/chunks/rewardedUnlock-EyGMB9PK.js +264 -0
  49. package/dist/chunks/rewardedUnlock-EyGMB9PK.js.map +1 -0
  50. package/dist/chunks/{index-BOoNcKeR.js → segments-C2HKU6XK.js} +2 -2
  51. package/dist/chunks/segments-C2HKU6XK.js.map +1 -0
  52. package/dist/chunks/{index-D5P-LWbg.js → sponsorship-DyFwGmEb.js} +20 -20
  53. package/dist/chunks/sponsorship-DyFwGmEb.js.map +1 -0
  54. package/dist/chunks/{index-BvoB2O1p.js → spriteThumbnails-D0NQ5CCp.js} +2 -2
  55. package/dist/chunks/spriteThumbnails-D0NQ5CCp.js.map +1 -0
  56. package/dist/chunks/{index-DGtpFgHV.js → statsPanel-DSClIwA3.js} +1 -1
  57. package/dist/chunks/statsPanel-DSClIwA3.js.map +1 -0
  58. package/dist/chunks/{index-CDDke5rz.js → sticky-D_eLCNFk.js} +1 -1
  59. package/dist/chunks/sticky-D_eLCNFk.js.map +1 -0
  60. package/dist/chunks/{index-ClQg_X1N.js → story-D5Got6-6.js} +2 -2
  61. package/dist/chunks/{index-ClQg_X1N.js.map → story-D5Got6-6.js.map} +1 -1
  62. package/dist/chunks/{index-C5oGMHF_.js → tapGestures-DrC42DiI.js} +1 -1
  63. package/dist/chunks/tapGestures-DrC42DiI.js.map +1 -0
  64. package/dist/hls/SourceManager.d.ts +8 -0
  65. package/dist/hls/SourceManager.d.ts.map +1 -1
  66. package/dist/hls/sourceGroups.d.ts +19 -0
  67. package/dist/hls/sourceGroups.d.ts.map +1 -0
  68. package/dist/hope-player.js +1 -1
  69. package/dist/i18n/locales/en.d.ts.map +1 -1
  70. package/dist/i18n/locales/tr.d.ts.map +1 -1
  71. package/dist/i18n/types.d.ts +12 -0
  72. package/dist/i18n/types.d.ts.map +1 -1
  73. package/dist/index.d.ts +1 -1
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/plugins/ad-triggers/AdTriggers.d.ts +99 -0
  76. package/dist/plugins/ad-triggers/AdTriggers.d.ts.map +1 -0
  77. package/dist/plugins/ad-triggers/index.d.ts +7 -0
  78. package/dist/plugins/ad-triggers/index.d.ts.map +1 -0
  79. package/dist/plugins/ads/AdsController.d.ts +8 -0
  80. package/dist/plugins/ads/AdsController.d.ts.map +1 -1
  81. package/dist/plugins/ads/generateVastUrl.d.ts +10 -0
  82. package/dist/plugins/ads/generateVastUrl.d.ts.map +1 -1
  83. package/dist/plugins/cast/CastController.d.ts +107 -0
  84. package/dist/plugins/cast/CastController.d.ts.map +1 -0
  85. package/dist/plugins/cast/RemoteMediaProxy.d.ts +41 -0
  86. package/dist/plugins/cast/RemoteMediaProxy.d.ts.map +1 -0
  87. package/dist/plugins/cast/castSdk.d.ts +160 -0
  88. package/dist/plugins/cast/castSdk.d.ts.map +1 -0
  89. package/dist/plugins/cast/index.d.ts +7 -0
  90. package/dist/plugins/cast/index.d.ts.map +1 -0
  91. package/dist/plugins/pause-ad/loadGpt.d.ts +2 -0
  92. package/dist/plugins/pause-ad/loadGpt.d.ts.map +1 -1
  93. package/dist/plugins/redirect-screen/RedirectScreen.d.ts +26 -3
  94. package/dist/plugins/redirect-screen/RedirectScreen.d.ts.map +1 -1
  95. package/dist/plugins/rewarded/RewardedUnlock.d.ts +2 -5
  96. package/dist/plugins/rewarded/RewardedUnlock.d.ts.map +1 -1
  97. package/dist/plugins/rewarded/gpt.d.ts +6 -2
  98. package/dist/plugins/rewarded/gpt.d.ts.map +1 -1
  99. package/dist/plugins/sponsorship/SponsorshipLayer.d.ts.map +1 -1
  100. package/dist/types/index.d.ts +308 -3
  101. package/dist/types/index.d.ts.map +1 -1
  102. package/package.json +3 -1
  103. package/dist/chunks/ScratchSound-0XKHUcJK.js.map +0 -1
  104. package/dist/chunks/VideoPrebid-CpckFzSq.js.map +0 -1
  105. package/dist/chunks/index-3QALpwsf.js.map +0 -1
  106. package/dist/chunks/index-7IBf8Y-R.js.map +0 -1
  107. package/dist/chunks/index-BBmuCtKu.js.map +0 -1
  108. package/dist/chunks/index-BCMVXNL0.js.map +0 -1
  109. package/dist/chunks/index-BOoNcKeR.js.map +0 -1
  110. package/dist/chunks/index-BeJNpAyx.js.map +0 -1
  111. package/dist/chunks/index-BvoB2O1p.js.map +0 -1
  112. package/dist/chunks/index-C5oGMHF_.js.map +0 -1
  113. package/dist/chunks/index-CDDke5rz.js.map +0 -1
  114. package/dist/chunks/index-Ca8hocby.js.map +0 -1
  115. package/dist/chunks/index-CaMVTgh0.js.map +0 -1
  116. package/dist/chunks/index-D5P-LWbg.js.map +0 -1
  117. package/dist/chunks/index-D6r-BGAV.js +0 -77
  118. package/dist/chunks/index-D6r-BGAV.js.map +0 -1
  119. package/dist/chunks/index-DCXX1ZJG.js.map +0 -1
  120. package/dist/chunks/index-DGtpFgHV.js.map +0 -1
  121. package/dist/chunks/index-DRlQC-ev.js.map +0 -1
  122. package/dist/chunks/index-DT8-oMPm.js.map +0 -1
  123. package/dist/chunks/index-DXWK4EFa.js.map +0 -1
  124. package/dist/chunks/index-DpUZXNJS.js.map +0 -1
  125. package/dist/chunks/index-Q8FMOHj0.js.map +0 -1
  126. package/dist/chunks/index-TkG8IO6q.js +0 -239
  127. package/dist/chunks/index-TkG8IO6q.js.map +0 -1
  128. package/dist/chunks/index-f0vSgRIK.js.map +0 -1
  129. package/dist/chunks/index-rENB3n9O.js.map +0 -1
  130. package/dist/chunks/index-w7pACyTw.js.map +0 -1
@@ -1,22 +1,22 @@
1
- var we = Object.defineProperty;
2
- var Ee = (n, t, e) => t in n ? we(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e;
3
- var s = (n, t, e) => Ee(n, typeof t != "symbol" ? t + "" : t, e);
4
- const Ce = '/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial}}}@layer theme{:root,:host{--hp-font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--hp-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--hp-color-black:#000;--hp-color-white:#fff;--hp-spacing:.25rem;--hp-container-xs:20rem;--hp-text-xs:.75rem;--hp-text-xs--line-height:calc(1 / .75);--hp-text-sm:.875rem;--hp-text-sm--line-height:calc(1.25 / .875);--hp-text-base:1rem;--hp-text-base--line-height: 1.5 ;--hp-text-lg:1.125rem;--hp-text-lg--line-height:calc(1.75 / 1.125);--hp-text-xl:1.25rem;--hp-text-xl--line-height:calc(1.75 / 1.25);--hp-text-2xl:1.5rem;--hp-text-2xl--line-height:calc(2 / 1.5);--hp-font-weight-medium:500;--hp-font-weight-semibold:600;--hp-radius-lg:.5rem;--hp-animate-spin:spin 1s linear infinite;--hp-aspect-video:16 / 9;--hp-default-transition-duration:.15s;--hp-default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--hp-default-font-family:var(--hp-font-sans);--hp-default-mono-font-family:var(--hp-font-mono);--hp-color-accent:#fff;--hp-color-on-accent:#0a0a0a;--hp-color-surface:#0a0a0a;--hp-color-surface-elev:#1a1a1a;--hp-color-on-surface:#fff;--hp-color-on-surface-muted:#a3a3a3}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--hp-default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--hp-default-font-feature-settings,normal);font-variation-settings:var(--hp-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--hp-default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--hp-default-mono-font-feature-settings,normal);font-variation-settings:var(--hp-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.hp\\:pointer-events-auto{pointer-events:auto}.hp\\:pointer-events-none{pointer-events:none}.hp\\:absolute{position:absolute}.hp\\:relative{position:relative}.hp\\:sticky{position:sticky}.hp\\:inset-0{top:0;right:0;bottom:0;left:0}.hp\\:inset-x-0{inset-inline:0}.hp\\:inset-y-0{inset-block:0}.hp\\:top-0{top:0}.hp\\:top-1{top:var(--hp-spacing)}.hp\\:top-1\\/2{top:50%}.hp\\:right-0{right:0}.hp\\:right-1{right:var(--hp-spacing)}.hp\\:right-2{right:calc(var(--hp-spacing) * 2)}.hp\\:bottom-0{bottom:0}.hp\\:bottom-full{bottom:100%}.hp\\:left-1\\/2{left:50%}.hp\\:z-10{z-index:10}.hp\\:z-20{z-index:20}.hp\\:z-30{z-index:30}.hp\\:z-40{z-index:40}.hp\\:m-0{margin:0}.hp\\:my-1{margin-block:var(--hp-spacing)}.hp\\:mt-0\\.5{margin-top:calc(var(--hp-spacing) * .5)}.hp\\:mt-1{margin-top:var(--hp-spacing)}.hp\\:mt-2{margin-top:calc(var(--hp-spacing) * 2)}.hp\\:mt-8{margin-top:calc(var(--hp-spacing) * 8)}.hp\\:mb-1{margin-bottom:var(--hp-spacing)}.hp\\:mb-2{margin-bottom:calc(var(--hp-spacing) * 2)}.hp\\:mb-16{margin-bottom:calc(var(--hp-spacing) * 16)}.hp\\:ml-1{margin-left:var(--hp-spacing)}.hp\\:block{display:block}.hp\\:flex{display:flex}.hp\\:grid{display:grid}.hp\\:hidden{display:none}.hp\\:inline-block{display:inline-block}.hp\\:aspect-\\[9\\/16\\]{aspect-ratio:9/16}.hp\\:aspect-video{aspect-ratio:var(--hp-aspect-video)}.hp\\:h-0\\.5{height:calc(var(--hp-spacing) * .5)}.hp\\:h-1{height:var(--hp-spacing)}.hp\\:h-1\\/3{height:33.3333%}.hp\\:h-3{height:calc(var(--hp-spacing) * 3)}.hp\\:h-6{height:calc(var(--hp-spacing) * 6)}.hp\\:h-7{height:calc(var(--hp-spacing) * 7)}.hp\\:h-8{height:calc(var(--hp-spacing) * 8)}.hp\\:h-9{height:calc(var(--hp-spacing) * 9)}.hp\\:h-10{height:calc(var(--hp-spacing) * 10)}.hp\\:h-16{height:calc(var(--hp-spacing) * 16)}.hp\\:h-20{height:calc(var(--hp-spacing) * 20)}.hp\\:h-\\[var\\(--hp-ctrl-btn-size\\)\\]{height:var(--hp-ctrl-btn-size)}.hp\\:h-\\[var\\(--hp-seek-hit-h\\)\\]{height:var(--hp-seek-hit-h)}.hp\\:h-\\[var\\(--hp-seek-track-h\\)\\]{height:var(--hp-seek-track-h)}.hp\\:h-full{height:100%}.hp\\:max-h-64{max-height:calc(var(--hp-spacing) * 64)}.hp\\:max-h-80{max-height:calc(var(--hp-spacing) * 80)}.hp\\:w-0{width:0}.hp\\:w-0\\.5{width:calc(var(--hp-spacing) * .5)}.hp\\:w-1{width:var(--hp-spacing)}.hp\\:w-1\\.5{width:calc(var(--hp-spacing) * 1.5)}.hp\\:w-3{width:calc(var(--hp-spacing) * 3)}.hp\\:w-6{width:calc(var(--hp-spacing) * 6)}.hp\\:w-7{width:calc(var(--hp-spacing) * 7)}.hp\\:w-8{width:calc(var(--hp-spacing) * 8)}.hp\\:w-9{width:calc(var(--hp-spacing) * 9)}.hp\\:w-10{width:calc(var(--hp-spacing) * 10)}.hp\\:w-14{width:calc(var(--hp-spacing) * 14)}.hp\\:w-16{width:calc(var(--hp-spacing) * 16)}.hp\\:w-48{width:calc(var(--hp-spacing) * 48)}.hp\\:w-72{width:calc(var(--hp-spacing) * 72)}.hp\\:w-\\[var\\(--hp-ctrl-btn-size\\)\\]{width:var(--hp-ctrl-btn-size)}.hp\\:w-full{width:100%}.hp\\:max-w-\\[50\\%\\]{max-width:50%}.hp\\:max-w-\\[80\\%\\]{max-width:80%}.hp\\:max-w-\\[85\\%\\]{max-width:85%}.hp\\:max-w-full{max-width:100%}.hp\\:max-w-xs{max-width:var(--hp-container-xs)}.hp\\:min-w-0{min-width:0}.hp\\:flex-1{flex:1}.hp\\:flex-shrink-0,.hp\\:shrink-0{flex-shrink:0}.hp\\:animate-spin{animation:var(--hp-animate-spin)}.hp\\:cursor-pointer{cursor:pointer}.hp\\:touch-none{touch-action:none}.hp\\:list-none{list-style-type:none}.hp\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.hp\\:flex-col{flex-direction:column}.hp\\:flex-wrap{flex-wrap:wrap}.hp\\:items-center{align-items:center}.hp\\:items-end{align-items:flex-end}.hp\\:justify-between{justify-content:space-between}.hp\\:justify-center{justify-content:center}.hp\\:gap-0\\.5{gap:calc(var(--hp-spacing) * .5)}.hp\\:gap-1{gap:var(--hp-spacing)}.hp\\:gap-1\\.5{gap:calc(var(--hp-spacing) * 1.5)}.hp\\:gap-2{gap:calc(var(--hp-spacing) * 2)}.hp\\:gap-3{gap:calc(var(--hp-spacing) * 3)}.hp\\:self-end{align-self:flex-end}.hp\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hp\\:overflow-hidden{overflow:hidden}.hp\\:overflow-y-auto{overflow-y:auto}.hp\\:rounded{border-radius:.25rem}.hp\\:rounded-full{border-radius:3.40282e38px}.hp\\:rounded-lg{border-radius:var(--hp-radius-lg)}.hp\\:border{border-style:var(--tw-border-style);border-width:1px}.hp\\:border-0{border-style:var(--tw-border-style);border-width:0}.hp\\:border-2{border-style:var(--tw-border-style);border-width:2px}.hp\\:border-\\[3px\\]{border-style:var(--tw-border-style);border-width:3px}.hp\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.hp\\:border-on-surface\\/10{border-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:border-on-surface\\/10{border-color:color-mix(in oklab,var(--hp-color-on-surface) 10%,transparent)}}.hp\\:border-on-surface\\/20{border-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:border-on-surface\\/20{border-color:color-mix(in oklab,var(--hp-color-on-surface) 20%,transparent)}}.hp\\:border-on-surface\\/30{border-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:border-on-surface\\/30{border-color:color-mix(in oklab,var(--hp-color-on-surface) 30%,transparent)}}.hp\\:border-t-accent{border-top-color:var(--hp-color-accent)}.hp\\:bg-accent,.hp\\:bg-accent\\/15{background-color:var(--hp-color-accent)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-accent\\/15{background-color:color-mix(in oklab,var(--hp-color-accent) 15%,transparent)}}.hp\\:bg-black,.hp\\:bg-black\\/30{background-color:var(--hp-color-black)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-black\\/30{background-color:color-mix(in oklab,var(--hp-color-black) 30%,transparent)}}.hp\\:bg-black\\/40{background-color:var(--hp-color-black)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-black\\/40{background-color:color-mix(in oklab,var(--hp-color-black) 40%,transparent)}}.hp\\:bg-black\\/60{background-color:var(--hp-color-black)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-black\\/60{background-color:color-mix(in oklab,var(--hp-color-black) 60%,transparent)}}.hp\\:bg-black\\/70{background-color:var(--hp-color-black)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-black\\/70{background-color:color-mix(in oklab,var(--hp-color-black) 70%,transparent)}}.hp\\:bg-black\\/85{background-color:var(--hp-color-black)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-black\\/85{background-color:color-mix(in oklab,var(--hp-color-black) 85%,transparent)}}.hp\\:bg-on-surface,.hp\\:bg-on-surface\\/20{background-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-on-surface\\/20{background-color:color-mix(in oklab,var(--hp-color-on-surface) 20%,transparent)}}.hp\\:bg-on-surface\\/25{background-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-on-surface\\/25{background-color:color-mix(in oklab,var(--hp-color-on-surface) 25%,transparent)}}.hp\\:bg-on-surface\\/40{background-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-on-surface\\/40{background-color:color-mix(in oklab,var(--hp-color-on-surface) 40%,transparent)}}.hp\\:bg-surface{background-color:var(--hp-color-surface)}.hp\\:bg-surface-elev{background-color:var(--hp-color-surface-elev)}.hp\\:bg-transparent{background-color:#0000}.hp\\:bg-white,.hp\\:bg-white\\/15{background-color:var(--hp-color-white)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-white\\/15{background-color:color-mix(in oklab,var(--hp-color-white) 15%,transparent)}}.hp\\:bg-white\\/30{background-color:var(--hp-color-white)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-white\\/30{background-color:color-mix(in oklab,var(--hp-color-white) 30%,transparent)}}.hp\\:bg-white\\/40{background-color:var(--hp-color-white)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-white\\/40{background-color:color-mix(in oklab,var(--hp-color-white) 40%,transparent)}}.hp\\:bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.hp\\:from-black\\/80{--tw-gradient-from:var(--hp-color-black)}@supports (color:color-mix(in lab,red,red)){.hp\\:from-black\\/80{--tw-gradient-from:color-mix(in oklab, var(--hp-color-black) 80%, transparent)}}.hp\\:from-black\\/80{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.hp\\:to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.hp\\:bg-cover{background-size:cover}.hp\\:bg-center{background-position:50%}.hp\\:object-cover{object-fit:cover}.hp\\:p-0{padding:0}.hp\\:p-1\\.5{padding:calc(var(--hp-spacing) * 1.5)}.hp\\:p-2{padding:calc(var(--hp-spacing) * 2)}.hp\\:p-3{padding:calc(var(--hp-spacing) * 3)}.hp\\:p-4{padding:calc(var(--hp-spacing) * 4)}.hp\\:px-1{padding-inline:var(--hp-spacing)}.hp\\:px-1\\.5{padding-inline:calc(var(--hp-spacing) * 1.5)}.hp\\:px-2{padding-inline:calc(var(--hp-spacing) * 2)}.hp\\:px-3{padding-inline:calc(var(--hp-spacing) * 3)}.hp\\:px-4{padding-inline:calc(var(--hp-spacing) * 4)}.hp\\:py-1{padding-block:var(--hp-spacing)}.hp\\:py-1\\.5{padding-block:calc(var(--hp-spacing) * 1.5)}.hp\\:py-2{padding-block:calc(var(--hp-spacing) * 2)}.hp\\:pt-6{padding-top:calc(var(--hp-spacing) * 6)}.hp\\:pb-2{padding-bottom:calc(var(--hp-spacing) * 2)}.hp\\:text-center{text-align:center}.hp\\:text-left{text-align:left}.hp\\:font-mono{font-family:var(--hp-font-mono)}.hp\\:text-2xl{font-size:var(--hp-text-2xl);line-height:var(--tw-leading,var(--hp-text-2xl--line-height))}.hp\\:text-base{font-size:var(--hp-text-base);line-height:var(--tw-leading,var(--hp-text-base--line-height))}.hp\\:text-lg{font-size:var(--hp-text-lg);line-height:var(--tw-leading,var(--hp-text-lg--line-height))}.hp\\:text-sm{font-size:var(--hp-text-sm);line-height:var(--tw-leading,var(--hp-text-sm--line-height))}.hp\\:text-xl{font-size:var(--hp-text-xl);line-height:var(--tw-leading,var(--hp-text-xl--line-height))}.hp\\:text-xs{font-size:var(--hp-text-xs);line-height:var(--tw-leading,var(--hp-text-xs--line-height))}.hp\\:text-\\[length\\:var\\(--hp-ctrl-icon-size\\)\\]{font-size:var(--hp-ctrl-icon-size)}.hp\\:leading-none{--tw-leading:1;line-height:1}.hp\\:font-medium{--tw-font-weight:var(--hp-font-weight-medium);font-weight:var(--hp-font-weight-medium)}.hp\\:font-semibold{--tw-font-weight:var(--hp-font-weight-semibold);font-weight:var(--hp-font-weight-semibold)}.hp\\:whitespace-nowrap{white-space:nowrap}.hp\\:text-accent{color:var(--hp-color-accent)}.hp\\:text-on-accent{color:var(--hp-color-on-accent)}.hp\\:text-on-surface{color:var(--hp-color-on-surface)}.hp\\:text-on-surface-muted{color:var(--hp-color-on-surface-muted)}.hp\\:text-white{color:var(--hp-color-white)}.hp\\:tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.hp\\:no-underline{text-decoration-line:none}.hp\\:underline{text-decoration-line:underline}.hp\\:opacity-0{opacity:0}.hp\\:opacity-60{opacity:.6}.hp\\:opacity-70{opacity:.7}.hp\\:opacity-80{opacity:.8}.hp\\:opacity-90{opacity:.9}.hp\\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hp\\:shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hp\\:drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.hp\\:transition-\\[height\\]{transition-property:height;transition-timing-function:var(--tw-ease,var(--hp-default-transition-timing-function));transition-duration:var(--tw-duration,var(--hp-default-transition-duration))}.hp\\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--hp-default-transition-timing-function));transition-duration:var(--tw-duration,var(--hp-default-transition-duration))}.hp\\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--hp-default-transition-timing-function));transition-duration:var(--tw-duration,var(--hp-default-transition-duration))}.hp\\:duration-100{--tw-duration:.1s;transition-duration:.1s}.hp\\:duration-150{--tw-duration:.15s;transition-duration:.15s}.hp\\:duration-200{--tw-duration:.2s;transition-duration:.2s}.hp\\:duration-300{--tw-duration:.3s;transition-duration:.3s}.hp\\:will-change-\\[opacity\\]{will-change:opacity}.hp\\:select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.hp\\:group-hover\\:h-\\[var\\(--hp-seek-track-h-hover\\)\\]:is(:where(.hp\\:group):hover *){height:var(--hp-seek-track-h-hover)}.hp\\:hover\\:bg-on-surface\\/5:hover{background-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:hover\\:bg-on-surface\\/5:hover{background-color:color-mix(in oklab,var(--hp-color-on-surface) 5%,transparent)}}.hp\\:hover\\:bg-on-surface\\/10:hover{background-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:hover\\:bg-on-surface\\/10:hover{background-color:color-mix(in oklab,var(--hp-color-on-surface) 10%,transparent)}}.hp\\:hover\\:opacity-80:hover{opacity:.8}}.hp\\:focus-visible\\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hp\\:focus-visible\\:ring-accent:focus-visible{--tw-ring-color:var(--hp-color-accent)}.hp\\:focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.hp\\:data-\\[active\\=true\\]\\:bg-accent\\/15[data-active=true]{background-color:var(--hp-color-accent)}@supports (color:color-mix(in lab,red,red)){.hp\\:data-\\[active\\=true\\]\\:bg-accent\\/15[data-active=true]{background-color:color-mix(in oklab,var(--hp-color-accent) 15%,transparent)}}.hp\\:data-\\[active\\=true\\]\\:text-on-surface[data-active=true]{color:var(--hp-color-on-surface)}}.hp-icon{font-variant:normal;text-transform:none;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:hope-icons;font-style:normal;font-weight:400;line-height:1}.hp-icon-check:before{content:""}.hp-icon-chevron-left:before{content:""}.hp-icon-close:before{content:""}.hp-icon-fullscreen-enter:before{content:""}.hp-icon-fullscreen-exit:before{content:""}.hp-icon-grid:before{content:""}.hp-icon-loop:before{content:""}.hp-icon-pause:before{content:""}.hp-icon-pip:before{content:""}.hp-icon-play:before{content:""}.hp-icon-settings:before{content:""}.hp-icon-skip-back:before{content:""}.hp-icon-skip-forward:before{content:""}.hp-icon-volume-high:before{content:""}.hp-icon-volume-low:before{content:""}.hp-icon-volume-muted:before{content:""}.hp-icon-warning:before{content:""}:host{--hp-radius:8px;--hp-chip-bg:#ffffff14;--hp-chip-bg-hover:#ffffff2e;--hp-chip-bg-active:#ffffff42;--hp-chip-border:#ffffff29;--hp-chip-border-hover:#ffffff4d;--hp-chip-blur:14px;--hp-chip-shadow:0 4px 18px #00000047, inset 0 1px 0 #ffffff12;--hp-chip-radius:10px;--hp-chip-text:var(--hp-color-on-surface,#fff);--hp-chrome-scrim:linear-gradient(to top, #00000080 0%, #0000003d 50%, #0000 100%);--hp-chrome-scrim-height:min(150px, 45%);--hp-chip-backdrop-brightness:.78;--hp-ctrl-shadow:drop-shadow(0 1px 1.5px #0000008c);--hp-panel-bg:#ffffffb8;--hp-panel-blur:26px;--hp-panel-border:#0f11171a;--hp-panel-text:#15171c;--hp-panel-text-muted:#5b6270;--hp-panel-text-shadow:none;--hp-ctrl-btn-size:32px;--hp-ctrl-icon-size:16px;--hp-seek-hit-h:16px;--hp-seek-track-h:4px;--hp-seek-track-h-hover:6px;--hp-seek-thumb-size:12px;--hp-tooltip-bg:#ffffffe6;--hp-tooltip-text:#15171c;--hp-tooltip-key-bg:#0f11171a;--hp-tooltip-key-text:#15171c;--hp-caption-font-size:16px;--hp-caption-bg:#000000bf;--hp-caption-text:#fff;--hp-caption-radius:4px;background:var(--hp-color-surface,#0a0a0a);width:100%;color:var(--hp-color-on-surface,#fff);border-radius:var(--hp-radius);font-family:system-ui,-apple-system,sans-serif;line-height:1;display:block}.hp-chip{background:var(--hp-chip-bg);border:1px solid var(--hp-chip-border);border-radius:var(--hp-chip-radius);-webkit-backdrop-filter:blur(var(--hp-chip-blur)) saturate(160%);box-shadow:var(--hp-chip-shadow);color:var(--hp-chip-text);transition:background-color .16s,border-color .16s,box-shadow .16s,transform .12s}.hp-chip:hover{background:var(--hp-chip-bg-hover);border-color:var(--hp-chip-border-hover)}button.hp-chip:active{background:var(--hp-chip-bg-active);transform:scale(.94)}.hp-chip:focus-visible{outline:2px solid var(--hp-color-accent,#fff);outline-offset:2px}.hp-chip-panel,.hp-chip-panel:hover{background:var(--hp-panel-bg);border-color:var(--hp-panel-border);-webkit-backdrop-filter:blur(var(--hp-panel-blur)) saturate(160%);text-shadow:var(--hp-panel-text-shadow,none)}.hp-chip-panel{--hp-color-on-surface:var(--hp-panel-text);--hp-color-on-surface-muted:var(--hp-panel-text-muted);color:var(--hp-panel-text)}.hp-tooltip{background:var(--hp-tooltip-bg);color:var(--hp-tooltip-text);border-radius:calc(var(--hp-radius) * .75);-webkit-backdrop-filter:blur(12px)saturate(160%);font-weight:500;box-shadow:0 4px 14px #00000059}.hp-tooltip-key{background:var(--hp-tooltip-key-bg);min-width:16px;height:16px;color:var(--hp-tooltip-key-text);text-transform:uppercase;border-radius:4px;justify-content:center;align-items:center;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;display:inline-flex}.hp-group{background:var(--hp-chip-bg);border:1px solid var(--hp-chip-border);-webkit-backdrop-filter:blur(var(--hp-chip-blur)) saturate(160%) brightness(var(--hp-chip-backdrop-brightness,1));box-shadow:var(--hp-chip-shadow);border-radius:9999px}.hp-group-left{position:relative}.hp-loading-ring{border-radius:inherit;pointer-events:none;opacity:0;filter:drop-shadow(0 0 3px var(--hp-color-accent,#fff));transition:opacity .22s;position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px}@supports (color:color-mix(in lab,red,red)){.hp-loading-ring{filter:drop-shadow(0 0 3px color-mix(in srgb,var(--hp-color-accent,#fff) 70%,transparent))}}.hp-loading-ring-mask{border-radius:inherit;-webkit-mask-composite:xor;padding:2px;position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor,source-over;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}.hp-loading-ring-mask>span{aspect-ratio:1;background:conic-gradient(from 0deg,transparent 0deg 150deg,var(--hp-color-accent,#fff) 260deg,var(--hp-color-accent,#fff) 340deg,transparent 360deg);width:max(100%,160px);position:absolute;top:50%;left:50%;translate:-50% -50%}@supports (color:color-mix(in lab,red,red)){.hp-loading-ring-mask>span{background:conic-gradient(from 0deg,transparent 0deg 150deg,color-mix(in srgb,var(--hp-color-accent,#fff) 30%,transparent) 260deg,var(--hp-color-accent,#fff) 340deg,transparent 360deg)}}.hp-loading-ring-mask>span{animation:1.1s linear infinite paused hp-loading-ring-spin}.hp-group-left[data-loading]>.hp-loading-ring{opacity:1}.hp-group-left[data-loading]>.hp-loading-ring .hp-loading-ring-mask>span{animation-play-state:running}@keyframes hp-loading-ring-spin{to{rotate:360deg}}@media(prefers-reduced-motion:reduce){.hp-loading-ring-mask>span{background:var(--hp-color-accent,#fff);animation:none}.hp-group-left[data-loading]>.hp-loading-ring{animation:1.6s ease-in-out infinite hp-loading-ring-pulse}}@keyframes hp-loading-ring-pulse{50%{opacity:.35}}.hp-center-play>.hp-chip{-webkit-backdrop-filter:blur(var(--hp-chip-blur)) saturate(160%) brightness(var(--hp-chip-backdrop-brightness,1))}.hp-group .hp-icon,.hp-group [part=time-display],.hp-group .hp-live-badge,.hp-group [part=live-clock],.hp-group .hp-skip-num,.hp-center-play .hp-icon{filter:var(--hp-ctrl-shadow,none)}.hp-chrome:before{content:"";height:var(--hp-chrome-scrim-height);background:var(--hp-chrome-scrim);pointer-events:none;position:absolute;bottom:0;left:0;right:0}.video-area[data-compact]>.hp-chrome:after{content:"";background:var(--hp-chrome-scrim);opacity:.7;pointer-events:none;height:min(90px,30%);position:absolute;top:0;left:0;right:0;transform:scaleY(-1)}.hp-group button.hp-chip{box-shadow:none;-webkit-backdrop-filter:none;background:0 0;border-color:#0000}.hp-group button.hp-chip:hover{background:var(--hp-chip-bg-hover)}.hp-group button.hp-chip:active{background:var(--hp-chip-bg-active)}:host([data-theme=glass-dark]),:host([data-theme=neo-dark]),:host([data-theme=mono]){--hp-panel-bg:#0a0a0e8c;--hp-panel-border:#ffffff1a;--hp-panel-text:#fff;--hp-panel-text-muted:#a3a3a3;--hp-panel-text-shadow:0 1px 3px #000000a6;--hp-tooltip-bg:#0a0a0aeb;--hp-tooltip-text:#fff;--hp-tooltip-key-bg:#ffffff2e;--hp-tooltip-key-text:#fff}:host([data-theme=glass-dark]){--hp-chip-bg:#0a0a0e73;--hp-chip-bg-hover:#0a0a0e9e;--hp-chip-bg-active:#0a0a0ebf;--hp-chip-border:#ffffff14;--hp-chip-border-hover:#ffffff29;--hp-chip-shadow:0 4px 18px #0006, inset 0 1px 0 #ffffff0a;--hp-panel-bg:#08080cb8;--hp-chip-backdrop-brightness:1}:host([data-theme=neo-dark]){--hp-chip-bg:#24242a;--hp-chip-bg-hover:#2a2a31;--hp-chip-bg-active:#1e1e23;--hp-chip-border:transparent;--hp-chip-border-hover:transparent;--hp-chip-blur:0px;--hp-chip-shadow:5px 5px 10px #00000080, -4px -4px 9px #ffffff09;--hp-chip-radius:12px;--hp-color-surface:#1b1b20;--hp-panel-bg:#1e1e23;--hp-panel-text-shadow:none;--hp-chrome-scrim:none;--hp-chip-backdrop-brightness:1;--hp-ctrl-shadow:none}:host([data-theme=neo-dark]) button.hp-chip:active{box-shadow:inset 3px 3px 6px #00000080,inset -2px -2px 5px #ffffff08}:host([data-theme=mono]){--hp-chip-bg:#ffffff0a;--hp-chip-bg-hover:#ffffff1a;--hp-chip-border:#ffffff14;--hp-chip-border-hover:#ffffff24;--hp-chip-blur:0px;--hp-chip-shadow:none;--hp-panel-bg:#0a0a0aeb;--hp-panel-text-shadow:none}@media(pointer:coarse){:host{--hp-ctrl-btn-size:40px;--hp-ctrl-icon-size:18px;--hp-seek-hit-h:22px;--hp-seek-track-h:5px;--hp-seek-track-h-hover:7px;--hp-seek-thumb-size:14px;--hp-caption-font-size:19px}}:host(:fullscreen),:host(:-webkit-full-screen){--hp-ctrl-btn-size:44px;--hp-ctrl-icon-size:20px;--hp-seek-hit-h:26px;--hp-seek-track-h:6px;--hp-seek-track-h-hover:8px;--hp-seek-thumb-size:18px;--hp-caption-font-size:22px}:host(:fullscreen) [part=control-bar],:host(:-webkit-full-screen) [part=control-bar]{padding:28px 20px 18px}.video-area{width:100%;aspect-ratio:var(--hp-aspect-ratio,16 / 9);border-radius:var(--hp-radius);background:var(--hp-color-surface,#0a0a0a);position:relative;overflow:hidden}.video-area[data-compact]{--hp-caption-font-size:13px}.video-area[data-story]{aspect-ratio:9/16;max-width:49.5vh;max-height:88vh;margin:0 auto}:host(:fullscreen),:host(:-webkit-full-screen){background:#000;border-radius:0}:host(:fullscreen) .hp-root,:host(:-webkit-full-screen) .hp-root{height:100%}:host(:fullscreen) .video-area,:host(:-webkit-full-screen) .video-area{aspect-ratio:auto;background:#000;border-radius:0;width:100%;height:100%}:host(:fullscreen) .video-area[data-story],:host(:-webkit-full-screen) .video-area[data-story]{aspect-ratio:9/16;width:auto;max-width:100%;height:100%;max-height:none;margin:0 auto}.media-layer{position:absolute;top:0;right:0;bottom:0;left:0}.media-layer video{object-fit:contain;background:#000;width:100%;height:100%}.hp-center-x{transform:translate(-50%)}.hp-center-y{transform:translateY(-50%)}.hp-chip-panel[data-drop]{margin-top:8px;margin-bottom:0;top:100%;bottom:auto}.hp-top-bar{pointer-events:none;display:flex;position:absolute;top:8px;right:8px}.hp-top-bar>*{pointer-events:auto}.hp-story-list-btn{top:calc(8px + var(--hp-ctrl-btn-size) + 18px);right:12px}:host([data-cursor-hidden]),:host([data-cursor-hidden]) *{cursor:none!important}.hp-unmute-badge{z-index:25;background:var(--hp-tooltip-bg);color:var(--hp-tooltip-text);-webkit-backdrop-filter:blur(12px)saturate(160%);font:inherit;cursor:pointer;border:0;border-radius:9999px;align-items:center;gap:6px;padding:6px 12px 6px 10px;font-size:13px;font-weight:600;display:none;position:absolute;top:10px;left:10px;box-shadow:0 4px 14px #00000059}@media(hover:none)and (pointer:coarse){.hp-volume{display:none!important}.hp-unmute-badge[data-visible]{display:inline-flex}}.hp-error-screen{z-index:30;background:var(--hp-color-surface);justify-content:center;align-items:center;padding:12px;display:none;position:absolute;top:0;right:0;bottom:0;left:0}@supports (color:color-mix(in lab,red,red)){.hp-error-screen{background:color-mix(in srgb,var(--hp-color-surface) 94%,transparent)}}.hp-error-screen{-webkit-backdrop-filter:blur(16px)saturate(140%);color:var(--hp-color-on-surface);text-align:center;container-type:size}.hp-error-screen[data-visible]{animation:.22s hp-error-in;display:flex}@keyframes hp-error-in{0%{opacity:0}}.hp-error-card{flex-direction:column;align-items:center;gap:10px;max-width:340px;display:flex}.hp-error-icon{border:1px solid var(--hp-color-on-surface);border-radius:9999px;place-items:center;width:48px;height:48px;display:grid}@supports (color:color-mix(in lab,red,red)){.hp-error-icon{border:1px solid color-mix(in srgb,var(--hp-color-on-surface) 18%,transparent)}}.hp-error-icon{background:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp-error-icon{background:color-mix(in srgb,var(--hp-color-on-surface) 8%,transparent)}}.hp-error-icon{margin-bottom:2px;font-size:22px}.hp-error-message{margin:0;font-size:14px;font-weight:600;line-height:1.45}.hp-error-code{color:var(--hp-color-on-surface-muted);font-variant-numeric:tabular-nums;margin:-4px 0 0;font-size:12px}.hp-error-retry{border:1px solid var(--hp-chip-border);background:var(--hp-chip-bg);color:var(--hp-color-on-surface);font:inherit;cursor:pointer;border-radius:9999px;align-items:center;gap:6px;margin-top:6px;padding:7px 14px 7px 12px;font-size:13px;font-weight:600;transition:background-color .15s,border-color .15s;display:inline-flex}.hp-error-retry:hover{background:var(--hp-chip-bg-hover);border-color:var(--hp-chip-border-hover)}.hp-error-retry:focus-visible{outline:2px solid var(--hp-color-accent);outline-offset:2px}@container (max-height:240px){.hp-error-card{gap:6px}.hp-error-icon{width:36px;height:36px;margin-bottom:0;font-size:16px}.hp-error-message{font-size:13px}.hp-error-code{margin-top:-2px;font-size:11px}.hp-error-retry{margin-top:2px;padding:5px 12px 5px 10px;font-size:12px}}.hp-context-menu,.hp-stats,.hp-debug{border:1px solid var(--hp-panel-border);background:var(--hp-panel-bg);-webkit-backdrop-filter:blur(var(--hp-panel-blur)) saturate(160%);color:var(--hp-panel-text);text-shadow:var(--hp-panel-text-shadow,none);border-radius:10px;position:absolute;box-shadow:0 8px 28px #00000059}.hp-context-menu{z-index:40;min-width:200px;padding:4px;font-size:13px;display:none}.hp-context-menu[data-open]{animation:.12s hp-context-menu-in;display:block}@keyframes hp-context-menu-in{0%{opacity:0;transform:scale(.97)}}.hp-context-menu-item{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:space-between;align-items:center;gap:16px;padding:8px 10px;display:flex}.hp-context-menu-item[data-info]{cursor:default;font-weight:600}button.hp-context-menu-item:hover,button.hp-context-menu-item:focus-visible{background:var(--hp-panel-text)}@supports (color:color-mix(in lab,red,red)){button.hp-context-menu-item:hover,button.hp-context-menu-item:focus-visible{background:color-mix(in srgb,var(--hp-panel-text) 10%,transparent)}}button.hp-context-menu-item:hover,button.hp-context-menu-item:focus-visible{outline:none}.hp-context-menu-item+.hp-context-menu-item{margin-top:2px}.hp-context-menu-meta{color:var(--hp-panel-text-muted);font-variant-numeric:tabular-nums;font-weight:500}.hp-stats{z-index:28;width:min(360px,100% - 20px);max-height:calc(100% - 20px);padding:8px 12px 10px;font-size:11.5px;top:10px;left:10px;overflow:auto}.hp-stats-header{justify-content:space-between;align-items:center;margin-bottom:6px;font-size:12px;font-weight:700;display:flex}.hp-stats-close{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:9999px;padding:4px;display:inline-flex}.hp-stats-close:hover{background:var(--hp-panel-text)}@supports (color:color-mix(in lab,red,red)){.hp-stats-close:hover{background:color-mix(in srgb,var(--hp-panel-text) 12%,transparent)}}.hp-stats-body{grid-template-columns:auto 1fr;gap:3px 12px;margin:0;display:grid}.hp-stats-body dt{color:var(--hp-panel-text-muted);white-space:nowrap}.hp-stats-body dd{text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:hidden}.hp-seek-fb{z-index:8;border:1px solid var(--hp-chip-border);background:var(--hp-chip-bg);-webkit-backdrop-filter:blur(var(--hp-chip-blur)) saturate(160%);box-shadow:var(--hp-chip-shadow);color:var(--hp-chip-text);pointer-events:none;opacity:0;border-radius:9999px;align-items:center;gap:10px;padding:12px 20px 12px 16px;transition:opacity .18s,translate .22s cubic-bezier(.2,.8,.2,1);display:flex;position:absolute;top:50%}.hp-seek-fb[data-side=forward]{right:7%;translate:14px -50%}.hp-seek-fb[data-side=back]{flex-direction:row-reverse;padding:12px 16px 12px 20px;left:7%;translate:-14px -50%}.hp-seek-fb[data-visible]{opacity:1;translate:0 -50%}.hp-seek-fb-chevrons{display:flex}.hp-seek-fb-chevrons svg{fill:currentColor;opacity:.25;width:16px;height:16px;margin:0 -3px;animation:.9s ease-in-out infinite hp-seek-fb-chevron}.hp-seek-fb[data-side=back] .hp-seek-fb-chevrons{transform:scaleX(-1)}.hp-seek-fb-chevrons svg:nth-child(2){animation-delay:.15s}.hp-seek-fb-chevrons svg:nth-child(3){animation-delay:.3s}@keyframes hp-seek-fb-chevron{0%,to{opacity:.25}40%{opacity:1}}.hp-seek-fb-value{white-space:nowrap;align-items:baseline;gap:3px;display:flex}.hp-seek-fb-num{font-variant-numeric:tabular-nums;font-size:20px;font-weight:700;line-height:1;display:inline-block}.hp-seek-fb-unit{opacity:.75;font-size:12px;font-weight:600}.hp-seek-fb-bump{animation:.26s cubic-bezier(.2,.8,.2,1) hp-seek-fb-bump}@keyframes hp-seek-fb-bump{0%{transform:scale(1.25)}to{transform:scale(1)}}.video-area[data-compact] .hp-seek-fb{padding:8px 12px}.video-area[data-compact] .hp-seek-fb[data-side=forward]{right:4%}.video-area[data-compact] .hp-seek-fb[data-side=back]{padding:8px 12px;left:4%}.video-area[data-compact] .hp-seek-fb-chevrons{display:none}.video-area[data-compact] .hp-seek-fb-num{font-size:16px}.hp-sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media(prefers-reduced-motion:reduce){.hp-seek-fb,.hp-seek-fb-chevrons svg,.hp-seek-fb-bump{transition:none;animation:none}.hp-seek-fb-chevrons svg{opacity:.8}}.hp-skip-btn{position:relative}.hp-skip-btn>.hp-icon{font-size:calc(var(--hp-ctrl-icon-size) * 1.45)}.hp-skip-num{padding-top:calc(var(--hp-ctrl-icon-size) * .14);font-size:calc(var(--hp-ctrl-icon-size) * .56);letter-spacing:-.02em;font-variant-numeric:tabular-nums;pointer-events:none;justify-content:center;align-items:center;font-weight:700;line-height:1;display:flex;position:absolute;top:0;right:0;bottom:0;left:0}.hp-skip-num[data-long]{font-size:calc(var(--hp-ctrl-icon-size) * .42)}.hp-skip-btn:disabled{opacity:.4;cursor:default}.hp-center-play>.hp-chip{z-index:7;position:relative}.video-area[data-center-play-shifted] .hp-center-play>.hp-chip{width:var(--hp-center-play-size);height:var(--hp-center-play-size);translate:var(--hp-center-play-shift-x,0px) var(--hp-center-play-shift)}.video-area[data-pause-ad-ready]>:is(.media-layer,.hp-chrome,.hp-center-play,.hp-caption-layer,.hp-error-screen,.hp-mini-progress){right:var(--hp-pause-ad-w,0px);transition:right .38s cubic-bezier(.2,.8,.2,1),opacity .2s}.video-area[data-pause-ad] .media-layer video{object-fit:cover}.hp-pause-ad{z-index:25;width:var(--hp-pause-ad-panel-w,332px);box-sizing:border-box;background:var(--hp-color-surface,#0a0a0a);color:var(--hp-color-on-surface,#fff);visibility:hidden;flex-direction:column;justify-content:center;gap:10px;padding:12px 16px;transition:transform .38s cubic-bezier(.2,.8,.2,1),visibility 0s linear .38s;display:flex;position:absolute;top:0;bottom:0;right:0;transform:translate(100%)}.hp-pause-ad[data-open]{visibility:visible;transition:transform .38s cubic-bezier(.2,.8,.2,1);transform:none}.hp-pause-ad-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.hp-pause-ad-label{color:var(--hp-color-on-surface-muted,#ffffffb3);font-size:13px;font-weight:600}.hp-pause-ad-close{width:28px;height:28px;color:var(--hp-color-on-surface,#fff);cursor:pointer;background:0 0;border:0;border-radius:9999px;justify-content:center;align-items:center;padding:0;transition:background-color .15s;display:inline-flex}.hp-pause-ad-close:hover{background:var(--hp-chip-bg-hover)}.hp-pause-ad-body{border-radius:8px;justify-content:center;display:flex;overflow:hidden}.hp-pause-ad-resume{border:1px solid var(--hp-chip-border);background:var(--hp-chip-bg);color:var(--hp-color-on-surface,#fff);font:inherit;cursor:pointer;border-radius:9999px;align-self:stretch;padding:9px 14px;font-size:13px;font-weight:600;transition:background-color .15s,border-color .15s}.hp-pause-ad-resume:hover{background:var(--hp-chip-bg-hover);border-color:var(--hp-chip-border-hover)}.hp-pause-ad-close:focus-visible,.hp-pause-ad-resume:focus-visible{outline:2px solid var(--hp-color-accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){.video-area[data-pause-ad-ready]>:is(.media-layer,.hp-chrome,.hp-center-play,.hp-caption-layer,.hp-error-screen,.hp-mini-progress),.hp-pause-ad,.hp-pause-ad[data-open]{transition:none}}.hp-seek-thumb{width:var(--hp-seek-thumb-size);height:var(--hp-seek-thumb-size);background:var(--hp-color-accent);will-change:translate,scale;pointer-events:none;z-index:2;border-radius:9999px;transition:scale .15s;position:absolute;left:0;scale:.5}.hp-seekbar:hover .hp-seek-thumb,.hp-seekbar:active .hp-seek-thumb,.hp-seekbar:focus-visible .hp-seek-thumb{scale:1}.hp-seekbar[data-no-duration] .hp-seek-thumb{display:none}.hp-seek-hover-dot{width:var(--hp-seek-track-h-hover);height:var(--hp-seek-track-h-hover);background:var(--hp-color-on-surface);opacity:0;pointer-events:none;z-index:1;border-radius:9999px;transition:opacity .12s;position:absolute;top:50%;left:0;box-shadow:0 0 0 1px #00000073}.hp-seek-hover-dot[data-visible]{opacity:.9}.hp-mini-progress{z-index:6;pointer-events:none;background:var(--hp-color-on-surface);height:1px;position:absolute;bottom:0;left:0;right:0}@supports (color:color-mix(in lab,red,red)){.hp-mini-progress{background:color-mix(in srgb,var(--hp-color-on-surface) 25%,transparent)}}.hp-mini-progress{opacity:0;transition:opacity .2s}.hp-mini-progress[data-visible]:not([data-disabled]){opacity:1}.hp-mini-progress-fill{transform-origin:0;will-change:transform;position:absolute;top:0;right:0;bottom:0;left:0;transform:scaleX(0)}.hp-mini-progress-buffered{background:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp-mini-progress-buffered{background:color-mix(in srgb,var(--hp-color-on-surface) 40%,transparent)}}.hp-mini-progress-played{background:var(--hp-color-accent)}.hp-seek-time{border-radius:calc(var(--hp-radius) * .75);background:var(--hp-tooltip-bg);color:var(--hp-tooltip-text);-webkit-backdrop-filter:blur(12px)saturate(160%);font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;visibility:hidden;z-index:20;padding:3px 7px;font-size:12px;font-weight:500;position:absolute;bottom:calc(100% + 8px);left:0;box-shadow:0 4px 14px #00000059}.hp-seek-time[data-visible]{visibility:visible}.hp-sprite-tooltip{pointer-events:none;visibility:hidden;z-index:20;flex-direction:column;align-items:center;gap:4px;display:flex;position:absolute;bottom:calc(100% + 8px);left:0}.hp-sprite-tooltip[data-visible]{visibility:visible}.hp-sprite-image{border-radius:calc(var(--hp-radius) * .75);border:2px solid var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp-sprite-image{border:2px solid color-mix(in srgb,var(--hp-color-on-surface) 85%,transparent)}}.hp-sprite-image{background-color:#000;background-repeat:no-repeat;box-shadow:0 4px 14px #00000059}.hp-sprite-time{background:var(--hp-tooltip-bg);color:var(--hp-tooltip-text);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:4px;padding:2px 6px;font-size:12px}.hp-live-badge{height:var(--hp-ctrl-btn-size);color:var(--hp-color-on-surface);font:inherit;letter-spacing:.04em;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:9999px;align-items:center;gap:6px;padding:0 8px;font-size:12px;font-weight:600;display:inline-flex}.hp-live-badge:hover{background:var(--hp-chip-bg-hover)}.hp-live-badge:focus-visible{outline:2px solid var(--hp-color-accent);outline-offset:2px}.hp-live-dot{background:var(--hp-live-color,red);border-radius:50%;width:8px;height:8px;transition:background-color .16s}.hp-live-badge[data-behind]{color:var(--hp-color-on-surface-muted)}.hp-live-badge[data-behind] .hp-live-dot{background:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp-live-badge[data-behind] .hp-live-dot{background:color-mix(in srgb,var(--hp-color-on-surface) 45%,transparent)}}.hp-chapters{pointer-events:none;inset-inline:0;align-items:center;gap:2px;display:flex;position:absolute;top:0;bottom:0}.hp-chapter{min-width:1px;height:var(--hp-seek-track-h);background:var(--hp-color-on-surface);border-radius:1px;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.hp-chapter{background:color-mix(in srgb,var(--hp-color-on-surface) 25%,transparent)}}.hp-chapter{transition:height .15s}.hp-seekbar:hover .hp-chapter{height:var(--hp-seek-track-h-hover)}.hp-seekbar .hp-chapter[data-hover]{height:calc(var(--hp-seek-track-h-hover) * 1.6)}.hp-chapter-fill{transform-origin:0;will-change:transform;position:absolute;top:0;right:0;bottom:0;left:0;transform:scaleX(0)}.hp-chapter-buffered{background:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp-chapter-buffered{background:color-mix(in srgb,var(--hp-color-on-surface) 40%,transparent)}}.hp-chapter-played{background:var(--hp-color-accent)}.hp-chapter-tooltip{background:var(--hp-tooltip-bg);max-width:240px;color:var(--hp-tooltip-text);border-radius:calc(var(--hp-radius) * .75);-webkit-backdrop-filter:blur(12px)saturate(160%);text-align:center;pointer-events:none;white-space:nowrap;visibility:hidden;z-index:40;flex-direction:column;align-items:center;gap:2px;padding:4px 8px;font-size:12px;line-height:1.3;display:flex;position:absolute;bottom:calc(100% + 6px);left:0;box-shadow:0 4px 14px #00000059}.hp-chapter-tooltip[data-visible]{visibility:visible}.hp-chapter-tooltip-title{text-overflow:ellipsis;max-width:100%;font-weight:600;overflow:hidden}.hp-chapter-tooltip-time{opacity:.75;font-variant-numeric:tabular-nums}:host([data-sticky]){z-index:2147483000;border-radius:var(--hp-radius);box-shadow:0 8px 28px #00000073;width:min(360px,92vw)!important;aspect-ratio:var(--hp-aspect-ratio,16 / 9)!important;position:fixed!important}:host([data-sticky][data-sticky-corner=br]){inset:auto 16px 16px auto}:host([data-sticky][data-sticky-corner=bl]){inset:auto auto 16px 16px}:host([data-sticky][data-sticky-corner=tr]){inset:16px 16px auto auto}:host([data-sticky][data-sticky-corner=tl]){inset:16px auto auto 16px}.hp-caption-layer{z-index:5;pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0}.hp-caption-bubble{background:var(--hp-caption-bg);width:max-content;max-width:86%;color:var(--hp-caption-text);border-radius:var(--hp-caption-radius);font-size:calc(var(--hp-caption-font-size) * var(--hp-caption-size-multiplier,1));text-align:center;white-space:pre-line;cursor:grab;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;padding:.3em .6em;line-height:1.4;transition:transform .24s cubic-bezier(.25,.8,.25,1);display:none;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.hp-caption-bubble.hp-caption-visible{display:inline-block}.hp-caption-bubble.hp-caption-dragging,.hp-caption-bubble.hp-caption-no-transition{transition:none}.hp-caption-bubble.hp-caption-dragging{cursor:grabbing}[part=ad-layer][data-nonlinear]{top:auto;bottom:var(--hp-nonlinear-ad-offset,72px);height:var(--hp-nonlinear-ad-height,33%);pointer-events:none}[part=ad-layer][data-nonlinear] *{pointer-events:none}[part=ad-layer][data-nonlinear] :is(iframe,img,a,button){pointer-events:auto}.hp-debug{--hp-panel-text:#f1f1f4;--hp-panel-text-muted:#f1f1f49e;--hp-panel-border:#ffffff1f;text-shadow:none;z-index:30;background:#0e0e12f2;flex-direction:column;min-width:0;font-size:12px;line-height:1.45;display:flex;top:8px;right:8px;bottom:8px;left:8px;overflow:hidden}.hp-debug:focus{outline:none}.hp-debug-header{border-bottom:1px solid var(--hp-panel-border);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:8px 8px 8px 12px;display:flex}.hp-debug-title{white-space:nowrap;align-items:center;gap:8px;min-width:0;font-size:13px;font-weight:700;display:flex}.hp-debug-count{font-variant-numeric:tabular-nums;background:#f8717138;border-radius:9999px;padding:1px 7px;font-size:11px}.hp-debug-count:empty{display:none}.hp-debug-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.hp-debug-btn{border:1px solid var(--hp-panel-border);color:inherit;font:inherit;cursor:pointer;background:0 0;border-radius:9999px;padding:4px 10px;font-size:11.5px}.hp-debug-btn:hover:not(:disabled){background:var(--hp-panel-text)}@supports (color:color-mix(in lab,red,red)){.hp-debug-btn:hover:not(:disabled){background:color-mix(in srgb,var(--hp-panel-text) 12%,transparent)}}.hp-debug-btn:disabled{opacity:.45;cursor:default}.hp-debug-list{overscroll-behavior:contain;flex:1;min-height:0;margin:0;padding:6px 12px 10px;list-style:none;overflow:hidden auto}.hp-debug-row{border-left:2px solid var(--hp-panel-text);padding:8px 0 8px 10px}@supports (color:color-mix(in lab,red,red)){.hp-debug-row{border-left:2px solid color-mix(in srgb,var(--hp-panel-text) 25%,transparent)}}.hp-debug-row{min-width:0}.hp-debug-row+.hp-debug-row{margin-top:6px}.hp-debug-row[data-fatal]{border-left-color:#f87171}.hp-debug-row-head{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:2px;display:flex}.hp-debug-time{color:var(--hp-panel-text-muted);font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.hp-debug-source,.hp-debug-fatal{background:var(--hp-panel-text);border-radius:9999px;padding:1px 7px;font-size:10.5px;font-weight:600}@supports (color:color-mix(in lab,red,red)){.hp-debug-source,.hp-debug-fatal{background:color-mix(in srgb,var(--hp-panel-text) 12%,transparent)}}.hp-debug-source[data-source=ads]{background:#f5c4513d}.hp-debug-source[data-source=stream],.hp-debug-source[data-source=media]{background:#60a5fa3d}.hp-debug-fatal{background:#f8717147}.hp-debug-message{overflow-wrap:anywhere;font-weight:600}.hp-debug-repeat{color:var(--hp-panel-text-muted);font-weight:500}.hp-debug-details{grid-template-columns:max-content minmax(0,1fr);gap:1px 10px;margin:4px 0 0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;display:grid}.hp-debug-details dt{color:var(--hp-panel-text-muted)}.hp-debug-details dd{overflow-wrap:anywhere;min-width:0;margin:0}.hp-debug-empty{color:var(--hp-panel-text-muted);margin:auto;padding:16px}.hp-debug-empty[hidden]{display:none}.hp-ad-return{z-index:25;color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#0e0e12d1;border:1px solid #ffffff40;border-radius:999px;padding:10px 16px;font:600 14px/1.2 system-ui,-apple-system,sans-serif;animation:.2s ease-out hp-ad-return-in;position:absolute;bottom:64px;right:12px}@keyframes hp-ad-return-in{0%{opacity:0;transform:translateY(6px)}}:host([data-audio]) .hp-center-play{display:none}.hp-audio{z-index:1;text-align:left;pointer-events:none;color:#fff;background:linear-gradient(160deg,#2a1f2b,#0c0c10);background:radial-gradient(80% 90% at 20% 10%,var(--hp-color-accent,#e5484d),transparent 70%),linear-gradient(160deg,#1d1d24,#0c0c10);position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.hp-audio{background:radial-gradient(80% 90% at 20% 10%,color-mix(in srgb,var(--hp-color-accent,#e5484d) 38%,transparent),transparent 70%),linear-gradient(160deg,#1d1d24,#0c0c10)}}.hp-audio-backdrop{position:absolute;top:-8%;right:-8%;bottom:-8%;left:-8%}.hp-audio-backdrop img{object-fit:cover;filter:blur(28px)saturate(1.3)brightness(.55);width:100%;height:100%;transform:scale(1.08)}.hp-audio:not([data-cover]) .hp-audio-backdrop,.hp-audio:not([data-cover]) .hp-audio-sleeve img{display:none}.hp-audio-meta{z-index:3;text-shadow:0 1px 6px #0009;line-height:1.25;display:none;position:absolute;top:12px;left:14px;right:64px}.hp-audio[data-meta] .hp-audio-meta{display:block}.hp-audio-title{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:700;overflow:hidden}.hp-audio-artist{opacity:.8;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:12.5px;overflow:hidden}.hp-audio-area{inset:0 0 var(--hp-audio-bottom-space,66px) 0;justify-content:center;align-items:center;display:flex;position:absolute}.hp-audio[data-meta] .hp-audio-area{top:44px}.hp-audio-deck{height:var(--hp-deck-h,0px);flex:none;align-items:center;display:flex;position:relative}.hp-audio[data-position=left] .hp-audio-deck{flex-direction:row-reverse}.hp-audio-sleeve{z-index:2;width:var(--hp-deck-h,0px);height:var(--hp-deck-h,0px);background:radial-gradient(70% 70% at 30% 25%,#e5484d,#0000 75%),#26262d;background:radial-gradient(70% 70% at 30% 25%,var(--hp-color-accent,#e5484d),transparent 75%),#26262d;border-radius:6px;flex:none;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.hp-audio-sleeve{background:radial-gradient(70% 70% at 30% 25%,color-mix(in srgb,var(--hp-color-accent,#e5484d) 70%,#fff 0%),transparent 75%),#26262d}}.hp-audio-sleeve{box-shadow:0 18px 40px -12px #000000bf,0 0 0 1px #ffffff14}.hp-audio-sleeve img{object-fit:cover;width:100%;height:100%;display:block}.hp-audio-sleeve[hidden],.hp-vinyl[hidden],.hp-tonearm-holder[hidden]{display:none}.hp-vinyl{z-index:1;width:calc(var(--hp-deck-h,0px) * .96);height:calc(var(--hp-deck-h,0px) * .96);pointer-events:auto;touch-action:none;-webkit-tap-highlight-color:transparent;filter:drop-shadow(0 14px 26px #0009);border-radius:50%;outline:none;flex:none;transition:margin .45s cubic-bezier(.2,.8,.2,1);position:relative}.hp-audio[data-position=right] .hp-vinyl{margin-left:calc(var(--hp-deck-h) * -.56)}.hp-audio[data-position=left] .hp-vinyl{margin-right:calc(var(--hp-deck-h) * -.56)}.hp-audio[data-position=right][data-playing] .hp-vinyl{margin-left:calc(var(--hp-deck-h) * -.46)}.hp-audio[data-position=left][data-playing] .hp-vinyl{margin-right:calc(var(--hp-deck-h) * -.46)}.hp-audio:not([data-laid-out]) .hp-vinyl{transition:none}.hp-vinyl[data-scratch]:not([data-live]){cursor:grab}.hp-audio[data-scratching] .hp-vinyl{cursor:grabbing}.hp-vinyl:focus-visible{box-shadow:0 0 0 3px #ffffffb3;box-shadow:0 0 0 3px var(--hp-color-accent,#e5484d)}@supports (color:color-mix(in lab,red,red)){.hp-vinyl:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--hp-color-accent,#e5484d) 80%,transparent)}}.hp-vinyl-disc{will-change:transform;position:absolute;top:0;right:0;bottom:0;left:0}.hp-vinyl-disc svg,.hp-tonearm svg{width:100%;height:100%;display:block}.hp-vinyl-sheen{pointer-events:none;background:conic-gradient(from 200deg,#0000,#ffffff21 22deg,#0000 48deg,#0000 180deg,#ffffff17 205deg,#0000 232deg);border-radius:50%;position:absolute;top:0;right:0;bottom:0;left:0;-webkit-mask:radial-gradient(circle,#0000 0 35%,#000 36% 99%,#0000 100%);mask:radial-gradient(circle,#0000 0 35%,#000 36% 99%,#0000 100%)}.hp-tonearm-holder{pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0}.hp-audio[data-position=left] .hp-tonearm-holder{transform:scaleX(-1)}.hp-tonearm{transform-origin:70% 11%;filter:drop-shadow(0 6px 8px #00000080);width:46%;height:92%;transition:transform .6s cubic-bezier(.3,.7,.2,1);position:absolute;top:-6%;right:-14%;transform:rotate(-26deg)}.hp-audio[data-playing] .hp-tonearm{transform:rotate(0)}@media(prefers-reduced-motion:reduce){.hp-vinyl,.hp-tonearm{transition:none}}.hp-audio[data-short][data-meta] .hp-audio-meta{display:none}.hp-audio[data-short][data-meta] .hp-audio-area{top:6px}[part=ad-layer][data-audio-ad]{background:0 0}[part=ad-layer][data-audio-ad] video{opacity:0}.hp-audio:after{content:"";pointer-events:none;z-index:2;background:linear-gradient(#0000,#00000047 45%,#0000009e);height:min(140px,45%);position:absolute;bottom:0;left:0;right:0}:host([data-audio-compact]) .video-area{aspect-ratio:auto;height:var(--hp-audio-bar-height,84px);overflow:visible}:host([data-audio-compact]) .hp-audio{border-radius:var(--hp-radius);background:linear-gradient(120deg,#24242c,#141418);background:linear-gradient(120deg,var(--hp-color-accent,#e5484d),transparent 60%),var(--hp-color-surface,#141418)}@supports (color:color-mix(in lab,red,red)){:host([data-audio-compact]) .hp-audio{background:linear-gradient(120deg,color-mix(in srgb,var(--hp-color-accent,#e5484d) 16%,transparent),transparent 60%),var(--hp-color-surface,#141418)}}:host([data-audio-compact]) .hp-audio>*,:host([data-audio-compact]) .hp-audio:after,:host([data-audio-compact]) .hp-caption-layer,:host([data-audio-compact]) .hp-loading-spinner,:host([data-audio-compact]) .hp-chrome:before,:host([data-audio-compact]) .hp-chrome:after{display:none}.hp-bar-meta{min-width:0;color:var(--hp-color-on-surface,#fff);pointer-events:none;align-items:center;gap:10px;padding:0 6px;display:flex}.hp-bar-meta[data-empty] .hp-bar-text{display:none}.hp-bar-text{flex-direction:column;min-width:0;line-height:1.25;display:flex}.hp-bar-title{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.hp-bar-sub{opacity:.72;white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.hp-bar-sub:empty{display:none}.hp-bar-eq{flex:none;align-items:flex-end;gap:2px;width:14px;height:14px;display:inline-flex}.hp-bar-eq i{background:var(--hp-color-accent,#fff);border-radius:1px;flex:1;height:30%;transition:height .2s}.hp-bar-meta[data-playing] .hp-bar-eq i{animation:.9s ease-in-out infinite alternate hp-bar-eq}.hp-bar-meta[data-playing] .hp-bar-eq i:nth-child(2){animation-duration:.7s;animation-delay:-.3s}.hp-bar-meta[data-playing] .hp-bar-eq i:nth-child(3){animation-duration:1.1s;animation-delay:-.6s}@keyframes hp-bar-eq{0%{height:25%}to{height:100%}}@media(prefers-reduced-motion:reduce){.hp-bar-meta[data-playing] .hp-bar-eq i{height:70%;animation:none}}.hp-lock{vertical-align:-2px;display:inline-block}.hp-rw-button{color:#fff;cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:transparent;background:#0c0c10b8;border:1px solid #ffffff38;border-radius:999px;align-items:center;gap:6px;padding:7px 12px;font:600 12.5px/1 system-ui,-apple-system,sans-serif;display:inline-flex;position:absolute;top:12px;left:12px;box-shadow:0 6px 18px -8px #000000b3}.hp-rw-button:hover{background:#0c0c10e0}.hp-rw-button[hidden]{display:none}.hp-rw-button .hp-lock{color:var(--hp-color-accent,#fff)}.hp-rw-dialog{z-index:45;color:#fff;text-align:center;background:#0000009e;justify-content:center;align-items:center;padding:12px;animation:.18s ease-out hp-rw-fade;display:flex;position:absolute;top:0;right:0;bottom:0;left:0}.hp-rw-card{background:#14141af5;border:1px solid #ffffff24;border-radius:14px;width:min(360px,100%);max-height:100%;padding:18px 18px 16px;overflow:auto;box-shadow:0 20px 50px -20px #000c}.hp-rw-icon{color:var(--hp-color-accent,#fff);background:#ffffff14;border-radius:50%;padding:9px;display:inline-flex}.hp-rw-icon .hp-lock{width:18px;height:18px}.hp-rw-title{margin-top:10px;font-size:15px;font-weight:700}.hp-rw-text{opacity:.82;margin-top:6px;font-size:13px;line-height:1.45}.hp-rw-actions{justify-content:center;gap:8px;margin-top:14px;display:flex}.hp-rw-actions:empty{display:none}.hp-rw-btn{color:#fff;cursor:pointer;background:0 0;border:1px solid #fff3;border-radius:999px;padding:8px 14px;font:600 13px/1 system-ui,-apple-system,sans-serif}.hp-rw-btn-primary{background:var(--hp-color-accent,#fff);color:var(--hp-color-on-accent,#0a0a0a);border-color:#0000}.hp-rw-spinner{border:2px solid #ffffff40;border-top-color:#fff;border-radius:50%;width:22px;height:22px;margin:4px auto 0;animation:.8s linear infinite hp-rw-spin}.hp-rw-toast{z-index:45;color:#fff;pointer-events:none;background:#0c0c10d9;border-radius:999px;padding:8px 14px;font:600 13px/1 system-ui,-apple-system,sans-serif;animation:.2s ease-out hp-rw-fade;position:absolute;top:12px;left:50%;transform:translate(-50%)}@keyframes hp-rw-fade{0%{opacity:0}}@keyframes hp-rw-spin{to{transform:rotate(360deg)}}.hp-settings-panel [data-locked],.hp-chip-panel [data-locked]{opacity:.85}.hp-sponsor-logo{z-index:21;width:var(--hp-sponsor-logo-w,96px);color:#fff;filter:drop-shadow(0 2px 6px #0000008c);flex-direction:column;align-items:center;gap:4px;text-decoration:none;transition:opacity .25s;animation:.4s ease-out hp-rw-fade;display:flex;position:absolute}.hp-sponsor-logo[data-position=top-left]{top:12px;left:12px}.hp-sponsor-logo[data-position=top-right]{top:12px;right:12px}.hp-sponsor-logo[data-position=bottom-left]{bottom:76px;left:12px}.hp-sponsor-logo[data-position=bottom-right]{bottom:76px;right:12px}.hp-sponsor-logo img{width:100%;height:auto;display:block}.hp-sponsor-label{text-align:center;white-space:nowrap;text-overflow:ellipsis;letter-spacing:.08em;text-transform:uppercase;opacity:.85;max-width:100%;font:600 10px/1 system-ui,-apple-system,sans-serif;overflow:hidden}.video-area:has(.hp-rw-button:not([hidden])) .hp-sponsor-logo[data-position=top-left]{top:52px}.hp-sponsor-intro{z-index:22;color:#fff;pointer-events:none;background:#0c0c10d1;border-radius:999px;align-items:center;gap:10px;max-width:calc(100% - 32px);padding:8px 16px 8px 8px;font:600 14px/1.2 system-ui,-apple-system,sans-serif;transition:opacity .35s,transform .35s;animation:.45s cubic-bezier(.2,.8,.2,1) hp-sponsor-in;display:flex;position:absolute;bottom:84px;left:50%;transform:translate(-50%);box-shadow:0 12px 30px -12px #000c}.hp-sponsor-intro[data-leaving]{opacity:0;transform:translate(-50%,8px)}.hp-sponsor-intro img{border-radius:6px;width:auto;max-width:96px;height:28px}.hp-sponsor-intro span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@keyframes hp-sponsor-in{0%{opacity:0;transform:translate(-50%,12px)scale(.96)}}:host([data-sponsor-hidden]) .hp-sponsor-logo,:host([data-sponsor-hidden]) .hp-sponsor-intro{display:none}@media(prefers-reduced-motion:reduce){.hp-sponsor-intro,.hp-rw-dialog,.hp-rw-toast{animation:none}}@media(hover:none)and (pointer:coarse){.video-area:has(.hp-unmute-badge[data-visible]) .hp-rw-button,.video-area:has(.hp-unmute-badge[data-visible]) .hp-sponsor-logo[data-position=top-left]{top:52px}.video-area:has(.hp-unmute-badge[data-visible]):has(.hp-rw-button:not([hidden])) .hp-sponsor-logo[data-position=top-left]{top:92px}}.video-area[data-compact] .hp-rw-icon{display:none}.video-area[data-compact] .hp-rw-card{padding:12px 14px}.video-area[data-compact] .hp-rw-title{margin-top:0;font-size:14px}.video-area[data-compact] .hp-rw-text{font-size:12px;line-height:1.4}.video-area[data-compact] .hp-rw-actions{margin-top:10px}.hp-sponsor-logo[data-compact]{width:min(var(--hp-sponsor-logo-w,96px),48px);gap:2px}.hp-sponsor-logo[data-compact] .hp-sponsor-label{font-size:8.5px}:host([data-sponsor-intro]) .hp-sponsor-logo{pointer-events:none;opacity:0!important}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}';
5
- function W() {
1
+ var Pe = Object.defineProperty;
2
+ var Me = (n, t, e) => t in n ? Pe(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e;
3
+ var s = (n, t, e) => Me(n, typeof t != "symbol" ? t + "" : t, e);
4
+ const Be = '/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial}}}@layer theme{:root,:host{--hp-font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--hp-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--hp-color-black:#000;--hp-color-white:#fff;--hp-spacing:.25rem;--hp-container-xs:20rem;--hp-text-xs:.75rem;--hp-text-xs--line-height:calc(1 / .75);--hp-text-sm:.875rem;--hp-text-sm--line-height:calc(1.25 / .875);--hp-text-base:1rem;--hp-text-base--line-height: 1.5 ;--hp-text-lg:1.125rem;--hp-text-lg--line-height:calc(1.75 / 1.125);--hp-text-xl:1.25rem;--hp-text-xl--line-height:calc(1.75 / 1.25);--hp-text-2xl:1.5rem;--hp-text-2xl--line-height:calc(2 / 1.5);--hp-font-weight-medium:500;--hp-font-weight-semibold:600;--hp-radius-lg:.5rem;--hp-animate-spin:spin 1s linear infinite;--hp-aspect-video:16 / 9;--hp-default-transition-duration:.15s;--hp-default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--hp-default-font-family:var(--hp-font-sans);--hp-default-mono-font-family:var(--hp-font-mono);--hp-color-accent:#fff;--hp-color-on-accent:#0a0a0a;--hp-color-surface:#0a0a0a;--hp-color-surface-elev:#1a1a1a;--hp-color-on-surface:#fff;--hp-color-on-surface-muted:#a3a3a3}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--hp-default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--hp-default-font-feature-settings,normal);font-variation-settings:var(--hp-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--hp-default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--hp-default-mono-font-feature-settings,normal);font-variation-settings:var(--hp-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.hp\\:pointer-events-auto{pointer-events:auto}.hp\\:pointer-events-none{pointer-events:none}.hp\\:absolute{position:absolute}.hp\\:relative{position:relative}.hp\\:sticky{position:sticky}.hp\\:inset-0{top:0;right:0;bottom:0;left:0}.hp\\:inset-x-0{inset-inline:0}.hp\\:inset-y-0{inset-block:0}.hp\\:top-0{top:0}.hp\\:top-1{top:var(--hp-spacing)}.hp\\:top-1\\/2{top:50%}.hp\\:right-0{right:0}.hp\\:right-1{right:var(--hp-spacing)}.hp\\:right-2{right:calc(var(--hp-spacing) * 2)}.hp\\:bottom-0{bottom:0}.hp\\:bottom-full{bottom:100%}.hp\\:left-1\\/2{left:50%}.hp\\:z-10{z-index:10}.hp\\:z-20{z-index:20}.hp\\:z-30{z-index:30}.hp\\:z-40{z-index:40}.hp\\:m-0{margin:0}.hp\\:my-1{margin-block:var(--hp-spacing)}.hp\\:mt-0\\.5{margin-top:calc(var(--hp-spacing) * .5)}.hp\\:mt-1{margin-top:var(--hp-spacing)}.hp\\:mt-2{margin-top:calc(var(--hp-spacing) * 2)}.hp\\:mt-8{margin-top:calc(var(--hp-spacing) * 8)}.hp\\:mb-1{margin-bottom:var(--hp-spacing)}.hp\\:mb-2{margin-bottom:calc(var(--hp-spacing) * 2)}.hp\\:mb-16{margin-bottom:calc(var(--hp-spacing) * 16)}.hp\\:ml-1{margin-left:var(--hp-spacing)}.hp\\:block{display:block}.hp\\:flex{display:flex}.hp\\:hidden{display:none}.hp\\:inline-block{display:inline-block}.hp\\:aspect-\\[9\\/16\\]{aspect-ratio:9/16}.hp\\:aspect-video{aspect-ratio:var(--hp-aspect-video)}.hp\\:h-0\\.5{height:calc(var(--hp-spacing) * .5)}.hp\\:h-1{height:var(--hp-spacing)}.hp\\:h-1\\/3{height:33.3333%}.hp\\:h-3{height:calc(var(--hp-spacing) * 3)}.hp\\:h-6{height:calc(var(--hp-spacing) * 6)}.hp\\:h-7{height:calc(var(--hp-spacing) * 7)}.hp\\:h-8{height:calc(var(--hp-spacing) * 8)}.hp\\:h-9{height:calc(var(--hp-spacing) * 9)}.hp\\:h-10{height:calc(var(--hp-spacing) * 10)}.hp\\:h-16{height:calc(var(--hp-spacing) * 16)}.hp\\:h-20{height:calc(var(--hp-spacing) * 20)}.hp\\:h-\\[var\\(--hp-ctrl-btn-size\\)\\]{height:var(--hp-ctrl-btn-size)}.hp\\:h-\\[var\\(--hp-seek-hit-h\\)\\]{height:var(--hp-seek-hit-h)}.hp\\:h-\\[var\\(--hp-seek-track-h\\)\\]{height:var(--hp-seek-track-h)}.hp\\:h-full{height:100%}.hp\\:max-h-64{max-height:calc(var(--hp-spacing) * 64)}.hp\\:max-h-80{max-height:calc(var(--hp-spacing) * 80)}.hp\\:w-0{width:0}.hp\\:w-0\\.5{width:calc(var(--hp-spacing) * .5)}.hp\\:w-1{width:var(--hp-spacing)}.hp\\:w-1\\.5{width:calc(var(--hp-spacing) * 1.5)}.hp\\:w-3{width:calc(var(--hp-spacing) * 3)}.hp\\:w-6{width:calc(var(--hp-spacing) * 6)}.hp\\:w-7{width:calc(var(--hp-spacing) * 7)}.hp\\:w-8{width:calc(var(--hp-spacing) * 8)}.hp\\:w-9{width:calc(var(--hp-spacing) * 9)}.hp\\:w-10{width:calc(var(--hp-spacing) * 10)}.hp\\:w-14{width:calc(var(--hp-spacing) * 14)}.hp\\:w-16{width:calc(var(--hp-spacing) * 16)}.hp\\:w-48{width:calc(var(--hp-spacing) * 48)}.hp\\:w-72{width:calc(var(--hp-spacing) * 72)}.hp\\:w-\\[var\\(--hp-ctrl-btn-size\\)\\]{width:var(--hp-ctrl-btn-size)}.hp\\:w-full{width:100%}.hp\\:max-w-\\[80\\%\\]{max-width:80%}.hp\\:max-w-\\[85\\%\\]{max-width:85%}.hp\\:max-w-full{max-width:100%}.hp\\:max-w-xs{max-width:var(--hp-container-xs)}.hp\\:min-w-0{min-width:0}.hp\\:flex-1{flex:1}.hp\\:flex-shrink-0,.hp\\:shrink-0{flex-shrink:0}.hp\\:animate-spin{animation:var(--hp-animate-spin)}.hp\\:cursor-pointer{cursor:pointer}.hp\\:touch-none{touch-action:none}.hp\\:list-none{list-style-type:none}.hp\\:flex-col{flex-direction:column}.hp\\:flex-wrap{flex-wrap:wrap}.hp\\:items-center{align-items:center}.hp\\:items-end{align-items:flex-end}.hp\\:justify-between{justify-content:space-between}.hp\\:justify-center{justify-content:center}.hp\\:gap-0\\.5{gap:calc(var(--hp-spacing) * .5)}.hp\\:gap-1{gap:var(--hp-spacing)}.hp\\:gap-1\\.5{gap:calc(var(--hp-spacing) * 1.5)}.hp\\:gap-2{gap:calc(var(--hp-spacing) * 2)}.hp\\:gap-3{gap:calc(var(--hp-spacing) * 3)}.hp\\:self-end{align-self:flex-end}.hp\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hp\\:overflow-hidden{overflow:hidden}.hp\\:overflow-y-auto{overflow-y:auto}.hp\\:rounded{border-radius:.25rem}.hp\\:rounded-full{border-radius:3.40282e38px}.hp\\:rounded-lg{border-radius:var(--hp-radius-lg)}.hp\\:border{border-style:var(--tw-border-style);border-width:1px}.hp\\:border-0{border-style:var(--tw-border-style);border-width:0}.hp\\:border-2{border-style:var(--tw-border-style);border-width:2px}.hp\\:border-\\[3px\\]{border-style:var(--tw-border-style);border-width:3px}.hp\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.hp\\:border-on-surface\\/10{border-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:border-on-surface\\/10{border-color:color-mix(in oklab,var(--hp-color-on-surface) 10%,transparent)}}.hp\\:border-on-surface\\/20{border-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:border-on-surface\\/20{border-color:color-mix(in oklab,var(--hp-color-on-surface) 20%,transparent)}}.hp\\:border-on-surface\\/30{border-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:border-on-surface\\/30{border-color:color-mix(in oklab,var(--hp-color-on-surface) 30%,transparent)}}.hp\\:border-t-accent{border-top-color:var(--hp-color-accent)}.hp\\:bg-accent,.hp\\:bg-accent\\/15{background-color:var(--hp-color-accent)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-accent\\/15{background-color:color-mix(in oklab,var(--hp-color-accent) 15%,transparent)}}.hp\\:bg-black,.hp\\:bg-black\\/30{background-color:var(--hp-color-black)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-black\\/30{background-color:color-mix(in oklab,var(--hp-color-black) 30%,transparent)}}.hp\\:bg-black\\/40{background-color:var(--hp-color-black)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-black\\/40{background-color:color-mix(in oklab,var(--hp-color-black) 40%,transparent)}}.hp\\:bg-black\\/60{background-color:var(--hp-color-black)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-black\\/60{background-color:color-mix(in oklab,var(--hp-color-black) 60%,transparent)}}.hp\\:bg-black\\/70{background-color:var(--hp-color-black)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-black\\/70{background-color:color-mix(in oklab,var(--hp-color-black) 70%,transparent)}}.hp\\:bg-black\\/85{background-color:var(--hp-color-black)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-black\\/85{background-color:color-mix(in oklab,var(--hp-color-black) 85%,transparent)}}.hp\\:bg-on-surface,.hp\\:bg-on-surface\\/20{background-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-on-surface\\/20{background-color:color-mix(in oklab,var(--hp-color-on-surface) 20%,transparent)}}.hp\\:bg-on-surface\\/25{background-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-on-surface\\/25{background-color:color-mix(in oklab,var(--hp-color-on-surface) 25%,transparent)}}.hp\\:bg-on-surface\\/40{background-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-on-surface\\/40{background-color:color-mix(in oklab,var(--hp-color-on-surface) 40%,transparent)}}.hp\\:bg-surface{background-color:var(--hp-color-surface)}.hp\\:bg-surface-elev{background-color:var(--hp-color-surface-elev)}.hp\\:bg-transparent{background-color:#0000}.hp\\:bg-white,.hp\\:bg-white\\/15{background-color:var(--hp-color-white)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-white\\/15{background-color:color-mix(in oklab,var(--hp-color-white) 15%,transparent)}}.hp\\:bg-white\\/30{background-color:var(--hp-color-white)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-white\\/30{background-color:color-mix(in oklab,var(--hp-color-white) 30%,transparent)}}.hp\\:bg-white\\/40{background-color:var(--hp-color-white)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-white\\/40{background-color:color-mix(in oklab,var(--hp-color-white) 40%,transparent)}}.hp\\:bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.hp\\:from-black\\/80{--tw-gradient-from:var(--hp-color-black)}@supports (color:color-mix(in lab,red,red)){.hp\\:from-black\\/80{--tw-gradient-from:color-mix(in oklab, var(--hp-color-black) 80%, transparent)}}.hp\\:from-black\\/80{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.hp\\:to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.hp\\:bg-cover{background-size:cover}.hp\\:bg-center{background-position:50%}.hp\\:object-cover{object-fit:cover}.hp\\:p-0{padding:0}.hp\\:p-1\\.5{padding:calc(var(--hp-spacing) * 1.5)}.hp\\:p-2{padding:calc(var(--hp-spacing) * 2)}.hp\\:p-3{padding:calc(var(--hp-spacing) * 3)}.hp\\:p-4{padding:calc(var(--hp-spacing) * 4)}.hp\\:px-1{padding-inline:var(--hp-spacing)}.hp\\:px-1\\.5{padding-inline:calc(var(--hp-spacing) * 1.5)}.hp\\:px-2{padding-inline:calc(var(--hp-spacing) * 2)}.hp\\:px-3{padding-inline:calc(var(--hp-spacing) * 3)}.hp\\:px-4{padding-inline:calc(var(--hp-spacing) * 4)}.hp\\:py-1{padding-block:var(--hp-spacing)}.hp\\:py-1\\.5{padding-block:calc(var(--hp-spacing) * 1.5)}.hp\\:py-2{padding-block:calc(var(--hp-spacing) * 2)}.hp\\:pt-6{padding-top:calc(var(--hp-spacing) * 6)}.hp\\:pb-2{padding-bottom:calc(var(--hp-spacing) * 2)}.hp\\:text-center{text-align:center}.hp\\:text-left{text-align:left}.hp\\:font-mono{font-family:var(--hp-font-mono)}.hp\\:text-2xl{font-size:var(--hp-text-2xl);line-height:var(--tw-leading,var(--hp-text-2xl--line-height))}.hp\\:text-base{font-size:var(--hp-text-base);line-height:var(--tw-leading,var(--hp-text-base--line-height))}.hp\\:text-lg{font-size:var(--hp-text-lg);line-height:var(--tw-leading,var(--hp-text-lg--line-height))}.hp\\:text-sm{font-size:var(--hp-text-sm);line-height:var(--tw-leading,var(--hp-text-sm--line-height))}.hp\\:text-xl{font-size:var(--hp-text-xl);line-height:var(--tw-leading,var(--hp-text-xl--line-height))}.hp\\:text-xs{font-size:var(--hp-text-xs);line-height:var(--tw-leading,var(--hp-text-xs--line-height))}.hp\\:text-\\[length\\:var\\(--hp-ctrl-icon-size\\)\\]{font-size:var(--hp-ctrl-icon-size)}.hp\\:leading-none{--tw-leading:1;line-height:1}.hp\\:font-medium{--tw-font-weight:var(--hp-font-weight-medium);font-weight:var(--hp-font-weight-medium)}.hp\\:font-semibold{--tw-font-weight:var(--hp-font-weight-semibold);font-weight:var(--hp-font-weight-semibold)}.hp\\:whitespace-nowrap{white-space:nowrap}.hp\\:text-accent{color:var(--hp-color-accent)}.hp\\:text-on-accent{color:var(--hp-color-on-accent)}.hp\\:text-on-surface{color:var(--hp-color-on-surface)}.hp\\:text-on-surface-muted{color:var(--hp-color-on-surface-muted)}.hp\\:text-white{color:var(--hp-color-white)}.hp\\:tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.hp\\:underline{text-decoration-line:underline}.hp\\:opacity-0{opacity:0}.hp\\:opacity-60{opacity:.6}.hp\\:opacity-70{opacity:.7}.hp\\:opacity-80{opacity:.8}.hp\\:opacity-90{opacity:.9}.hp\\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hp\\:shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hp\\:drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.hp\\:transition-\\[height\\]{transition-property:height;transition-timing-function:var(--tw-ease,var(--hp-default-transition-timing-function));transition-duration:var(--tw-duration,var(--hp-default-transition-duration))}.hp\\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--hp-default-transition-timing-function));transition-duration:var(--tw-duration,var(--hp-default-transition-duration))}.hp\\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--hp-default-transition-timing-function));transition-duration:var(--tw-duration,var(--hp-default-transition-duration))}.hp\\:duration-100{--tw-duration:.1s;transition-duration:.1s}.hp\\:duration-150{--tw-duration:.15s;transition-duration:.15s}.hp\\:duration-200{--tw-duration:.2s;transition-duration:.2s}.hp\\:duration-300{--tw-duration:.3s;transition-duration:.3s}.hp\\:will-change-\\[opacity\\]{will-change:opacity}.hp\\:select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.hp\\:group-hover\\:h-\\[var\\(--hp-seek-track-h-hover\\)\\]:is(:where(.hp\\:group):hover *){height:var(--hp-seek-track-h-hover)}.hp\\:hover\\:bg-on-surface\\/5:hover{background-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:hover\\:bg-on-surface\\/5:hover{background-color:color-mix(in oklab,var(--hp-color-on-surface) 5%,transparent)}}.hp\\:hover\\:bg-on-surface\\/10:hover{background-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:hover\\:bg-on-surface\\/10:hover{background-color:color-mix(in oklab,var(--hp-color-on-surface) 10%,transparent)}}.hp\\:hover\\:opacity-80:hover{opacity:.8}}.hp\\:data-\\[active\\=true\\]\\:bg-accent\\/15[data-active=true]{background-color:var(--hp-color-accent)}@supports (color:color-mix(in lab,red,red)){.hp\\:data-\\[active\\=true\\]\\:bg-accent\\/15[data-active=true]{background-color:color-mix(in oklab,var(--hp-color-accent) 15%,transparent)}}.hp\\:data-\\[active\\=true\\]\\:text-on-surface[data-active=true]{color:var(--hp-color-on-surface)}}.hp-icon{font-variant:normal;text-transform:none;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:hope-icons;font-style:normal;font-weight:400;line-height:1}.hp-icon-airplay:before{content:""}.hp-icon-cast-connected:before{content:""}.hp-icon-cast:before{content:""}.hp-icon-check:before{content:""}.hp-icon-chevron-left:before{content:""}.hp-icon-close:before{content:""}.hp-icon-fullscreen-enter:before{content:""}.hp-icon-fullscreen-exit:before{content:""}.hp-icon-grid:before{content:""}.hp-icon-loop:before{content:""}.hp-icon-pause:before{content:""}.hp-icon-pip:before{content:""}.hp-icon-play:before{content:""}.hp-icon-settings:before{content:""}.hp-icon-skip-back:before{content:""}.hp-icon-skip-forward:before{content:""}.hp-icon-volume-high:before{content:""}.hp-icon-volume-low:before{content:""}.hp-icon-volume-muted:before{content:""}.hp-icon-warning:before{content:""}:host{--hp-radius:8px;--hp-chip-bg:#ffffff14;--hp-chip-bg-hover:#ffffff2e;--hp-chip-bg-active:#ffffff42;--hp-chip-border:#ffffff29;--hp-chip-border-hover:#ffffff4d;--hp-chip-blur:14px;--hp-chip-shadow:0 4px 18px #00000047, inset 0 1px 0 #ffffff12;--hp-chip-radius:10px;--hp-chip-text:var(--hp-color-on-surface,#fff);--hp-chrome-scrim:linear-gradient(to top, #00000080 0%, #0000003d 50%, #0000 100%);--hp-chrome-scrim-height:min(150px, 45%);--hp-chip-backdrop-brightness:.78;--hp-ctrl-shadow:drop-shadow(0 1px 1.5px #0000008c);--hp-panel-bg:#ffffffb8;--hp-panel-blur:26px;--hp-panel-border:#0f11171a;--hp-panel-text:#15171c;--hp-panel-text-muted:#5b6270;--hp-panel-text-shadow:none;--hp-ctrl-btn-size:32px;--hp-ctrl-icon-size:16px;--hp-seek-hit-h:16px;--hp-seek-track-h:4px;--hp-seek-track-h-hover:6px;--hp-seek-thumb-size:12px;--hp-tooltip-bg:#ffffffe6;--hp-tooltip-text:#15171c;--hp-tooltip-key-bg:#0f11171a;--hp-tooltip-key-text:#15171c;--hp-caption-font-size:16px;--hp-caption-bg:#000000bf;--hp-caption-text:#fff;--hp-caption-radius:4px;background:var(--hp-color-surface,#0a0a0a);width:100%;color:var(--hp-color-on-surface,#fff);border-radius:var(--hp-radius);font-family:system-ui,-apple-system,sans-serif;line-height:1;display:block}.hp-chip{background:var(--hp-chip-bg);border:1px solid var(--hp-chip-border);border-radius:var(--hp-chip-radius);-webkit-backdrop-filter:blur(var(--hp-chip-blur)) saturate(160%);box-shadow:var(--hp-chip-shadow);color:var(--hp-chip-text);transition:background-color .16s,border-color .16s,box-shadow .16s,transform .12s}.hp-chip:hover{background:var(--hp-chip-bg-hover);border-color:var(--hp-chip-border-hover)}button.hp-chip:active{background:var(--hp-chip-bg-active);transform:scale(.94)}.hp-chip:focus-visible{outline:2px solid var(--hp-color-accent,#fff);outline-offset:2px}.hp-chip-panel,.hp-chip-panel:hover{background:var(--hp-panel-bg);border-color:var(--hp-panel-border);-webkit-backdrop-filter:blur(var(--hp-panel-blur)) saturate(160%);text-shadow:var(--hp-panel-text-shadow,none)}.hp-chip-panel{--hp-color-on-surface:var(--hp-panel-text);--hp-color-on-surface-muted:var(--hp-panel-text-muted);color:var(--hp-panel-text)}.hp-tooltip{background:var(--hp-tooltip-bg);color:var(--hp-tooltip-text);border-radius:calc(var(--hp-radius) * .75);-webkit-backdrop-filter:blur(12px)saturate(160%);font-weight:500;box-shadow:0 4px 14px #00000059}.hp-tooltip-key{background:var(--hp-tooltip-key-bg);min-width:16px;height:16px;color:var(--hp-tooltip-key-text);text-transform:uppercase;border-radius:4px;justify-content:center;align-items:center;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;display:inline-flex}.hp-group{background:var(--hp-chip-bg);border:1px solid var(--hp-chip-border);-webkit-backdrop-filter:blur(var(--hp-chip-blur)) saturate(160%) brightness(var(--hp-chip-backdrop-brightness,1));box-shadow:var(--hp-chip-shadow);border-radius:9999px}.hp-group-left{position:relative}.hp-loading-ring{border-radius:inherit;pointer-events:none;opacity:0;filter:drop-shadow(0 0 3px var(--hp-color-accent,#fff));transition:opacity .22s;position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px}@supports (color:color-mix(in lab,red,red)){.hp-loading-ring{filter:drop-shadow(0 0 3px color-mix(in srgb,var(--hp-color-accent,#fff) 70%,transparent))}}.hp-loading-ring-mask{border-radius:inherit;-webkit-mask-composite:xor;padding:2px;position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor,source-over;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}.hp-loading-ring-mask>span{aspect-ratio:1;background:conic-gradient(from 0deg,transparent 0deg 150deg,var(--hp-color-accent,#fff) 260deg,var(--hp-color-accent,#fff) 340deg,transparent 360deg);width:max(100%,160px);position:absolute;top:50%;left:50%;translate:-50% -50%}@supports (color:color-mix(in lab,red,red)){.hp-loading-ring-mask>span{background:conic-gradient(from 0deg,transparent 0deg 150deg,color-mix(in srgb,var(--hp-color-accent,#fff) 30%,transparent) 260deg,var(--hp-color-accent,#fff) 340deg,transparent 360deg)}}.hp-loading-ring-mask>span{animation:1.1s linear infinite paused hp-loading-ring-spin}.hp-group-left[data-loading]>.hp-loading-ring{opacity:1}.hp-group-left[data-loading]>.hp-loading-ring .hp-loading-ring-mask>span{animation-play-state:running}@keyframes hp-loading-ring-spin{to{rotate:360deg}}@media(prefers-reduced-motion:reduce){.hp-loading-ring-mask>span{background:var(--hp-color-accent,#fff);animation:none}.hp-group-left[data-loading]>.hp-loading-ring{animation:1.6s ease-in-out infinite hp-loading-ring-pulse}}@keyframes hp-loading-ring-pulse{50%{opacity:.35}}.hp-center-play>.hp-chip{-webkit-backdrop-filter:blur(var(--hp-chip-blur)) saturate(160%) brightness(var(--hp-chip-backdrop-brightness,1))}.hp-group .hp-icon,.hp-group [part=time-display],.hp-group .hp-live-badge,.hp-group [part=live-clock],.hp-group .hp-skip-num,.hp-center-play .hp-icon{filter:var(--hp-ctrl-shadow,none)}.hp-chrome:before{content:"";height:var(--hp-chrome-scrim-height);background:var(--hp-chrome-scrim);pointer-events:none;position:absolute;bottom:0;left:0;right:0}.video-area[data-compact]>.hp-chrome:after{content:"";background:var(--hp-chrome-scrim);opacity:.7;pointer-events:none;height:min(90px,30%);position:absolute;top:0;left:0;right:0;transform:scaleY(-1)}.hp-group button.hp-chip{box-shadow:none;-webkit-backdrop-filter:none;background:0 0;border-color:#0000}.hp-group button.hp-chip:hover{background:var(--hp-chip-bg-hover)}.hp-group button.hp-chip:active{background:var(--hp-chip-bg-active)}:host([data-theme=glass-dark]),:host([data-theme=neo-dark]),:host([data-theme=mono]){--hp-panel-bg:#0a0a0e8c;--hp-panel-border:#ffffff1a;--hp-panel-text:#fff;--hp-panel-text-muted:#a3a3a3;--hp-panel-text-shadow:0 1px 3px #000000a6;--hp-tooltip-bg:#0a0a0aeb;--hp-tooltip-text:#fff;--hp-tooltip-key-bg:#ffffff2e;--hp-tooltip-key-text:#fff}:host([data-theme=glass-dark]){--hp-chip-bg:#0a0a0e73;--hp-chip-bg-hover:#0a0a0e9e;--hp-chip-bg-active:#0a0a0ebf;--hp-chip-border:#ffffff14;--hp-chip-border-hover:#ffffff29;--hp-chip-shadow:0 4px 18px #0006, inset 0 1px 0 #ffffff0a;--hp-panel-bg:#08080cb8;--hp-chip-backdrop-brightness:1}:host([data-theme=neo-dark]){--hp-chip-bg:#24242a;--hp-chip-bg-hover:#2a2a31;--hp-chip-bg-active:#1e1e23;--hp-chip-border:transparent;--hp-chip-border-hover:transparent;--hp-chip-blur:0px;--hp-chip-shadow:5px 5px 10px #00000080, -4px -4px 9px #ffffff09;--hp-chip-radius:12px;--hp-color-surface:#1b1b20;--hp-panel-bg:#1e1e23;--hp-panel-text-shadow:none;--hp-chrome-scrim:none;--hp-chip-backdrop-brightness:1;--hp-ctrl-shadow:none}:host([data-theme=neo-dark]) button.hp-chip:active{box-shadow:inset 3px 3px 6px #00000080,inset -2px -2px 5px #ffffff08}:host([data-theme=mono]){--hp-chip-bg:#ffffff0a;--hp-chip-bg-hover:#ffffff1a;--hp-chip-border:#ffffff14;--hp-chip-border-hover:#ffffff24;--hp-chip-blur:0px;--hp-chip-shadow:none;--hp-panel-bg:#0a0a0aeb;--hp-panel-text-shadow:none}@media(pointer:coarse){:host{--hp-ctrl-btn-size:40px;--hp-ctrl-icon-size:18px;--hp-seek-hit-h:22px;--hp-seek-track-h:5px;--hp-seek-track-h-hover:7px;--hp-seek-thumb-size:14px;--hp-caption-font-size:19px}}:host(:fullscreen),:host(:-webkit-full-screen){--hp-ctrl-btn-size:44px;--hp-ctrl-icon-size:20px;--hp-seek-hit-h:26px;--hp-seek-track-h:6px;--hp-seek-track-h-hover:8px;--hp-seek-thumb-size:18px;--hp-caption-font-size:22px}:host(:fullscreen) [part=control-bar],:host(:-webkit-full-screen) [part=control-bar]{padding:28px 20px 18px}.video-area{width:100%;aspect-ratio:var(--hp-aspect-ratio,16 / 9);border-radius:var(--hp-radius);background:var(--hp-color-surface,#0a0a0a);position:relative;overflow:hidden}.video-area[data-compact]{--hp-caption-font-size:13px}.video-area[data-story]{aspect-ratio:9/16;max-width:49.5vh;max-height:88vh;margin:0 auto}:host(:fullscreen),:host(:-webkit-full-screen){background:#000;border-radius:0}:host(:fullscreen) .hp-root,:host(:-webkit-full-screen) .hp-root{height:100%}:host(:fullscreen) .video-area,:host(:-webkit-full-screen) .video-area{aspect-ratio:auto;background:#000;border-radius:0;width:100%;height:100%}:host(:fullscreen) .video-area[data-story],:host(:-webkit-full-screen) .video-area[data-story]{aspect-ratio:9/16;width:auto;max-width:100%;height:100%;max-height:none;margin:0 auto}.media-layer{position:absolute;top:0;right:0;bottom:0;left:0}.media-layer video{object-fit:contain;background:#000;width:100%;height:100%}.hp-center-x{transform:translate(-50%)}.hp-center-y{transform:translateY(-50%)}.hp-chip-panel[data-drop]{margin-top:8px;margin-bottom:0;top:100%;bottom:auto}.hp-top-bar{pointer-events:none;display:flex;position:absolute;top:8px;right:8px}.hp-top-bar>*{pointer-events:auto}.hp-story-list-btn{top:calc(8px + var(--hp-ctrl-btn-size) + 18px);right:12px}:host([data-cursor-hidden]),:host([data-cursor-hidden]) *{cursor:none!important}.hp-unmute-badge{z-index:25;background:var(--hp-tooltip-bg);color:var(--hp-tooltip-text);-webkit-backdrop-filter:blur(12px)saturate(160%);font:inherit;cursor:pointer;border:0;border-radius:9999px;align-items:center;gap:6px;padding:6px 12px 6px 10px;font-size:13px;font-weight:600;display:none;position:absolute;top:10px;left:10px;box-shadow:0 4px 14px #00000059}@media(hover:none)and (pointer:coarse){.hp-volume{display:none!important}.hp-unmute-badge[data-visible]{display:inline-flex}}.hp-error-screen{z-index:30;background:var(--hp-color-surface);justify-content:center;align-items:center;padding:12px;display:none;position:absolute;top:0;right:0;bottom:0;left:0}@supports (color:color-mix(in lab,red,red)){.hp-error-screen{background:color-mix(in srgb,var(--hp-color-surface) 94%,transparent)}}.hp-error-screen{-webkit-backdrop-filter:blur(16px)saturate(140%);color:var(--hp-color-on-surface);text-align:center;container-type:size}.hp-error-screen[data-visible]{animation:.22s hp-error-in;display:flex}@keyframes hp-error-in{0%{opacity:0}}.hp-error-card{flex-direction:column;align-items:center;gap:10px;max-width:340px;display:flex}.hp-error-icon{border:1px solid var(--hp-color-on-surface);border-radius:9999px;place-items:center;width:48px;height:48px;display:grid}@supports (color:color-mix(in lab,red,red)){.hp-error-icon{border:1px solid color-mix(in srgb,var(--hp-color-on-surface) 18%,transparent)}}.hp-error-icon{background:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp-error-icon{background:color-mix(in srgb,var(--hp-color-on-surface) 8%,transparent)}}.hp-error-icon{margin-bottom:2px;font-size:22px}.hp-error-message{margin:0;font-size:14px;font-weight:600;line-height:1.45}.hp-error-code{color:var(--hp-color-on-surface-muted);font-variant-numeric:tabular-nums;margin:-4px 0 0;font-size:12px}.hp-error-retry{border:1px solid var(--hp-chip-border);background:var(--hp-chip-bg);color:var(--hp-color-on-surface);font:inherit;cursor:pointer;border-radius:9999px;align-items:center;gap:6px;margin-top:6px;padding:7px 14px 7px 12px;font-size:13px;font-weight:600;transition:background-color .15s,border-color .15s;display:inline-flex}.hp-error-retry:hover{background:var(--hp-chip-bg-hover);border-color:var(--hp-chip-border-hover)}.hp-error-retry:focus-visible{outline:2px solid var(--hp-color-accent);outline-offset:2px}@container (max-height:240px){.hp-error-card{gap:6px}.hp-error-icon{width:36px;height:36px;margin-bottom:0;font-size:16px}.hp-error-message{font-size:13px}.hp-error-code{margin-top:-2px;font-size:11px}.hp-error-retry{margin-top:2px;padding:5px 12px 5px 10px;font-size:12px}}.hp-context-menu,.hp-stats,.hp-debug{border:1px solid var(--hp-panel-border);background:var(--hp-panel-bg);-webkit-backdrop-filter:blur(var(--hp-panel-blur)) saturate(160%);color:var(--hp-panel-text);text-shadow:var(--hp-panel-text-shadow,none);border-radius:10px;position:absolute;box-shadow:0 8px 28px #00000059}.hp-context-menu{z-index:40;min-width:200px;padding:4px;font-size:13px;display:none}.hp-context-menu[data-open]{animation:.12s hp-context-menu-in;display:block}@keyframes hp-context-menu-in{0%{opacity:0;transform:scale(.97)}}.hp-context-menu-item{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:space-between;align-items:center;gap:16px;padding:8px 10px;display:flex}.hp-context-menu-item[data-info]{cursor:default;font-weight:600}button.hp-context-menu-item:hover,button.hp-context-menu-item:focus-visible{background:var(--hp-panel-text)}@supports (color:color-mix(in lab,red,red)){button.hp-context-menu-item:hover,button.hp-context-menu-item:focus-visible{background:color-mix(in srgb,var(--hp-panel-text) 10%,transparent)}}button.hp-context-menu-item:hover,button.hp-context-menu-item:focus-visible{outline:none}.hp-context-menu-item+.hp-context-menu-item{margin-top:2px}.hp-context-menu-meta{color:var(--hp-panel-text-muted);font-variant-numeric:tabular-nums;font-weight:500}.hp-stats{z-index:28;width:min(360px,100% - 20px);max-height:calc(100% - 20px);padding:8px 12px 10px;font-size:11.5px;top:10px;left:10px;overflow:auto}.hp-stats-header{justify-content:space-between;align-items:center;margin-bottom:6px;font-size:12px;font-weight:700;display:flex}.hp-stats-close{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:9999px;padding:4px;display:inline-flex}.hp-stats-close:hover{background:var(--hp-panel-text)}@supports (color:color-mix(in lab,red,red)){.hp-stats-close:hover{background:color-mix(in srgb,var(--hp-panel-text) 12%,transparent)}}.hp-stats-body{grid-template-columns:auto 1fr;gap:3px 12px;margin:0;display:grid}.hp-stats-body dt{color:var(--hp-panel-text-muted);white-space:nowrap}.hp-stats-body dd{text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:hidden}.hp-seek-fb{z-index:8;border:1px solid var(--hp-chip-border);background:var(--hp-chip-bg);-webkit-backdrop-filter:blur(var(--hp-chip-blur)) saturate(160%);box-shadow:var(--hp-chip-shadow);color:var(--hp-chip-text);pointer-events:none;opacity:0;border-radius:9999px;align-items:center;gap:10px;padding:12px 20px 12px 16px;transition:opacity .18s,translate .22s cubic-bezier(.2,.8,.2,1);display:flex;position:absolute;top:50%}.hp-seek-fb[data-side=forward]{right:7%;translate:14px -50%}.hp-seek-fb[data-side=back]{flex-direction:row-reverse;padding:12px 16px 12px 20px;left:7%;translate:-14px -50%}.hp-seek-fb[data-visible]{opacity:1;translate:0 -50%}.hp-seek-fb-chevrons{display:flex}.hp-seek-fb-chevrons svg{fill:currentColor;opacity:.25;width:16px;height:16px;margin:0 -3px;animation:.9s ease-in-out infinite hp-seek-fb-chevron}.hp-seek-fb[data-side=back] .hp-seek-fb-chevrons{transform:scaleX(-1)}.hp-seek-fb-chevrons svg:nth-child(2){animation-delay:.15s}.hp-seek-fb-chevrons svg:nth-child(3){animation-delay:.3s}@keyframes hp-seek-fb-chevron{0%,to{opacity:.25}40%{opacity:1}}.hp-seek-fb-value{white-space:nowrap;align-items:baseline;gap:3px;display:flex}.hp-seek-fb-num{font-variant-numeric:tabular-nums;font-size:20px;font-weight:700;line-height:1;display:inline-block}.hp-seek-fb-unit{opacity:.75;font-size:12px;font-weight:600}.hp-seek-fb-bump{animation:.26s cubic-bezier(.2,.8,.2,1) hp-seek-fb-bump}@keyframes hp-seek-fb-bump{0%{transform:scale(1.25)}to{transform:scale(1)}}.video-area[data-compact] .hp-seek-fb{padding:8px 12px}.video-area[data-compact] .hp-seek-fb[data-side=forward]{right:4%}.video-area[data-compact] .hp-seek-fb[data-side=back]{padding:8px 12px;left:4%}.video-area[data-compact] .hp-seek-fb-chevrons{display:none}.video-area[data-compact] .hp-seek-fb-num{font-size:16px}.hp-sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media(prefers-reduced-motion:reduce){.hp-seek-fb,.hp-seek-fb-chevrons svg,.hp-seek-fb-bump{transition:none;animation:none}.hp-seek-fb-chevrons svg{opacity:.8}}.hp-skip-btn{position:relative}.hp-skip-btn>.hp-icon{font-size:calc(var(--hp-ctrl-icon-size) * 1.45)}.hp-skip-num{padding-top:calc(var(--hp-ctrl-icon-size) * .14);font-size:calc(var(--hp-ctrl-icon-size) * .56);letter-spacing:-.02em;font-variant-numeric:tabular-nums;pointer-events:none;justify-content:center;align-items:center;font-weight:700;line-height:1;display:flex;position:absolute;top:0;right:0;bottom:0;left:0}.hp-skip-num[data-long]{font-size:calc(var(--hp-ctrl-icon-size) * .42)}.hp-skip-btn:disabled{opacity:.4;cursor:default}.hp-center-play>.hp-chip{z-index:7;position:relative}.video-area[data-center-play-shifted] .hp-center-play>.hp-chip{width:var(--hp-center-play-size);height:var(--hp-center-play-size);translate:var(--hp-center-play-shift-x,0px) var(--hp-center-play-shift)}.video-area[data-pause-ad-ready]>:is(.media-layer,.hp-chrome,.hp-center-play,.hp-caption-layer,.hp-error-screen,.hp-mini-progress){right:var(--hp-pause-ad-w,0px);transition:right .38s cubic-bezier(.2,.8,.2,1),opacity .2s}.video-area[data-pause-ad] .media-layer video{object-fit:cover}.hp-pause-ad{z-index:25;width:var(--hp-pause-ad-panel-w,332px);box-sizing:border-box;background:var(--hp-color-surface,#0a0a0a);color:var(--hp-color-on-surface,#fff);visibility:hidden;flex-direction:column;justify-content:center;gap:10px;padding:12px 16px;transition:transform .38s cubic-bezier(.2,.8,.2,1),visibility 0s linear .38s;display:flex;position:absolute;top:0;bottom:0;right:0;transform:translate(100%)}.hp-pause-ad[data-open]{visibility:visible;transition:transform .38s cubic-bezier(.2,.8,.2,1);transform:none}.hp-pause-ad-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.hp-pause-ad-label{color:var(--hp-color-on-surface-muted,#ffffffb3);font-size:13px;font-weight:600}.hp-pause-ad-close{width:28px;height:28px;color:var(--hp-color-on-surface,#fff);cursor:pointer;background:0 0;border:0;border-radius:9999px;justify-content:center;align-items:center;padding:0;transition:background-color .15s;display:inline-flex}.hp-pause-ad-close:hover{background:var(--hp-chip-bg-hover)}.hp-pause-ad-body{border-radius:8px;justify-content:center;display:flex;overflow:hidden}.hp-pause-ad-resume{border:1px solid var(--hp-chip-border);background:var(--hp-chip-bg);color:var(--hp-color-on-surface,#fff);font:inherit;cursor:pointer;border-radius:9999px;align-self:stretch;padding:9px 14px;font-size:13px;font-weight:600;transition:background-color .15s,border-color .15s}.hp-pause-ad-resume:hover{background:var(--hp-chip-bg-hover);border-color:var(--hp-chip-border-hover)}.hp-pause-ad-close:focus-visible,.hp-pause-ad-resume:focus-visible{outline:2px solid var(--hp-color-accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){.video-area[data-pause-ad-ready]>:is(.media-layer,.hp-chrome,.hp-center-play,.hp-caption-layer,.hp-error-screen,.hp-mini-progress),.hp-pause-ad,.hp-pause-ad[data-open]{transition:none}}.hp-seek-thumb{width:var(--hp-seek-thumb-size);height:var(--hp-seek-thumb-size);background:var(--hp-color-accent);will-change:translate,scale;pointer-events:none;z-index:2;border-radius:9999px;transition:scale .15s;position:absolute;left:0;scale:.5}.hp-seekbar:hover .hp-seek-thumb,.hp-seekbar:active .hp-seek-thumb,.hp-seekbar:focus-visible .hp-seek-thumb{scale:1}.hp-seekbar[data-no-duration] .hp-seek-thumb{display:none}.hp-seek-hover-dot{width:var(--hp-seek-track-h-hover);height:var(--hp-seek-track-h-hover);background:var(--hp-color-on-surface);opacity:0;pointer-events:none;z-index:1;border-radius:9999px;transition:opacity .12s;position:absolute;top:50%;left:0;box-shadow:0 0 0 1px #00000073}.hp-seek-hover-dot[data-visible]{opacity:.9}.hp-mini-progress{z-index:6;pointer-events:none;background:var(--hp-color-on-surface);height:1px;position:absolute;bottom:0;left:0;right:0}@supports (color:color-mix(in lab,red,red)){.hp-mini-progress{background:color-mix(in srgb,var(--hp-color-on-surface) 25%,transparent)}}.hp-mini-progress{opacity:0;transition:opacity .2s}.hp-mini-progress[data-visible]:not([data-disabled]){opacity:1}.hp-mini-progress-fill{transform-origin:0;will-change:transform;position:absolute;top:0;right:0;bottom:0;left:0;transform:scaleX(0)}.hp-mini-progress-buffered{background:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp-mini-progress-buffered{background:color-mix(in srgb,var(--hp-color-on-surface) 40%,transparent)}}.hp-mini-progress-played{background:var(--hp-color-accent)}.hp-seek-time{border-radius:calc(var(--hp-radius) * .75);background:var(--hp-tooltip-bg);color:var(--hp-tooltip-text);-webkit-backdrop-filter:blur(12px)saturate(160%);font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;visibility:hidden;z-index:20;padding:3px 7px;font-size:12px;font-weight:500;position:absolute;bottom:calc(100% + 8px);left:0;box-shadow:0 4px 14px #00000059}.hp-seek-time[data-visible]{visibility:visible}.hp-sprite-tooltip{pointer-events:none;visibility:hidden;z-index:20;flex-direction:column;align-items:center;gap:4px;display:flex;position:absolute;bottom:calc(100% + 8px);left:0}.hp-sprite-tooltip[data-visible]{visibility:visible}.hp-sprite-image{border-radius:calc(var(--hp-radius) * .75);border:2px solid var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp-sprite-image{border:2px solid color-mix(in srgb,var(--hp-color-on-surface) 85%,transparent)}}.hp-sprite-image{background-color:#000;background-repeat:no-repeat;box-shadow:0 4px 14px #00000059}.hp-sprite-time{background:var(--hp-tooltip-bg);color:var(--hp-tooltip-text);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:4px;padding:2px 6px;font-size:12px}.hp-live-badge{height:var(--hp-ctrl-btn-size);color:var(--hp-color-on-surface);font:inherit;letter-spacing:.04em;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:9999px;align-items:center;gap:6px;padding:0 8px;font-size:12px;font-weight:600;display:inline-flex}.hp-live-badge:hover{background:var(--hp-chip-bg-hover)}.hp-live-badge:focus-visible,[part=time-display]:focus-visible{outline:2px solid var(--hp-color-accent,#fff);outline-offset:2px}.hp-live-dot{background:var(--hp-live-color,red);border-radius:50%;width:8px;height:8px;transition:background-color .16s}.hp-live-badge[data-behind]{color:var(--hp-color-on-surface-muted)}.hp-live-badge[data-behind] .hp-live-dot{background:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp-live-badge[data-behind] .hp-live-dot{background:color-mix(in srgb,var(--hp-color-on-surface) 45%,transparent)}}.hp-chapters{pointer-events:none;inset-inline:0;align-items:center;gap:2px;display:flex;position:absolute;top:0;bottom:0}.hp-chapter{min-width:1px;height:var(--hp-seek-track-h);background:var(--hp-color-on-surface);border-radius:1px;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.hp-chapter{background:color-mix(in srgb,var(--hp-color-on-surface) 25%,transparent)}}.hp-chapter{transition:height .15s}.hp-seekbar:hover .hp-chapter{height:var(--hp-seek-track-h-hover)}.hp-seekbar .hp-chapter[data-hover]{height:calc(var(--hp-seek-track-h-hover) * 1.6)}.hp-chapter-fill{transform-origin:0;will-change:transform;position:absolute;top:0;right:0;bottom:0;left:0;transform:scaleX(0)}.hp-chapter-buffered{background:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp-chapter-buffered{background:color-mix(in srgb,var(--hp-color-on-surface) 40%,transparent)}}.hp-chapter-played{background:var(--hp-color-accent)}.hp-chapter-tooltip{background:var(--hp-tooltip-bg);max-width:240px;color:var(--hp-tooltip-text);border-radius:calc(var(--hp-radius) * .75);-webkit-backdrop-filter:blur(12px)saturate(160%);text-align:center;pointer-events:none;white-space:nowrap;visibility:hidden;z-index:40;flex-direction:column;align-items:center;gap:2px;padding:4px 8px;font-size:12px;line-height:1.3;display:flex;position:absolute;bottom:calc(100% + 6px);left:0;box-shadow:0 4px 14px #00000059}.hp-chapter-tooltip[data-visible]{visibility:visible}.hp-chapter-tooltip-title{text-overflow:ellipsis;max-width:100%;font-weight:600;overflow:hidden}.hp-chapter-tooltip-time{opacity:.75;font-variant-numeric:tabular-nums}:host([data-sticky]){z-index:2147483000;border-radius:var(--hp-radius);box-shadow:0 8px 28px #00000073;width:min(360px,92vw)!important;aspect-ratio:var(--hp-aspect-ratio,16 / 9)!important;position:fixed!important}:host([data-sticky][data-sticky-corner=br]){inset:auto 16px 16px auto}:host([data-sticky][data-sticky-corner=bl]){inset:auto auto 16px 16px}:host([data-sticky][data-sticky-corner=tr]){inset:16px 16px auto auto}:host([data-sticky][data-sticky-corner=tl]){inset:16px auto auto 16px}.hp-caption-layer{z-index:5;pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0}.hp-caption-bubble{background:var(--hp-caption-bg);width:max-content;max-width:86%;color:var(--hp-caption-text);border-radius:var(--hp-caption-radius);font-size:calc(var(--hp-caption-font-size) * var(--hp-caption-size-multiplier,1));text-align:center;white-space:pre-line;cursor:grab;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;padding:.3em .6em;line-height:1.4;transition:transform .24s cubic-bezier(.25,.8,.25,1);display:none;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.hp-caption-bubble.hp-caption-visible{display:inline-block}.hp-caption-bubble.hp-caption-dragging,.hp-caption-bubble.hp-caption-no-transition{transition:none}.hp-caption-bubble.hp-caption-dragging{cursor:grabbing}[part=ad-layer][data-nonlinear]{top:auto;bottom:var(--hp-nonlinear-ad-offset,72px);height:var(--hp-nonlinear-ad-height,33%);pointer-events:none}[part=ad-layer][data-nonlinear] *{pointer-events:none}[part=ad-layer][data-nonlinear] :is(iframe,img,a,button){pointer-events:auto}.hp-debug{--hp-panel-text:#f1f1f4;--hp-panel-text-muted:#f1f1f49e;--hp-panel-border:#ffffff1f;text-shadow:none;z-index:30;background:#0e0e12f2;flex-direction:column;min-width:0;font-size:12px;line-height:1.45;display:flex;top:8px;right:8px;bottom:8px;left:8px;overflow:hidden}.hp-debug:focus{outline:none}.hp-debug-header{border-bottom:1px solid var(--hp-panel-border);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:8px 8px 8px 12px;display:flex}.hp-debug-title{white-space:nowrap;align-items:center;gap:8px;min-width:0;font-size:13px;font-weight:700;display:flex}.hp-debug-count{font-variant-numeric:tabular-nums;background:#f8717138;border-radius:9999px;padding:1px 7px;font-size:11px}.hp-debug-count:empty{display:none}.hp-debug-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.hp-debug-btn{border:1px solid var(--hp-panel-border);color:inherit;font:inherit;cursor:pointer;background:0 0;border-radius:9999px;padding:4px 10px;font-size:11.5px}.hp-debug-btn:hover:not(:disabled){background:var(--hp-panel-text)}@supports (color:color-mix(in lab,red,red)){.hp-debug-btn:hover:not(:disabled){background:color-mix(in srgb,var(--hp-panel-text) 12%,transparent)}}.hp-debug-btn:disabled{opacity:.45;cursor:default}.hp-debug-list{overscroll-behavior:contain;flex:1;min-height:0;margin:0;padding:6px 12px 10px;list-style:none;overflow:hidden auto}.hp-debug-row{border-left:2px solid var(--hp-panel-text);padding:8px 0 8px 10px}@supports (color:color-mix(in lab,red,red)){.hp-debug-row{border-left:2px solid color-mix(in srgb,var(--hp-panel-text) 25%,transparent)}}.hp-debug-row{min-width:0}.hp-debug-row+.hp-debug-row{margin-top:6px}.hp-debug-row[data-fatal]{border-left-color:#f87171}.hp-debug-row-head{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:2px;display:flex}.hp-debug-time{color:var(--hp-panel-text-muted);font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.hp-debug-source,.hp-debug-fatal{background:var(--hp-panel-text);border-radius:9999px;padding:1px 7px;font-size:10.5px;font-weight:600}@supports (color:color-mix(in lab,red,red)){.hp-debug-source,.hp-debug-fatal{background:color-mix(in srgb,var(--hp-panel-text) 12%,transparent)}}.hp-debug-source[data-source=ads]{background:#f5c4513d}.hp-debug-source[data-source=stream],.hp-debug-source[data-source=media]{background:#60a5fa3d}.hp-debug-fatal{background:#f8717147}.hp-debug-message{overflow-wrap:anywhere;font-weight:600}.hp-debug-repeat{color:var(--hp-panel-text-muted);font-weight:500}.hp-debug-details{grid-template-columns:max-content minmax(0,1fr);gap:1px 10px;margin:4px 0 0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;display:grid}.hp-debug-details dt{color:var(--hp-panel-text-muted)}.hp-debug-details dd{overflow-wrap:anywhere;min-width:0;margin:0}.hp-debug-empty{color:var(--hp-panel-text-muted);margin:auto;padding:16px}.hp-debug-empty[hidden]{display:none}.hp-ad-return{z-index:25;color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#0e0e12d1;border:1px solid #ffffff40;border-radius:999px;padding:10px 16px;font:600 14px/1.2 system-ui,-apple-system,sans-serif;animation:.2s ease-out hp-ad-return-in;position:absolute;bottom:64px;right:12px}@keyframes hp-ad-return-in{0%{opacity:0;transform:translateY(6px)}}:host([data-audio]) .hp-center-play{display:none}.hp-audio{z-index:1;text-align:left;pointer-events:none;color:#fff;background:linear-gradient(160deg,#2a1f2b,#0c0c10);background:radial-gradient(80% 90% at 20% 10%,var(--hp-color-accent,#e5484d),transparent 70%),linear-gradient(160deg,#1d1d24,#0c0c10);position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.hp-audio{background:radial-gradient(80% 90% at 20% 10%,color-mix(in srgb,var(--hp-color-accent,#e5484d) 38%,transparent),transparent 70%),linear-gradient(160deg,#1d1d24,#0c0c10)}}.hp-audio-backdrop{position:absolute;top:-8%;right:-8%;bottom:-8%;left:-8%}.hp-audio-backdrop img{object-fit:cover;filter:blur(28px)saturate(1.3)brightness(.55);width:100%;height:100%;transform:scale(1.08)}.hp-audio:not([data-cover]) .hp-audio-backdrop,.hp-audio:not([data-cover]) .hp-audio-sleeve img{display:none}.hp-audio-meta{z-index:3;text-shadow:0 1px 6px #0009;line-height:1.25;display:none;position:absolute;top:12px;left:14px;right:64px}.hp-audio[data-meta] .hp-audio-meta{display:block}.hp-audio-title{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:700;overflow:hidden}.hp-audio-artist{opacity:.8;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:12.5px;overflow:hidden}.hp-audio-area{inset:0 0 var(--hp-audio-bottom-space,66px) 0;justify-content:center;align-items:center;display:flex;position:absolute}.hp-audio[data-meta] .hp-audio-area{top:44px}.hp-audio-deck{height:var(--hp-deck-h,0px);flex:none;align-items:center;display:flex;position:relative}.hp-audio[data-position=left] .hp-audio-deck{flex-direction:row-reverse}.hp-audio-sleeve{z-index:2;width:var(--hp-deck-h,0px);height:var(--hp-deck-h,0px);background:radial-gradient(70% 70% at 30% 25%,#e5484d,#0000 75%),#26262d;background:radial-gradient(70% 70% at 30% 25%,var(--hp-color-accent,#e5484d),transparent 75%),#26262d;border-radius:6px;flex:none;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.hp-audio-sleeve{background:radial-gradient(70% 70% at 30% 25%,color-mix(in srgb,var(--hp-color-accent,#e5484d) 70%,#fff 0%),transparent 75%),#26262d}}.hp-audio-sleeve{box-shadow:0 18px 40px -12px #000000bf,0 0 0 1px #ffffff14}.hp-audio-sleeve img{object-fit:cover;width:100%;height:100%;display:block}.hp-audio-sleeve[hidden],.hp-vinyl[hidden],.hp-tonearm-holder[hidden]{display:none}.hp-vinyl{z-index:1;width:calc(var(--hp-deck-h,0px) * .96);height:calc(var(--hp-deck-h,0px) * .96);pointer-events:auto;touch-action:none;-webkit-tap-highlight-color:transparent;filter:drop-shadow(0 14px 26px #0009);border-radius:50%;outline:none;flex:none;transition:margin .45s cubic-bezier(.2,.8,.2,1);position:relative}.hp-audio[data-position=right] .hp-vinyl{margin-left:calc(var(--hp-deck-h) * -.56)}.hp-audio[data-position=left] .hp-vinyl{margin-right:calc(var(--hp-deck-h) * -.56)}.hp-audio[data-position=right][data-playing] .hp-vinyl{margin-left:calc(var(--hp-deck-h) * -.46)}.hp-audio[data-position=left][data-playing] .hp-vinyl{margin-right:calc(var(--hp-deck-h) * -.46)}.hp-audio:not([data-laid-out]) .hp-vinyl{transition:none}.hp-vinyl[data-scratch]:not([data-live]){cursor:grab}.hp-audio[data-scratching] .hp-vinyl{cursor:grabbing}.hp-vinyl:focus-visible{box-shadow:0 0 0 3px #ffffffb3;box-shadow:0 0 0 3px var(--hp-color-accent,#e5484d)}@supports (color:color-mix(in lab,red,red)){.hp-vinyl:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--hp-color-accent,#e5484d) 80%,transparent)}}.hp-vinyl-disc{will-change:transform;position:absolute;top:0;right:0;bottom:0;left:0}.hp-vinyl-disc svg,.hp-tonearm svg{width:100%;height:100%;display:block}.hp-vinyl-sheen{pointer-events:none;background:conic-gradient(from 200deg,#0000,#ffffff21 22deg,#0000 48deg,#0000 180deg,#ffffff17 205deg,#0000 232deg);border-radius:50%;position:absolute;top:0;right:0;bottom:0;left:0;-webkit-mask:radial-gradient(circle,#0000 0 35%,#000 36% 99%,#0000 100%);mask:radial-gradient(circle,#0000 0 35%,#000 36% 99%,#0000 100%)}.hp-tonearm-holder{pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0}.hp-audio[data-position=left] .hp-tonearm-holder{transform:scaleX(-1)}.hp-tonearm{transform-origin:70% 11%;filter:drop-shadow(0 6px 8px #00000080);width:46%;height:92%;transition:transform .6s cubic-bezier(.3,.7,.2,1);position:absolute;top:-6%;right:-14%;transform:rotate(-26deg)}.hp-audio[data-playing] .hp-tonearm{transform:rotate(0)}@media(prefers-reduced-motion:reduce){.hp-vinyl,.hp-tonearm{transition:none}}.hp-audio[data-short][data-meta] .hp-audio-meta{display:none}.hp-audio[data-short][data-meta] .hp-audio-area{top:6px}[part=ad-layer][data-audio-ad]{background:0 0}[part=ad-layer][data-audio-ad] video{opacity:0}.hp-audio:after{content:"";pointer-events:none;z-index:2;background:linear-gradient(#0000,#00000047 45%,#0000009e);height:min(140px,45%);position:absolute;bottom:0;left:0;right:0}:host([data-audio-compact]) .video-area{aspect-ratio:auto;height:var(--hp-audio-bar-height,84px);overflow:visible}:host([data-audio-compact]) .hp-audio{border-radius:var(--hp-radius);background:linear-gradient(120deg,#24242c,#141418);background:linear-gradient(120deg,var(--hp-color-accent,#e5484d),transparent 60%),var(--hp-color-surface,#141418)}@supports (color:color-mix(in lab,red,red)){:host([data-audio-compact]) .hp-audio{background:linear-gradient(120deg,color-mix(in srgb,var(--hp-color-accent,#e5484d) 16%,transparent),transparent 60%),var(--hp-color-surface,#141418)}}:host([data-audio-compact]) .hp-audio>*,:host([data-audio-compact]) .hp-audio:after,:host([data-audio-compact]) .hp-caption-layer,:host([data-audio-compact]) .hp-loading-spinner,:host([data-audio-compact]) .hp-chrome:before,:host([data-audio-compact]) .hp-chrome:after{display:none}.hp-bar-meta{min-width:0;color:var(--hp-color-on-surface,#fff);pointer-events:none;align-items:center;gap:10px;padding:0 6px;display:flex}.hp-bar-meta[data-empty] .hp-bar-text{display:none}.hp-bar-text{flex-direction:column;min-width:0;line-height:1.25;display:flex}.hp-bar-title{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.hp-bar-sub{opacity:.72;white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.hp-bar-sub:empty{display:none}.hp-bar-eq{flex:none;align-items:flex-end;gap:2px;width:14px;height:14px;display:inline-flex}.hp-bar-eq i{background:var(--hp-color-accent,#fff);border-radius:1px;flex:1;height:30%;transition:height .2s}.hp-bar-meta[data-playing] .hp-bar-eq i{animation:.9s ease-in-out infinite alternate hp-bar-eq}.hp-bar-meta[data-playing] .hp-bar-eq i:nth-child(2){animation-duration:.7s;animation-delay:-.3s}.hp-bar-meta[data-playing] .hp-bar-eq i:nth-child(3){animation-duration:1.1s;animation-delay:-.6s}@keyframes hp-bar-eq{0%{height:25%}to{height:100%}}@media(prefers-reduced-motion:reduce){.hp-bar-meta[data-playing] .hp-bar-eq i{height:70%;animation:none}}.hp-lock{vertical-align:-2px;display:inline-block}.hp-rw-button{color:#fff;cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:transparent;background:#0c0c10b8;border:1px solid #ffffff38;border-radius:999px;align-items:center;gap:6px;padding:7px 12px;font:600 12.5px/1 system-ui,-apple-system,sans-serif;display:inline-flex;position:absolute;top:12px;left:12px;box-shadow:0 6px 18px -8px #000000b3}.hp-rw-button:hover{background:#0c0c10e0}.hp-rw-button[hidden]{display:none}.hp-rw-button .hp-lock{color:var(--hp-color-accent,#fff)}.hp-rw-dialog{z-index:45;color:#fff;text-align:center;background:#0000009e;justify-content:center;align-items:center;padding:12px;animation:.18s ease-out hp-rw-fade;display:flex;position:absolute;top:0;right:0;bottom:0;left:0}.hp-rw-card{background:#14141af5;border:1px solid #ffffff24;border-radius:14px;width:min(360px,100%);max-height:100%;padding:18px 18px 16px;overflow:auto;box-shadow:0 20px 50px -20px #000c}.hp-rw-icon{color:var(--hp-color-accent,#fff);background:#ffffff14;border-radius:50%;padding:9px;display:inline-flex}.hp-rw-icon .hp-lock{width:18px;height:18px}.hp-rw-title{margin-top:10px;font-size:15px;font-weight:700}.hp-rw-text{opacity:.82;margin-top:6px;font-size:13px;line-height:1.45}.hp-rw-actions{justify-content:center;gap:8px;margin-top:14px;display:flex}.hp-rw-actions:empty{display:none}.hp-rw-btn{color:#fff;cursor:pointer;background:0 0;border:1px solid #fff3;border-radius:999px;padding:8px 14px;font:600 13px/1 system-ui,-apple-system,sans-serif}.hp-rw-btn-primary{background:var(--hp-color-accent,#fff);color:var(--hp-color-on-accent,#0a0a0a);border-color:#0000}.hp-rw-spinner{border:2px solid #ffffff40;border-top-color:#fff;border-radius:50%;width:22px;height:22px;margin:4px auto 0;animation:.8s linear infinite hp-rw-spin}.hp-rw-toast{z-index:45;color:#fff;pointer-events:none;background:#0c0c10d9;border-radius:999px;padding:8px 14px;font:600 13px/1 system-ui,-apple-system,sans-serif;animation:.2s ease-out hp-rw-fade;position:absolute;top:12px;left:50%;transform:translate(-50%)}@keyframes hp-rw-fade{0%{opacity:0}}@keyframes hp-rw-spin{to{transform:rotate(360deg)}}.hp-settings-panel [data-locked],.hp-chip-panel [data-locked]{opacity:.85}.hp-sponsor-logo{z-index:21;width:var(--hp-sponsor-logo-w,96px);color:#fff;filter:drop-shadow(0 2px 6px #0000008c);flex-direction:column;align-items:center;gap:4px;text-decoration:none;transition:opacity .25s,right .35s cubic-bezier(.2,.8,.2,1),bottom .35s cubic-bezier(.2,.8,.2,1);animation:.4s ease-out hp-rw-fade;display:flex;position:absolute}.hp-sponsor-logo[data-position=top-left]{top:12px;left:12px}.hp-sponsor-logo[data-position=top-right]{top:12px;right:var(--hp-sponsor-avoid-right,12px)}.hp-sponsor-logo[data-position=bottom-left]{bottom:var(--hp-sponsor-avoid-bottom,76px);left:12px}.hp-sponsor-logo[data-position=bottom-right]{bottom:var(--hp-sponsor-avoid-bottom,76px);right:12px}.video-area[data-chrome-hidden] .hp-sponsor-logo[data-position=top-right]{right:12px}.video-area[data-chrome-hidden] .hp-sponsor-logo[data-position=bottom-left],.video-area[data-chrome-hidden] .hp-sponsor-logo[data-position=bottom-right]{bottom:12px}.hp-sponsor-logo img{width:100%;height:auto;display:block}.hp-sponsor-label{text-align:center;white-space:nowrap;text-overflow:ellipsis;letter-spacing:.08em;text-transform:uppercase;opacity:.85;max-width:100%;font:600 10px/1 system-ui,-apple-system,sans-serif;overflow:hidden}.video-area:has(.hp-rw-button:not([hidden])) .hp-sponsor-logo[data-position=top-left]{top:52px}.hp-sponsor-intro{z-index:22;color:#fff;pointer-events:none;background:#0c0c10d1;border-radius:999px;align-items:center;gap:10px;max-width:calc(100% - 32px);padding:8px 16px 8px 8px;font:600 14px/1.2 system-ui,-apple-system,sans-serif;transition:opacity .35s,transform .35s;animation:.45s cubic-bezier(.2,.8,.2,1) hp-sponsor-in;display:flex;position:absolute;bottom:84px;left:50%;transform:translate(-50%);box-shadow:0 12px 30px -12px #000c}.hp-sponsor-intro[data-leaving]{opacity:0;transform:translate(-50%,8px)}.hp-sponsor-intro img{border-radius:6px;width:auto;max-width:96px;height:28px}.hp-sponsor-intro span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@keyframes hp-sponsor-in{0%{opacity:0;transform:translate(-50%,12px)scale(.96)}}:host([data-sponsor-hidden]) .hp-sponsor-logo,:host([data-sponsor-hidden]) .hp-sponsor-intro{display:none}.hp-adtrigger{z-index:26;box-sizing:border-box;pointer-events:none;justify-content:center;align-items:center;padding:12px;display:none;position:absolute;top:0;right:0;bottom:0;left:0}.hp-adtrigger[data-open]{animation:.3s ease-out hp-adtrigger-in;display:flex}.hp-adtrigger[data-backdrop]{pointer-events:auto;background:#0000009e}.hp-adtrigger[data-layout=full]{padding:0}.hp-adtrigger[data-layout=none]{justify-content:flex-start;align-items:flex-start;padding:0}.hp-adtrigger[data-layout=none] .hp-adtrigger-frame{position:static}.hp-adtrigger[data-layout=top]{align-items:flex-start}.hp-adtrigger[data-layout=bottom]{align-items:flex-end;padding-bottom:72px}.hp-adtrigger[data-layout=top-left]{justify-content:flex-start;align-items:flex-start}.hp-adtrigger[data-layout=top-right]{justify-content:flex-end;align-items:flex-start}.hp-adtrigger[data-layout=bottom-left]{justify-content:flex-start;align-items:flex-end;padding-bottom:72px}.hp-adtrigger[data-layout=bottom-right]{justify-content:flex-end;align-items:flex-end;padding-bottom:72px}.hp-adtrigger-frame{pointer-events:auto;max-width:100%;max-height:100%;position:relative}.hp-adtrigger[data-layout=full] .hp-adtrigger-frame{width:100%;height:100%}.hp-adtrigger-frame[data-sized]{width:min(var(--hp-adtrigger-w),100%);height:min(var(--hp-adtrigger-h),100%)}.hp-adtrigger[data-layout=full] ::slotted(*),.hp-adtrigger-frame[data-sized] ::slotted(*){width:100%;height:100%;display:block}.hp-adtrigger-label{z-index:1;color:#fff;letter-spacing:.08em;text-transform:uppercase;pointer-events:none;background:#000000a8;border-radius:4px;padding:3px 7px;font:600 10px/1 system-ui,-apple-system,sans-serif;position:absolute;top:8px;left:8px}.hp-adtrigger-close{z-index:2;color:#fff;cursor:pointer;background:#000000b8;border:0;border-radius:999px;place-items:center;width:30px;height:30px;padding:0;display:grid;position:absolute;top:6px;right:6px}.hp-adtrigger-close[hidden]{display:none}.hp-adtrigger-close:focus-visible{outline:2px solid var(--hp-color-accent,#fff);outline-offset:2px}.hp-cast-overlay{z-index:12;color:#fff;text-align:center;pointer-events:none;background:radial-gradient(#14141adb,#060609f5);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:16px;font:600 15px/1.3 system-ui,-apple-system,sans-serif;display:none;position:absolute;top:0;right:0;bottom:0;left:0}.hp-cast-overlay[data-open]{display:flex}.hp-cast-overlay .hp-icon{color:var(--hp-color-accent,#fff);font-size:44px}.hp-cast-overlay-ad{background:#ffffff24;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;display:none}.hp-cast-overlay[data-break] .hp-cast-overlay-ad{display:inline-block}.video-area[data-casting] video{visibility:hidden}[part=cast-button][data-connecting] .hp-icon{animation:1s ease-in-out infinite hp-cast-pulse}@keyframes hp-cast-pulse{50%{opacity:.35}}@keyframes hp-adtrigger-in{0%{opacity:0}}@media(prefers-reduced-motion:reduce){.hp-sponsor-intro,.hp-rw-dialog,.hp-rw-toast{animation:none}}@media(hover:none)and (pointer:coarse){.video-area:has(.hp-unmute-badge[data-visible]) .hp-rw-button,.video-area:has(.hp-unmute-badge[data-visible]) .hp-sponsor-logo[data-position=top-left]{top:52px}.video-area:has(.hp-unmute-badge[data-visible]):has(.hp-rw-button:not([hidden])) .hp-sponsor-logo[data-position=top-left]{top:92px}}.video-area[data-compact] .hp-rw-icon{display:none}.video-area[data-compact] .hp-rw-card{padding:12px 14px}.video-area[data-compact] .hp-rw-title{margin-top:0;font-size:14px}.video-area[data-compact] .hp-rw-text{font-size:12px;line-height:1.4}.video-area[data-compact] .hp-rw-actions{margin-top:10px}.hp-sponsor-logo[data-compact]{width:min(var(--hp-sponsor-logo-w,96px),48px);gap:2px}.hp-sponsor-logo[data-compact] .hp-sponsor-label{font-size:8.5px}:host([data-sponsor-intro]) .hp-sponsor-logo{pointer-events:none;opacity:0!important}.hp-redirect-thumb{aspect-ratio:16/9;background:#111;border-radius:8px;flex:none;display:block;position:relative;overflow:hidden}.hp-redirect-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .3s;position:absolute;top:0;right:0;bottom:0;left:0}.hp-redirect-ring{filter:drop-shadow(0 2px 6px #0009);width:44px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-90deg)}.hp-redirect-ring-track{fill:#00000073;stroke:#ffffff47;stroke-width:3px}.hp-redirect-ring-bar{fill:none;stroke:var(--hp-color-accent,#fff);stroke-width:3px;stroke-linecap:round;transition:stroke-dashoffset .3s linear}.hp-redirect-play{color:#fff;font-size:18px;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-45%,-50%)}.hp-redirect-duration{color:#fff;background:#000000c7;border-radius:4px;padding:1px 5px;font:600 10px/1.4 system-ui,-apple-system,sans-serif;position:absolute;bottom:5px;right:5px}.hp-redirect-label{color:var(--hp-color-accent,#fff);letter-spacing:.1em;text-transform:uppercase;font:700 10px/1.2 system-ui,-apple-system,sans-serif}.hp-redirect-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font:600 13px/1.3 system-ui,-apple-system,sans-serif;display:-webkit-box;overflow:hidden}.hp-redirect-sub{white-space:nowrap;text-overflow:ellipsis;opacity:.7;font:500 11px/1.3 system-ui,-apple-system,sans-serif;overflow:hidden}.hp-redirect-card{z-index:24;color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0e0e12e6;border-radius:12px;align-items:stretch;width:min(340px,100% - 24px);transition:bottom .25s,top .25s;animation:.35s cubic-bezier(.2,.8,.2,1) hp-redirect-in;display:flex;position:absolute;box-shadow:0 16px 36px -14px #000000d9}.hp-redirect-card[data-position=bottom-right]{bottom:76px;right:12px}.hp-redirect-card[data-position=bottom-left]{bottom:76px;left:12px}.hp-redirect-card[data-position=top-right]{top:12px;right:12px}.hp-redirect-card[data-position=top-left]{top:12px;left:12px}.video-area[data-chrome-hidden] .hp-redirect-card[data-position^=bottom]{bottom:12px}.hp-redirect-card-main{min-width:0;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;flex:1;align-items:center;gap:10px;padding:8px;display:flex}.hp-redirect-card-main .hp-redirect-thumb{width:42%}.hp-redirect-card-main:hover .hp-redirect-thumb img{transform:scale(1.04)}.hp-redirect-text{flex-direction:column;gap:3px;min-width:0;padding-right:22px;display:flex}.hp-redirect-close{color:#fff;cursor:pointer;background:#ffffff1f;border:0;border-radius:999px;place-items:center;width:24px;height:24px;padding:0;font-size:13px;display:grid;position:absolute;top:6px;right:6px}.hp-redirect-close:hover{background:#ffffff3d}.hp-redirect-card-main:focus-visible,.hp-redirect-close:focus-visible,.hp-redirect-poster:focus-visible,.hp-redirect-btn:focus-visible{outline:2px solid var(--hp-color-accent,#fff);outline-offset:2px}.video-area[data-compact] .hp-redirect-card{width:min(260px,100% - 16px)}.video-area[data-compact] .hp-redirect-card[data-position^=bottom]{bottom:56px}.video-area[data-compact][data-chrome-hidden] .hp-redirect-card[data-position^=bottom]{bottom:8px}.video-area[data-compact] .hp-redirect-card .hp-redirect-sub{display:none}.video-area[data-compact] .hp-redirect-card .hp-redirect-ring{width:34px;height:34px}.hp-redirect-screen{z-index:30;color:#fff;text-align:center;background:#060609e6;justify-content:center;align-items:center;padding:16px;animation:.3s ease-out hp-redirect-fade;display:flex;position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.hp-redirect-bg{object-fit:cover;opacity:.35;filter:blur(18px)saturate(1.2);width:calc(100% + 40px);height:calc(100% + 40px);position:absolute;top:-20px;right:-20px;bottom:-20px;left:-20px}.hp-redirect-panel{flex-direction:column;align-items:center;gap:8px;width:min(420px,100%);display:flex;position:relative}.hp-redirect-poster{cursor:pointer;background:0 0;border:0;border-radius:10px;width:min(320px,70%);padding:0;box-shadow:0 18px 40px -16px #000000e6}.hp-redirect-poster .hp-redirect-thumb{border-radius:10px;width:100%}.hp-redirect-poster .hp-redirect-ring{width:64px;height:64px}.hp-redirect-poster .hp-redirect-play{font-size:24px}.hp-redirect-screen .hp-redirect-title{font-size:16px}.hp-redirect-counter{opacity:.75;font:500 12px/1.4 system-ui,-apple-system,sans-serif}.hp-redirect-actions{gap:8px;margin-top:4px;display:flex}.hp-redirect-btn{color:#fff;cursor:pointer;background:#ffffff24;border:0;border-radius:999px;padding:7px 16px;font:600 13px/1 system-ui,-apple-system,sans-serif}.hp-redirect-btn:hover{background:#ffffff3d}.hp-redirect-btn-primary,.hp-redirect-btn-primary:hover{background:var(--hp-color-accent,#fff);color:var(--hp-color-on-accent,#000)}.video-area[data-compact] .hp-redirect-poster{width:min(200px,55%)}.video-area[data-compact] .hp-redirect-screen .hp-redirect-sub,.video-area[data-compact] .hp-redirect-counter{display:none}.hp-redirect-suggestions{z-index:30;background:#060609eb;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));align-content:center;gap:12px;padding:16px;display:grid;position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto}.hp-redirect-suggestion{color:#fff;flex-direction:column;gap:6px;text-decoration:none;display:flex}.hp-redirect-suggestion .hp-redirect-play{opacity:0;font-size:22px;transition:opacity .2s}.hp-redirect-suggestion:hover .hp-redirect-play,.hp-redirect-suggestion:focus-visible .hp-redirect-play{opacity:1}.hp-redirect-suggestion:hover .hp-redirect-thumb,.hp-redirect-suggestion:focus-visible .hp-redirect-thumb{outline:2px solid var(--hp-color-accent,#fff)}@keyframes hp-redirect-in{0%{opacity:0;transform:translateY(10px)scale(.97)}}@keyframes hp-redirect-fade{0%{opacity:0}}@media(prefers-reduced-motion:reduce){.hp-redirect-card,.hp-redirect-screen{animation:none}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}';
5
+ function X() {
6
6
  if (typeof navigator > "u") return !1;
7
7
  const n = navigator.userAgent, t = /iP(hone|od|ad)/.test(n) || navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1, e = /^((?!chrome|chromium|android|crios|fxios|edg|opr).)*safari/i.test(n);
8
8
  return t || e;
9
9
  }
10
- function X() {
10
+ function Y() {
11
11
  const n = window;
12
12
  return typeof n.MediaSource < "u" || typeof n.ManagedMediaSource < "u";
13
13
  }
14
- function Te(n, t) {
14
+ function be(n, t) {
15
15
  var i;
16
16
  const e = (i = t == null ? void 0 : t.split(";")[0]) == null ? void 0 : i.trim().toLowerCase();
17
17
  return e === "application/vnd.apple.mpegurl" || e === "application/x-mpegurl" || /\.m3u8(?:$|[?#])/i.test(n) ? "hls" : e === "video/mp4" || /\.mp4(?:$|[?#])/i.test(n) ? "mp4" : "unknown";
18
18
  }
19
- class Se {
19
+ class Re {
20
20
  constructor(t, e) {
21
21
  s(this, "hls", null);
22
22
  s(this, "video");
@@ -41,7 +41,7 @@ class Se {
41
41
  }
42
42
  async load(t, e) {
43
43
  this.last = { src: t, type: e }, this.destroy(), this.video.pause();
44
- const i = Te(t, e);
44
+ const i = be(t, e);
45
45
  if (this.callbacks.onLevelsChanged([], -1), this.callbacks.onAudioTracksChanged([], -1), this.streamTextTracks.clear(), this.callbacks.onTextTracksFound([]), i !== "hls") {
46
46
  this.engineInfo = { engine: "native" }, this.video.src = t;
47
47
  return;
@@ -51,8 +51,8 @@ class Se {
51
51
  this.loadNativeHls(t, "option");
52
52
  return;
53
53
  }
54
- if (r !== "hls.js" && o && (W() || !X())) {
55
- this.loadNativeHls(t, W() ? "apple-native" : "no-mse");
54
+ if (r !== "hls.js" && o && (X() || !Y())) {
55
+ this.loadNativeHls(t, X() ? "apple-native" : "no-mse");
56
56
  return;
57
57
  }
58
58
  await this.attachHlsJs(t);
@@ -77,7 +77,7 @@ class Se {
77
77
  * İlk metadata'dan önce kod 4 gelirse ve MSE varsa hls.js'e geç.
78
78
  */
79
79
  probeNativeHls(t) {
80
- if (!X() || this.engineInfo.reason === "hlsjs-failed" || this.engineInfo.reason === "option") return;
80
+ if (!Y() || this.engineInfo.reason === "hlsjs-failed" || this.engineInfo.reason === "option") return;
81
81
  const e = () => r(), i = () => {
82
82
  var a, l;
83
83
  const o = ((a = this.video.error) == null ? void 0 : a.code) === 4;
@@ -102,9 +102,9 @@ class Se {
102
102
  };
103
103
  }
104
104
  async attachHlsJs(t) {
105
- var p;
105
+ var h;
106
106
  const { default: e } = await import("./hls-BOHE_fg_.js");
107
- if (((p = this.last) == null ? void 0 : p.src) !== t) return;
107
+ if (((h = this.last) == null ? void 0 : h.src) !== t) return;
108
108
  if (!e.isSupported()) {
109
109
  this.engineInfo = { engine: "native-hls", reason: "no-mse" }, this.video.src = t;
110
110
  return;
@@ -112,48 +112,48 @@ class Se {
112
112
  const i = new e(this.buildHlsConfig());
113
113
  this.hls = i, this.engineInfo = { engine: "hls.js" };
114
114
  let r = !1, o = !1;
115
- i.on(e.Events.ERROR, (u, d) => {
116
- var h, c, g, b, v, y;
115
+ i.on(e.Events.ERROR, (c, p) => {
116
+ var u, f, y, x, k, w;
117
117
  if (this.hls === i) {
118
- const f = d;
119
- (y = (v = this.callbacks).onStreamError) == null || y.call(v, {
120
- type: String(d.type),
121
- details: String(d.details),
122
- fatal: !!d.fatal,
123
- url: f.url ?? ((h = f.frag) == null ? void 0 : h.url) ?? ((c = f.context) == null ? void 0 : c.url),
124
- httpStatus: (g = f.response) == null ? void 0 : g.code,
125
- reason: f.reason ?? ((b = f.error) == null ? void 0 : b.message)
118
+ const d = p;
119
+ (w = (k = this.callbacks).onStreamError) == null || w.call(k, {
120
+ type: String(p.type),
121
+ details: String(p.details),
122
+ fatal: !!p.fatal,
123
+ url: d.url ?? ((u = d.frag) == null ? void 0 : u.url) ?? ((f = d.context) == null ? void 0 : f.url),
124
+ httpStatus: (y = d.response) == null ? void 0 : y.code,
125
+ reason: d.reason ?? ((x = d.error) == null ? void 0 : x.message)
126
126
  });
127
127
  }
128
- if (!d.fatal || this.hls !== i) return;
129
- const m = [e.ErrorDetails.MANIFEST_LOAD_ERROR, e.ErrorDetails.MANIFEST_LOAD_TIMEOUT].includes(d.details);
128
+ if (!p.fatal || this.hls !== i) return;
129
+ const m = [e.ErrorDetails.MANIFEST_LOAD_ERROR, e.ErrorDetails.MANIFEST_LOAD_TIMEOUT].includes(p.details);
130
130
  if (!r && m && this.video.canPlayType("application/vnd.apple.mpegurl") !== "") {
131
131
  i.destroy(), this.hls = null, this.loadNativeHls(t, "hlsjs-failed");
132
132
  return;
133
133
  }
134
- if (d.type === e.ErrorTypes.MEDIA_ERROR && !o) {
134
+ if (p.type === e.ErrorTypes.MEDIA_ERROR && !o) {
135
135
  o = !0, i.recoverMediaError();
136
136
  return;
137
137
  }
138
- i.stopLoad(), this.callbacks.onFatalError(d.type === e.ErrorTypes.NETWORK_ERROR ? "network" : "media");
138
+ i.stopLoad(), this.callbacks.onFatalError(p.type === e.ErrorTypes.NETWORK_ERROR ? "network" : "media");
139
139
  });
140
- const a = () => i.levels.map((u, d) => ({ index: d, height: u.height, bitrate: u.bitrate }));
140
+ const a = () => i.levels.map((c, p) => ({ index: p, height: c.height, bitrate: c.bitrate }));
141
141
  i.on(e.Events.MANIFEST_PARSED, () => {
142
142
  r = !0, this.callbacks.onLevelsChanged(a(), i.currentLevel);
143
- }), i.on(e.Events.LEVEL_SWITCHED, (u, d) => {
144
- this.callbacks.onLevelsChanged(a(), i.autoLevelEnabled ? -1 : d.level);
143
+ }), i.on(e.Events.LEVEL_SWITCHED, (c, p) => {
144
+ this.callbacks.onLevelsChanged(a(), i.autoLevelEnabled ? -1 : p.level);
145
145
  });
146
- const l = () => i.audioTracks.map((u, d) => ({ index: d, label: u.name || u.lang || `${d + 1}`, lang: u.lang ?? "" }));
147
- i.on(e.Events.AUDIO_TRACKS_UPDATED, () => this.callbacks.onAudioTracksChanged(l(), i.audioTrack)), i.on(e.Events.AUDIO_TRACK_SWITCHED, (u, d) => this.callbacks.onAudioTracksChanged(l(), d.id)), i.on(e.Events.NON_NATIVE_TEXT_TRACKS_FOUND, (u, d) => {
146
+ const l = () => i.audioTracks.map((c, p) => ({ index: p, label: c.name || c.lang || `${p + 1}`, lang: c.lang ?? "" }));
147
+ i.on(e.Events.AUDIO_TRACKS_UPDATED, () => this.callbacks.onAudioTracksChanged(l(), i.audioTrack)), i.on(e.Events.AUDIO_TRACK_SWITCHED, (c, p) => this.callbacks.onAudioTracksChanged(l(), p.id)), i.on(e.Events.NON_NATIVE_TEXT_TRACKS_FOUND, (c, p) => {
148
148
  var m;
149
- for (const h of d.tracks) {
150
- const c = h.subtitleTrack, g = c ? `sub:${c.id}` : `cc:${h._id ?? h.label}`, b = h.kind === "captions" ? "captions" : "subtitles";
151
- this.streamTextTracks.set(g, { id: g, kind: b, label: h.label, lang: (c == null ? void 0 : c.lang) ?? ((m = h.closedCaptions) == null ? void 0 : m.lang) ?? "" });
149
+ for (const u of p.tracks) {
150
+ const f = u.subtitleTrack, y = f ? `sub:${f.id}` : `cc:${u._id ?? u.label}`, x = u.kind === "captions" ? "captions" : "subtitles";
151
+ this.streamTextTracks.set(y, { id: y, kind: x, label: u.label, lang: (f == null ? void 0 : f.lang) ?? ((m = u.closedCaptions) == null ? void 0 : m.lang) ?? "" });
152
152
  }
153
153
  this.callbacks.onTextTracksFound([...this.streamTextTracks.values()]);
154
- }), i.on(e.Events.CUES_PARSED, (u, d) => {
155
- const m = d.type === "subtitles" && d.subtitleTrack ? `sub:${d.subtitleTrack.id}` : `cc:${d.track}`;
156
- this.callbacks.onCues(m, d.cues);
154
+ }), i.on(e.Events.CUES_PARSED, (c, p) => {
155
+ const m = p.type === "subtitles" && p.subtitleTrack ? `sub:${p.subtitleTrack.id}` : `cc:${p.track}`;
156
+ this.callbacks.onCues(m, p.cues);
157
157
  }), i.attachMedia(this.video), i.loadSource(t);
158
158
  }
159
159
  buildHlsConfig() {
@@ -168,6 +168,11 @@ class Se {
168
168
  return e;
169
169
  }
170
170
  /** Son kaynağı baştan yükler — hls.js ile oynayan kaynakta da çalışır (çıplak video.load() blob'u yeniden açamaz). */
171
+ /** Son `load()` edilen kaynak (playlist/dublaj gibi eklentilerin yüklediği dahil). */
172
+ get currentSrc() {
173
+ var t;
174
+ return ((t = this.last) == null ? void 0 : t.src) ?? null;
175
+ }
171
176
  reload() {
172
177
  return this.last ? this.load(this.last.src, this.last.type) : Promise.resolve();
173
178
  }
@@ -203,13 +208,60 @@ class Se {
203
208
  (t = this.nativeHlsProbe) == null || t.call(this), (e = this.nativeAudioCleanup) == null || e.call(this), this.hls && (this.hls.destroy(), this.hls = null);
204
209
  }
205
210
  }
206
- function w(n) {
211
+ const U = {
212
+ mp4: "video/mp4",
213
+ m4v: "video/mp4",
214
+ webm: "video/webm",
215
+ ogv: "video/ogg",
216
+ ogg: "video/ogg",
217
+ mov: "video/quicktime",
218
+ mp3: "audio/mpeg",
219
+ m4a: "audio/mp4",
220
+ aac: "audio/aac",
221
+ wav: "audio/wav",
222
+ flac: "audio/flac"
223
+ };
224
+ function ve(n) {
225
+ var r, o;
226
+ const t = be(n.src, n.type);
227
+ if (t !== "unknown") return t;
228
+ const e = (o = (r = n.type) == null ? void 0 : r.split(";")[0]) == null ? void 0 : o.trim().toLowerCase();
229
+ if (e) {
230
+ const a = Object.keys(U).find((l) => U[l] === e);
231
+ if (a) return a;
232
+ }
233
+ const i = /\.([a-z0-9]{2,5})(?:$|[?#])/i.exec(n.src);
234
+ return i ? i[1].toLowerCase() : "other";
235
+ }
236
+ function ze(n, t) {
237
+ const e = [];
238
+ for (const r of n) {
239
+ const o = ve(r), a = e.find((l) => l.format === o);
240
+ a ? a.sources.push(r) : e.push({ format: o, sources: [r] });
241
+ }
242
+ if (!(t != null && t.length)) return e;
243
+ const i = (r) => {
244
+ const o = t.findIndex((a) => a.toLowerCase() === r);
245
+ return o === -1 ? t.length : o;
246
+ };
247
+ return e.sort((r, o) => i(r.format) - i(o.format));
248
+ }
249
+ function Ne(n, t) {
250
+ var i;
251
+ if (n.format === "hls") {
252
+ const r = window;
253
+ return !(typeof r.MediaSource < "u" || typeof r.ManagedMediaSource < "u") && t.canPlayType("application/vnd.apple.mpegurl") === "";
254
+ }
255
+ const e = ((i = n.sources.find((r) => r.type)) == null ? void 0 : i.type) ?? U[n.format];
256
+ return !!e && t.canPlayType(e) === "";
257
+ }
258
+ function A(n) {
207
259
  if (!Number.isFinite(n) || n < 0) return "0:00";
208
260
  const t = Math.floor(n), e = Math.floor(t / 3600), i = Math.floor(t % 3600 / 60), r = t % 60, o = e > 0 ? String(i).padStart(2, "0") : String(i), a = String(r).padStart(2, "0");
209
261
  return e > 0 ? `${e}:${o}:${a}` : `${o}:${a}`;
210
262
  }
211
- const Ae = 10, Le = 1;
212
- class Pe {
263
+ const Oe = 10, Ie = 1;
264
+ class Fe {
213
265
  constructor(t, e) {
214
266
  s(this, "el");
215
267
  s(this, "trackEl");
@@ -238,7 +290,7 @@ class Pe {
238
290
  return;
239
291
  }
240
292
  const r = e.start + i * (e.end - e.start);
241
- this.hoverTimeEl.textContent = e.live ? `-${w(e.end - r)}` : w(r), this.hoverTimeEl.setAttribute("data-visible", "");
293
+ this.hoverTimeEl.textContent = e.live ? `-${A(e.end - r)}` : A(r), this.hoverTimeEl.setAttribute("data-visible", "");
242
294
  const o = this.hoverTimeEl.offsetWidth, a = Math.min(Math.max(this.layoutXAtClientX(t.clientX) - o / 2, 0), Math.max(this.trackWidth - o, 0));
243
295
  this.hoverTimeEl.style.transform = `translateX(${a}px)`;
244
296
  });
@@ -287,8 +339,8 @@ class Pe {
287
339
  const a = i(o);
288
340
  if (this.chapters.length)
289
341
  for (const l of this.chapters) {
290
- const p = l.end - l.start, u = (d) => p > 0 ? Math.min(1, Math.max(0, (d - l.start) / p)) : 0;
291
- l.playedEl.style.transform = `scaleX(${u(r)})`, l.bufferedEl.style.transform = `scaleX(${u(a)})`;
342
+ const h = l.end - l.start, c = (p) => h > 0 ? Math.min(1, Math.max(0, (p - l.start) / h)) : 0;
343
+ l.playedEl.style.transform = `scaleX(${c(r)})`, l.bufferedEl.style.transform = `scaleX(${c(a)})`;
292
344
  }
293
345
  else
294
346
  this.playedEl.style.transform = `scaleX(${r})`, this.bufferedEl.style.transform = `scaleX(${a})`;
@@ -311,7 +363,7 @@ class Pe {
311
363
  const { seekable: e } = this.video;
312
364
  if (!e.length) return null;
313
365
  const i = e.start(0), r = e.end(e.length - 1);
314
- return r - i >= Ae ? { start: i, end: r, live: !0 } : null;
366
+ return r - i >= Oe ? { start: i, end: r, live: !0 } : null;
315
367
  }
316
368
  /** Kendi zamanını gösteren plugin'ler (sprite/segments) varsayılan hover zamanını gizler — keyed set. */
317
369
  suppressHoverTime(t, e) {
@@ -381,7 +433,7 @@ class Pe {
381
433
  const e = this.timeline();
382
434
  if (!e) return;
383
435
  const i = e.start + t * (e.end - e.start);
384
- this.video.currentTime = e.live ? Math.min(i, e.end - Le) : i, this.render();
436
+ this.video.currentTime = e.live ? Math.min(i, e.end - Ie) : i, this.render();
385
437
  }
386
438
  /** 0–1 arası oranda, seek bar üzerine ince bir işaret çizgisi ekler (ör. loop A/B noktaları). */
387
439
  addMarker(t, e = "") {
@@ -399,15 +451,15 @@ class Pe {
399
451
  this.rafId !== null && cancelAnimationFrame(this.rafId), this.resizeObserver.disconnect(), this.el.removeEventListener("pointermove", this.onHoverMove), this.el.removeEventListener("pointerleave", this.onHoverLeave), this.video.removeEventListener("play", this.startLoop), this.video.removeEventListener("pause", this.stopLoop), this.video.removeEventListener("ended", this.stopLoop), this.video.removeEventListener("timeupdate", this.render), this.video.removeEventListener("progress", this.render), this.video.removeEventListener("loadedmetadata", this.render), this.clearMarkers(), (t = this.chaptersEl) == null || t.remove();
400
452
  }
401
453
  }
402
- function E(n, t = "") {
454
+ function L(n, t = "") {
403
455
  const e = document.createElement("i");
404
456
  return e.className = `hp-icon hp-icon-${n}${t ? ` ${t}` : ""}`, e.setAttribute("aria-hidden", "true"), e;
405
457
  }
406
- function M(n, t) {
458
+ function R(n, t) {
407
459
  n.className = n.className.replace(/hp-icon-[\w-]+/, `hp-icon-${t}`);
408
460
  }
409
- const R = 0.05, Me = 150;
410
- class Be {
461
+ const N = 0.05, De = 150;
462
+ class He {
411
463
  constructor(t, e, i) {
412
464
  s(this, "el");
413
465
  /** Dokunmatikte ses butonu gizli; sessiz oynarken görünen "Sesi aç" rozeti (chrome dışında monte edilir, otomatik gizlenmez). */
@@ -428,15 +480,15 @@ class Be {
428
480
  s(this, "scheduleHide", () => {
429
481
  this.hideTimer && clearTimeout(this.hideTimer), this.hideTimer = setTimeout(() => {
430
482
  this.hideTimer = null, this.slider.style.opacity = "0", this.slider.style.pointerEvents = "none";
431
- }, Me);
483
+ }, De);
432
484
  });
433
485
  s(this, "onWheel", (t) => {
434
486
  if (t.preventDefault(), this.adHooks.isAdActive()) {
435
487
  const r = this.adHooks.getVolume();
436
- this.adHooks.setVolume(Math.min(1, Math.max(0, r + (t.deltaY < 0 ? R : -R)))), this.render();
488
+ this.adHooks.setVolume(Math.min(1, Math.max(0, r + (t.deltaY < 0 ? N : -N)))), this.render();
437
489
  return;
438
490
  }
439
- const e = this.video.muted ? 0 : this.video.volume, i = Math.min(1, Math.max(0, e + (t.deltaY < 0 ? R : -R)));
491
+ const e = this.video.muted ? 0 : this.video.volume, i = Math.min(1, Math.max(0, e + (t.deltaY < 0 ? N : -N)));
440
492
  this.video.volume = i, this.video.muted = i === 0;
441
493
  });
442
494
  s(this, "onToggleMute", () => {
@@ -474,11 +526,11 @@ class Be {
474
526
  const e = t === 0 ? this.labels.unmute : this.labels.mute;
475
527
  this.button.setAttribute("aria-label", e);
476
528
  const i = this.adHooks.isAdActive() || !this.video.paused;
477
- this.unmuteBadge.toggleAttribute("data-visible", t === 0 && i), this.unmuteText.textContent = this.labels.unmute, t === 0 ? M(this.iconEl, "volume-muted") : t < 0.5 ? M(this.iconEl, "volume-low") : M(this.iconEl, "volume-high");
529
+ this.unmuteBadge.toggleAttribute("data-visible", t === 0 && i), this.unmuteText.textContent = this.labels.unmute, t === 0 ? R(this.iconEl, "volume-muted") : t < 0.5 ? R(this.iconEl, "volume-low") : R(this.iconEl, "volume-high");
478
530
  });
479
- this.video = t, this.labels = e, this.adHooks = i, this.el = document.createElement("div"), this.el.className = "hp-volume hp:relative hp:flex hp:items-center", this.unmuteBadge = document.createElement("button"), this.unmuteBadge.type = "button", this.unmuteBadge.className = "hp-unmute-badge", this.unmuteBadge.setAttribute("part", "unmute-badge"), this.unmuteBadge.appendChild(E("volume-muted", "hp:text-base")), this.unmuteText = document.createElement("span"), this.unmuteText.textContent = e.unmute, this.unmuteBadge.appendChild(this.unmuteText), this.unmuteBadge.addEventListener("pointerdown", (o) => o.stopPropagation()), this.unmuteBadge.addEventListener("click", (o) => {
531
+ this.video = t, this.labels = e, this.adHooks = i, this.el = document.createElement("div"), this.el.className = "hp-volume hp:relative hp:flex hp:items-center", this.unmuteBadge = document.createElement("button"), this.unmuteBadge.type = "button", this.unmuteBadge.className = "hp-unmute-badge", this.unmuteBadge.setAttribute("part", "unmute-badge"), this.unmuteBadge.appendChild(L("volume-muted", "hp:text-base")), this.unmuteText = document.createElement("span"), this.unmuteText.textContent = e.unmute, this.unmuteBadge.appendChild(this.unmuteText), this.unmuteBadge.addEventListener("pointerdown", (o) => o.stopPropagation()), this.unmuteBadge.addEventListener("click", (o) => {
480
532
  o.stopPropagation(), this.unmute();
481
- }), this.button = document.createElement("button"), this.button.type = "button", this.button.setAttribute("part", "volume-button"), this.button.className = "hp-chip hp:flex hp:items-center hp:justify-center hp:w-[var(--hp-ctrl-btn-size)] hp:h-[var(--hp-ctrl-btn-size)] hp:cursor-pointer", this.button.setAttribute("aria-label", e.mute), this.button.dataset.shortcut = "M", this.iconEl = E("volume-high", "hp:text-[length:var(--hp-ctrl-icon-size)]"), this.button.appendChild(this.iconEl), this.el.appendChild(this.button), this.slider = document.createElement("div"), this.slider.setAttribute("part", "volume-slider"), this.slider.className = "hp-chip hp:absolute hp:bottom-full hp:left-1/2 hp-center-x hp:mb-2 hp:w-7 hp:h-20 hp:rounded-full hp:cursor-pointer hp:flex hp:items-end hp:justify-center hp:p-1.5 hp:pointer-events-none hp:transition-opacity hp:duration-150 hp:will-change-[opacity]", this.slider.style.opacity = "0", this.slider.style.borderRadius = "9999px", this.slider.setAttribute("role", "slider"), this.slider.setAttribute("tabindex", "0"), this.slider.setAttribute("aria-label", e.volume), this.slider.setAttribute("aria-orientation", "vertical"), this.slider.setAttribute("aria-valuemin", "0"), this.slider.setAttribute("aria-valuemax", "100");
533
+ }), this.button = document.createElement("button"), this.button.type = "button", this.button.setAttribute("part", "volume-button"), this.button.className = "hp-chip hp:flex hp:items-center hp:justify-center hp:w-[var(--hp-ctrl-btn-size)] hp:h-[var(--hp-ctrl-btn-size)] hp:cursor-pointer", this.button.setAttribute("aria-label", e.mute), this.button.dataset.shortcut = "M", this.iconEl = L("volume-high", "hp:text-[length:var(--hp-ctrl-icon-size)]"), this.button.appendChild(this.iconEl), this.el.appendChild(this.button), this.slider = document.createElement("div"), this.slider.setAttribute("part", "volume-slider"), this.slider.className = "hp-chip hp:absolute hp:bottom-full hp:left-1/2 hp-center-x hp:mb-2 hp:w-7 hp:h-20 hp:rounded-full hp:cursor-pointer hp:flex hp:items-end hp:justify-center hp:p-1.5 hp:pointer-events-none hp:transition-opacity hp:duration-150 hp:will-change-[opacity]", this.slider.style.opacity = "0", this.slider.style.borderRadius = "9999px", this.slider.setAttribute("role", "slider"), this.slider.setAttribute("tabindex", "0"), this.slider.setAttribute("aria-label", e.volume), this.slider.setAttribute("aria-orientation", "vertical"), this.slider.setAttribute("aria-valuemin", "0"), this.slider.setAttribute("aria-valuemax", "100");
482
534
  const r = document.createElement("div");
483
535
  r.className = "hp:relative hp:w-1.5 hp:h-full hp:rounded-full hp:bg-on-surface/25 hp:overflow-hidden", this.slider.appendChild(r), this.sliderFill = document.createElement("div"), this.sliderFill.className = "hp:absolute hp:inset-x-0 hp:bottom-0 hp:bg-accent", r.appendChild(this.sliderFill), this.el.appendChild(this.slider), this.button.addEventListener("click", this.onToggleMute), this.slider.addEventListener("pointerdown", this.onSliderPointerDown), this.slider.addEventListener("keydown", this.onSliderKeyDown), this.el.addEventListener("mouseenter", this.openNow), this.el.addEventListener("mouseleave", this.scheduleHide), this.el.addEventListener("focusin", this.openNow), this.el.addEventListener("focusout", this.scheduleHide), this.el.addEventListener("wheel", this.onWheel, { passive: !1 }), t.addEventListener("volumechange", this.render), t.addEventListener("play", this.render), t.addEventListener("pause", this.render), this.render();
484
536
  }
@@ -510,8 +562,8 @@ class Be {
510
562
  this.hideTimer && clearTimeout(this.hideTimer), this.el.removeEventListener("mouseenter", this.openNow), this.el.removeEventListener("mouseleave", this.scheduleHide), this.el.removeEventListener("focusin", this.openNow), this.el.removeEventListener("focusout", this.scheduleHide), this.el.removeEventListener("wheel", this.onWheel), this.video.removeEventListener("volumechange", this.render), this.video.removeEventListener("play", this.render), this.video.removeEventListener("pause", this.render), this.unmuteBadge.remove();
511
563
  }
512
564
  }
513
- const Re = '<svg class="hp-lock" viewBox="0 0 24 24" width="14" height="14" aria-hidden="true"><path fill="currentColor" d="M12 2a5 5 0 0 0-5 5v3H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2h-1V7a5 5 0 0 0-5-5Zm-3 8V7a3 3 0 1 1 6 0v3H9Z"/></svg>', F = 8, C = 8, Q = 100, z = 256;
514
- class ze {
565
+ const Ge = '<svg class="hp-lock" viewBox="0 0 24 24" width="14" height="14" aria-hidden="true"><path fill="currentColor" d="M12 2a5 5 0 0 0-5 5v3H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2h-1V7a5 5 0 0 0-5-5Zm-3 8V7a3 3 0 1 1 6 0v3H9Z"/></svg>', H = 8, P = 8, J = 100, O = 256;
566
+ class Ve {
515
567
  constructor(t, e, i) {
516
568
  s(this, "el");
517
569
  s(this, "button");
@@ -536,22 +588,22 @@ class ze {
536
588
  * yükseklik player içinde kalan alanla sınırlı — küçük player'da menü dışarı taşmaz, kendi içinde kayar.
537
589
  */
538
590
  s(this, "fitToPlayer", () => {
539
- var p;
591
+ var h;
540
592
  if (!this.open) return;
541
593
  const t = this.el.closest(".video-area");
542
594
  if (!t) return;
543
- if ((p = this.el.getRootNode().host) != null && p.hasAttribute("data-audio-compact")) {
595
+ if ((h = this.el.getRootNode().host) != null && h.hasAttribute("data-audio-compact")) {
544
596
  this.fitToViewport();
545
597
  return;
546
598
  }
547
599
  const e = t.getBoundingClientRect(), i = this.button.getBoundingClientRect(), r = this.el.getBoundingClientRect(), o = !!this.el.closest(".hp-top-bar");
548
600
  this.panel.toggleAttribute("data-drop", o), Object.assign(this.panel.style, { top: "", bottom: "", marginTop: "", marginBottom: "" });
549
- const a = this.panel.scrollHeight, l = (o ? e.bottom - i.bottom : i.top - e.top) - F - C;
550
- if (a <= l || l >= Q) {
551
- this.panel.style.maxHeight = `${Math.min(z, l)}px`;
601
+ const a = this.panel.scrollHeight, l = (o ? e.bottom - i.bottom : i.top - e.top) - H - P;
602
+ if (a <= l || l >= J) {
603
+ this.panel.style.maxHeight = `${Math.min(O, l)}px`;
552
604
  return;
553
605
  }
554
- this.panel.style.maxHeight = `${Math.min(z, e.height - 2 * C)}px`, o ? Object.assign(this.panel.style, { top: `${e.top + C - r.top}px`, marginTop: "0" }) : Object.assign(this.panel.style, { bottom: `${r.bottom - (e.bottom - C)}px`, marginBottom: "0" });
606
+ this.panel.style.maxHeight = `${Math.min(O, e.height - 2 * P)}px`, o ? Object.assign(this.panel.style, { top: `${e.top + P - r.top}px`, marginTop: "0" }) : Object.assign(this.panel.style, { bottom: `${r.bottom - (e.bottom - P)}px`, marginBottom: "0" });
555
607
  });
556
608
  s(this, "onDocumentClick", (t) => {
557
609
  this.open && !t.composedPath().includes(this.el) && this.close();
@@ -559,7 +611,7 @@ class ze {
559
611
  s(this, "backToCaptionSettings", () => {
560
612
  this.currentPanel = "captions-settings", this.renderCaptionSettings();
561
613
  });
562
- this.video = t, this.playbackRates = e, this.labels = i, this.activeQualityLabel = i.autoQuality, this.activeCaptionLabel = i.captionsOff, this.el = document.createElement("div"), this.el.className = "hp:relative", this.button = document.createElement("button"), this.button.type = "button", this.button.setAttribute("aria-label", i.settings), this.button.className = "hp-chip hp:flex hp:items-center hp:justify-center hp:w-[var(--hp-ctrl-btn-size)] hp:h-[var(--hp-ctrl-btn-size)] hp:cursor-pointer", this.button.appendChild(E("settings", "hp:text-[length:var(--hp-ctrl-icon-size)]")), this.panel = document.createElement("div"), this.panel.className = "hp-chip hp-chip-panel hp:hidden hp:absolute hp:bottom-full hp:right-0 hp:mb-2 hp:w-48 hp:max-h-64 hp:overflow-y-auto hp:text-sm hp:py-1", this.panelObserver = new MutationObserver(this.fitToPlayer), this.panelObserver.observe(this.panel, { childList: !0 }), this.el.appendChild(this.button), this.el.appendChild(this.panel), this.button.addEventListener("click", (r) => {
614
+ this.video = t, this.playbackRates = e, this.labels = i, this.activeQualityLabel = i.autoQuality, this.activeCaptionLabel = i.captionsOff, this.el = document.createElement("div"), this.el.className = "hp:relative", this.button = document.createElement("button"), this.button.type = "button", this.button.setAttribute("aria-label", i.settings), this.button.className = "hp-chip hp:flex hp:items-center hp:justify-center hp:w-[var(--hp-ctrl-btn-size)] hp:h-[var(--hp-ctrl-btn-size)] hp:cursor-pointer", this.button.appendChild(L("settings", "hp:text-[length:var(--hp-ctrl-icon-size)]")), this.panel = document.createElement("div"), this.panel.className = "hp-chip hp-chip-panel hp:hidden hp:absolute hp:bottom-full hp:right-0 hp:mb-2 hp:w-48 hp:max-h-64 hp:overflow-y-auto hp:text-sm hp:py-1", this.panelObserver = new MutationObserver(this.fitToPlayer), this.panelObserver.observe(this.panel, { childList: !0 }), this.el.appendChild(this.button), this.el.appendChild(this.panel), this.button.addEventListener("click", (r) => {
563
615
  r.stopPropagation(), this.toggle();
564
616
  }), document.addEventListener("click", this.onDocumentClick, !0), this.renderMain();
565
617
  }
@@ -605,8 +657,8 @@ class ze {
605
657
  fitToViewport() {
606
658
  const t = this.button.getBoundingClientRect();
607
659
  Object.assign(this.panel.style, { top: "", bottom: "", marginTop: "", marginBottom: "" });
608
- const e = this.panel.scrollHeight, i = t.top - F - C, r = window.innerHeight - t.bottom - F - C, o = i < Math.min(e, z) && r > i;
609
- this.panel.toggleAttribute("data-drop", o), this.panel.style.maxHeight = `${Math.max(Q, Math.min(z, o ? r : i))}px`;
660
+ const e = this.panel.scrollHeight, i = t.top - H - P, r = window.innerHeight - t.bottom - H - P, o = i < Math.min(e, O) && r > i;
661
+ this.panel.toggleAttribute("data-drop", o), this.panel.style.maxHeight = `${Math.max(J, Math.min(O, o ? r : i))}px`;
610
662
  }
611
663
  /** Düzen değişince (ör. kompakt ↔ normal) açık menüyü kapat — eski konumunda asılı kalmasın. */
612
664
  closeMenu() {
@@ -622,7 +674,7 @@ class ze {
622
674
  }
623
675
  backRow(t, e) {
624
676
  const i = document.createElement("button");
625
- i.type = "button", i.className = "hp:flex hp:items-center hp:gap-2 hp:w-full hp:px-3 hp:py-2 hp:text-left hp:bg-transparent hp:border-0 hp:cursor-pointer hp:text-on-surface hp:font-medium hp:hover:bg-on-surface/10", i.appendChild(E("chevron-left", "hp:text-sm"));
677
+ i.type = "button", i.className = "hp:flex hp:items-center hp:gap-2 hp:w-full hp:px-3 hp:py-2 hp:text-left hp:bg-transparent hp:border-0 hp:cursor-pointer hp:text-on-surface hp:font-medium hp:hover:bg-on-surface/10", i.appendChild(L("chevron-left", "hp:text-sm"));
626
678
  const r = document.createElement("span");
627
679
  return r.textContent = t, i.appendChild(r), i.addEventListener("click", e), i;
628
680
  }
@@ -690,7 +742,7 @@ class ze {
690
742
  renderQuality() {
691
743
  this.panel.innerHTML = "", this.panel.appendChild(this.backRow(this.labels.quality, () => this.renderMain()));
692
744
  for (const t of this.qualities) {
693
- const e = t.label === this.activeQualityLabel, i = this.row(t.label, t.locked ? Re : e ? '<i class="hp-icon hp-icon-check"></i>' : "", () => {
745
+ const e = t.label === this.activeQualityLabel, i = this.row(t.label, t.locked ? Ge : e ? '<i class="hp-icon hp-icon-check"></i>' : "", () => {
694
746
  t.onSelect(), this.close();
695
747
  });
696
748
  t.locked && i.setAttribute("data-locked", ""), this.panel.appendChild(i);
@@ -779,27 +831,27 @@ class ze {
779
831
  document.removeEventListener("click", this.onDocumentClick, !0), this.panelObserver.disconnect();
780
832
  }
781
833
  }
782
- function ce(n, t) {
834
+ function ye(n, t) {
783
835
  const e = n.seekable.length ? n.seekable.start(0) : 0, i = Number.isFinite(n.duration) ? n.duration : n.seekable.length ? n.seekable.end(n.seekable.length - 1) : n.currentTime;
784
836
  n.currentTime = Math.max(e, Math.min(i, n.currentTime + t));
785
837
  }
786
- const Ne = 15, Ie = 480, Oe = 150, $ = ["waiting", "seeking"], K = ["playing", "canplay", "canplaythrough", "seeked", "pause", "error", "emptied"];
787
- function j(n, t) {
788
- const { btn: e } = P("", `skip-${n}`);
838
+ const Ue = 15, _e = 480, qe = 150, Z = ["waiting", "seeking"], ee = ["playing", "canplay", "canplaythrough", "seeked", "pause", "error", "emptied"];
839
+ function te(n, t) {
840
+ const { btn: e } = B("", `skip-${n}`);
789
841
  e.classList.add("hp-skip-btn"), e.setAttribute("part", t);
790
842
  const i = document.createElement("span");
791
843
  return i.className = "hp-skip-num", i.setAttribute("aria-hidden", "true"), e.appendChild(i), e.style.display = "none", { btn: e, num: i };
792
844
  }
793
- function T(n, t) {
845
+ function M(n, t) {
794
846
  n.setAttribute("aria-label", t);
795
847
  }
796
- function P(n, t, e) {
848
+ function B(n, t, e) {
797
849
  const i = document.createElement("button");
798
- i.type = "button", T(i, n), e && (i.dataset.shortcut = e), i.className = "hp-chip hp:flex hp:items-center hp:justify-center hp:w-[var(--hp-ctrl-btn-size)] hp:h-[var(--hp-ctrl-btn-size)] hp:cursor-pointer hp:shrink-0";
799
- const r = E(t, "hp:text-[length:var(--hp-ctrl-icon-size)]");
850
+ i.type = "button", M(i, n), e && (i.dataset.shortcut = e), i.className = "hp-chip hp:flex hp:items-center hp:justify-center hp:w-[var(--hp-ctrl-btn-size)] hp:h-[var(--hp-ctrl-btn-size)] hp:cursor-pointer hp:shrink-0";
851
+ const r = L(t, "hp:text-[length:var(--hp-ctrl-icon-size)]");
800
852
  return i.appendChild(r), { btn: i, icon: r };
801
853
  }
802
- class Fe {
854
+ class je {
803
855
  constructor(t, e, i, r) {
804
856
  s(this, "el");
805
857
  s(this, "seekBar");
@@ -856,7 +908,7 @@ class Fe {
856
908
  s(this, "renderPlayState", () => {
857
909
  var e;
858
910
  const t = this.callbacks.isAdActive() ? this.callbacks.adIsPaused() : this.video.paused && !this.pendingPlay;
859
- M(this.playIcon, t ? "play" : "pause"), T(this.playButton, t ? this.labels.play : this.labels.pause), (e = this.barMetaEl) == null || e.toggleAttribute("data-playing", !t && !this.callbacks.isAdActive());
911
+ R(this.playIcon, t ? "play" : "pause"), M(this.playButton, t ? this.labels.play : this.labels.pause), (e = this.barMetaEl) == null || e.toggleAttribute("data-playing", !t && !this.callbacks.isAdActive());
860
912
  });
861
913
  s(this, "renderTime", () => {
862
914
  var r, o;
@@ -864,20 +916,20 @@ class Fe {
864
916
  if (this.timeLabel.style.display = this.adMode || t ? "none" : "", this.liveBadge.style.display = !this.adMode && t ? "" : "none", !t) {
865
917
  const a = this.video.duration, l = this.video.currentTime;
866
918
  if (this.showRemaining) {
867
- const p = Number.isFinite(a) ? Math.floor(a) : 0, u = Math.max(0, p - Math.floor(l));
868
- this.timeLabel.textContent = `-${w(u)} / ${w(a)}`;
919
+ const h = Number.isFinite(a) ? Math.floor(a) : 0, c = Math.max(0, h - Math.floor(l));
920
+ this.timeLabel.textContent = `-${A(c)} / ${A(a)}`;
869
921
  } else
870
- this.timeLabel.textContent = `${w(l)} / ${w(a)}`;
922
+ this.timeLabel.textContent = `${A(l)} / ${A(a)}`;
871
923
  return;
872
924
  }
873
- const e = ((o = (r = this.callbacks).liveSyncPosition) == null ? void 0 : o.call(r)) ?? this.liveEdge(), i = e !== null && e - this.video.currentTime > Ne;
925
+ const e = ((o = (r = this.callbacks).liveSyncPosition) == null ? void 0 : o.call(r)) ?? this.liveEdge(), i = e !== null && e - this.video.currentTime > Ue;
874
926
  this.liveBadge.toggleAttribute("data-behind", i);
875
927
  });
876
928
  /** Buffer bekleniyor (oynarken takılma ya da buffer'lanmamış bir yere atlama). */
877
929
  s(this, "onLoadingStart", (t) => {
878
930
  t.type === "seeking" && this.video.readyState >= HTMLMediaElement.HAVE_FUTURE_DATA || this.loadingTimer || this.loadingReasons.has("media") || (this.loadingTimer = setTimeout(() => {
879
931
  this.loadingTimer = null, this.setLoading("media", !0);
880
- }, Oe));
932
+ }, qe));
881
933
  });
882
934
  s(this, "onLoadingEnd", (t) => {
883
935
  t.type === "seeked" && this.video.readyState < HTMLMediaElement.HAVE_FUTURE_DATA && !this.video.paused || (this.loadingTimer && clearTimeout(this.loadingTimer), this.loadingTimer = null, this.setLoading("media", !1));
@@ -888,29 +940,29 @@ class Fe {
888
940
  e === null && t == null || (this.video.currentTime = t ?? Math.max(0, e - 1), this.video.paused && this.video.play().catch(() => {
889
941
  }), this.renderTime());
890
942
  });
891
- this.video = t, this.callbacks = i, this.labels = r, this.el = document.createElement("div"), this.el.setAttribute("part", "control-bar"), this.el.className = "hp:absolute hp:inset-x-0 hp:bottom-0 hp:flex hp:flex-col hp:gap-1 hp:px-3 hp:pb-2 hp:pt-6 hp:pointer-events-none hp:transition-opacity hp:duration-200", this.seekBar = new Pe(t, r), this.seekBar.el.classList.add("hp:pointer-events-auto"), this.el.appendChild(this.seekBar.el);
943
+ this.video = t, this.callbacks = i, this.labels = r, this.el = document.createElement("div"), this.el.setAttribute("part", "control-bar"), this.el.className = "hp:absolute hp:inset-x-0 hp:bottom-0 hp:flex hp:flex-col hp:gap-1 hp:px-3 hp:pb-2 hp:pt-6 hp:pointer-events-none hp:transition-opacity hp:duration-200", this.seekBar = new Fe(t, r), this.seekBar.el.classList.add("hp:pointer-events-auto"), this.el.appendChild(this.seekBar.el);
892
944
  const o = document.createElement("div");
893
945
  o.className = "hp:flex hp:items-center hp:gap-2", this.el.appendChild(o), this.bottomRow = o;
894
946
  const a = document.createElement("div");
895
947
  a.className = "hp-group hp-group-left hp:flex hp:items-center hp:gap-1 hp:px-1.5 hp:py-1 hp:shrink-0 hp:pointer-events-auto", o.appendChild(a), this.leftGroup = a;
896
948
  const l = document.createElement("span");
897
949
  l.className = "hp-loading-ring", l.setAttribute("aria-hidden", "true");
950
+ const h = document.createElement("span");
951
+ h.className = "hp-loading-ring-mask", h.appendChild(document.createElement("span")), l.appendChild(h), a.appendChild(l);
952
+ const c = B(r.play, "play", "K");
953
+ this.playButton = c.btn, this.playIcon = c.icon, this.playButton.setAttribute("part", "play-pause-button"), this.playButton.addEventListener("click", () => this.togglePlay()), a.appendChild(this.playButton), this.skipBack = te("back", "skip-back-button"), this.skipBack.btn.addEventListener("click", () => this.skip(-(this.skipSeconds.back ?? 0))), this.skipForward = te("forward", "skip-forward-button"), this.skipForward.btn.addEventListener("click", () => this.skip(this.skipSeconds.forward ?? 0)), a.append(this.skipBack.btn, this.skipForward.btn), this.volumePanel = new He(t, r, i.adVolume), a.appendChild(this.volumePanel.el), this.timeLabel = document.createElement("button"), this.timeLabel.type = "button", this.timeLabel.setAttribute("part", "time-display"), this.timeLabel.className = "hp:text-xs hp:text-on-surface hp:tabular-nums hp:whitespace-nowrap hp:px-1 hp:bg-transparent hp:border-0 hp:cursor-pointer hp:select-none hp:p-0 hp:hover:opacity-80 hp:transition-opacity hp:rounded", this.timeLabel.textContent = "0:00 / 0:00", this.timeLabel.addEventListener("click", this.onTimeClick), a.appendChild(this.timeLabel), this.adInfoEl = document.createElement("span"), this.adInfoEl.setAttribute("part", "ad-countdown"), this.adInfoEl.className = "hp:text-xs hp:text-on-surface hp:tabular-nums hp:whitespace-nowrap hp:px-1 hp:select-none", this.adInfoEl.setAttribute("aria-live", "off"), this.adInfoEl.style.display = "none", this.liveBadge = document.createElement("button"), this.liveBadge.type = "button", this.liveBadge.className = "hp-live-badge", this.liveBadge.setAttribute("part", "live-badge"), this.liveBadge.setAttribute("aria-label", r.goToLive);
898
954
  const p = document.createElement("span");
899
- p.className = "hp-loading-ring-mask", p.appendChild(document.createElement("span")), l.appendChild(p), a.appendChild(l);
900
- const u = P(r.play, "play", "K");
901
- this.playButton = u.btn, this.playIcon = u.icon, this.playButton.setAttribute("part", "play-pause-button"), this.playButton.addEventListener("click", () => this.togglePlay()), a.appendChild(this.playButton), this.skipBack = j("back", "skip-back-button"), this.skipBack.btn.addEventListener("click", () => this.skip(-(this.skipSeconds.back ?? 0))), this.skipForward = j("forward", "skip-forward-button"), this.skipForward.btn.addEventListener("click", () => this.skip(this.skipSeconds.forward ?? 0)), a.append(this.skipBack.btn, this.skipForward.btn), this.volumePanel = new Be(t, r, i.adVolume), a.appendChild(this.volumePanel.el), this.timeLabel = document.createElement("button"), this.timeLabel.type = "button", this.timeLabel.setAttribute("part", "time-display"), this.timeLabel.className = "hp:text-xs hp:text-on-surface hp:tabular-nums hp:whitespace-nowrap hp:px-1 hp:bg-transparent hp:border-0 hp:cursor-pointer hp:select-none hp:p-0 hp:hover:opacity-80 hp:transition-opacity hp:focus-visible:outline-none hp:focus-visible:ring-1 hp:focus-visible:ring-accent hp:rounded", this.timeLabel.textContent = "0:00 / 0:00", this.timeLabel.addEventListener("click", this.onTimeClick), a.appendChild(this.timeLabel), this.adInfoEl = document.createElement("span"), this.adInfoEl.setAttribute("part", "ad-countdown"), this.adInfoEl.className = "hp:text-xs hp:text-on-surface hp:tabular-nums hp:whitespace-nowrap hp:px-1 hp:select-none", this.adInfoEl.setAttribute("aria-live", "off"), this.adInfoEl.style.display = "none", this.liveBadge = document.createElement("button"), this.liveBadge.type = "button", this.liveBadge.className = "hp-live-badge", this.liveBadge.setAttribute("part", "live-badge"), this.liveBadge.setAttribute("aria-label", r.goToLive);
902
- const d = document.createElement("span");
903
- d.className = "hp-live-dot", this.liveText = document.createElement("span"), this.liveText.textContent = r.live, this.liveBadge.append(d, this.liveText), this.liveBadge.style.display = "none", this.liveBadge.addEventListener("click", this.goToLive), a.appendChild(this.liveBadge), a.appendChild(this.adInfoEl);
955
+ p.className = "hp-live-dot", this.liveText = document.createElement("span"), this.liveText.textContent = r.live, this.liveBadge.append(p, this.liveText), this.liveBadge.style.display = "none", this.liveBadge.addEventListener("click", this.goToLive), a.appendChild(this.liveBadge), a.appendChild(this.adInfoEl);
904
956
  const m = document.createElement("div");
905
957
  m.className = "hp:flex-1 hp:min-w-0", o.appendChild(m), this.spacerEl = m;
906
- const h = document.createElement("div");
907
- h.className = "hp-group hp:flex hp:items-center hp:gap-1 hp:px-1.5 hp:py-1 hp:shrink-0 hp:pointer-events-auto", o.appendChild(h), this.rightGroup = h, this.settingsMenu = new ze(t, e, r), h.appendChild(this.settingsMenu.el), this.extraButtonAnchor = this.settingsMenu.el, this.row = h;
908
- const c = P(r.pip, "pip");
909
- this.pipButton = c.btn, this.pipButton.addEventListener("click", () => this.togglePip()), document.pictureInPictureEnabled || (this.pipButton.style.display = "none"), h.appendChild(this.pipButton);
910
- const g = P(r.fullscreenEnter, "fullscreen-enter", "F");
911
- this.fullscreenButton = g.btn, this.fullscreenIcon = g.icon, this.fullscreenButton.addEventListener("click", () => this.toggleFullscreen()), h.appendChild(this.fullscreenButton), this.topEl = document.createElement("div"), this.topEl.className = "hp-top-bar", this.topEl.setAttribute("part", "top-bar"), this.fullscreenSlot = document.createElement("div"), this.fullscreenSlot.className = "hp-group hp:items-center hp:px-1.5 hp:py-1 hp:shrink-0 hp:pointer-events-auto", this.fullscreenSlot.style.display = "none", o.appendChild(this.fullscreenSlot), this.resizeObserver = new ResizeObserver(() => this.updateLayout()), this.resizeObserver.observe(this.el), t.addEventListener("play", this.renderPlayState), t.addEventListener("pause", this.renderPlayState), t.addEventListener("timeupdate", this.renderTime), t.addEventListener("loadedmetadata", this.renderTime), t.addEventListener("durationchange", this.renderTime), t.addEventListener("progress", this.renderTime), t.addEventListener("emptied", this.renderTime);
912
- for (const b of $) t.addEventListener(b, this.onLoadingStart);
913
- for (const b of K) t.addEventListener(b, this.onLoadingEnd);
958
+ const u = document.createElement("div");
959
+ u.className = "hp-group hp:flex hp:items-center hp:gap-1 hp:px-1.5 hp:py-1 hp:shrink-0 hp:pointer-events-auto", o.appendChild(u), this.rightGroup = u, this.settingsMenu = new Ve(t, e, r), u.appendChild(this.settingsMenu.el), this.extraButtonAnchor = this.settingsMenu.el, this.row = u;
960
+ const f = B(r.pip, "pip");
961
+ this.pipButton = f.btn, this.pipButton.addEventListener("click", () => this.togglePip()), document.pictureInPictureEnabled || (this.pipButton.style.display = "none"), u.appendChild(this.pipButton);
962
+ const y = B(r.fullscreenEnter, "fullscreen-enter", "F");
963
+ this.fullscreenButton = y.btn, this.fullscreenIcon = y.icon, this.fullscreenButton.addEventListener("click", () => this.toggleFullscreen()), u.appendChild(this.fullscreenButton), this.topEl = document.createElement("div"), this.topEl.className = "hp-top-bar", this.topEl.setAttribute("part", "top-bar"), this.fullscreenSlot = document.createElement("div"), this.fullscreenSlot.className = "hp-group hp:items-center hp:px-1.5 hp:py-1 hp:shrink-0 hp:pointer-events-auto", this.fullscreenSlot.style.display = "none", o.appendChild(this.fullscreenSlot), this.resizeObserver = new ResizeObserver(() => this.updateLayout()), this.resizeObserver.observe(this.el), t.addEventListener("play", this.renderPlayState), t.addEventListener("pause", this.renderPlayState), t.addEventListener("timeupdate", this.renderTime), t.addEventListener("loadedmetadata", this.renderTime), t.addEventListener("durationchange", this.renderTime), t.addEventListener("progress", this.renderTime), t.addEventListener("emptied", this.renderTime);
964
+ for (const x of Z) t.addEventListener(x, this.onLoadingStart);
965
+ for (const x of ee) t.addEventListener(x, this.onLoadingEnd);
914
966
  this.renderPlayState(), this.renderTime();
915
967
  }
916
968
  /** Player genişliğine göre normal / kompakt (mobil) düzen arasında geçiş — yalnızca eşik geçilince DOM taşınır. */
@@ -918,7 +970,7 @@ class Fe {
918
970
  var i;
919
971
  const t = this.el.getBoundingClientRect().width;
920
972
  if (t === 0) return;
921
- const e = !this.forceInline && t < Ie;
973
+ const e = !this.forceInline && t < _e;
922
974
  e !== this.compact && (this.compact = e, this.settingsMenu.closeMenu(), this.el.toggleAttribute("data-compact", e), (i = this.el.closest(".video-area")) == null || i.toggleAttribute("data-compact", e), e ? (this.fullscreenSlot.appendChild(this.fullscreenButton), this.fullscreenSlot.style.display = this.adMode || this.audioMode ? "none" : "flex", this.topEl.appendChild(this.rightGroup)) : (this.rightGroup.appendChild(this.fullscreenButton), this.bottomRow.insertBefore(this.rightGroup, this.fullscreenSlot), this.fullscreenSlot.style.display = "none"));
923
975
  }
924
976
  /**
@@ -942,7 +994,7 @@ class Fe {
942
994
  this.audioMode = t, this.fullscreenButton.style.display = t ? "none" : "", this.compact && (this.fullscreenSlot.style.display = t || this.adMode ? "none" : "flex"), this.pipButton.style.display = t || !document.pictureInPictureEnabled ? "none" : "";
943
995
  }
944
996
  setFullscreenState(t) {
945
- M(this.fullscreenIcon, t ? "fullscreen-exit" : "fullscreen-enter"), T(this.fullscreenButton, t ? this.labels.fullscreenExit : this.labels.fullscreenEnter);
997
+ R(this.fullscreenIcon, t ? "fullscreen-exit" : "fullscreen-enter"), M(this.fullscreenButton, t ? this.labels.fullscreenExit : this.labels.fullscreenEnter);
946
998
  }
947
999
  /** Dil sonradan değişince (`options.locale`/`labels`) statik (reaktif olarak yeniden render edilmeyen) etiketleri tazeler. */
948
1000
  /** Geri/ileri sarma butonları — `null` süre o butonu gizler. */
@@ -955,16 +1007,16 @@ class Fe {
955
1007
  }
956
1008
  renderSkipButtons() {
957
1009
  const t = (e, i, r) => {
958
- e.btn.style.display = i === null || this.adMode ? "none" : "", i !== null && (e.num.textContent = String(i), e.num.toggleAttribute("data-long", String(i).length > 2), T(e.btn, r(i)));
1010
+ e.btn.style.display = i === null || this.adMode ? "none" : "", i !== null && (e.num.textContent = String(i), e.num.toggleAttribute("data-long", String(i).length > 2), M(e.btn, r(i)));
959
1011
  };
960
1012
  t(this.skipBack, this.skipSeconds.back, this.labels.skipBack), t(this.skipForward, this.skipSeconds.forward, this.labels.skipForward);
961
1013
  }
962
1014
  skip(t) {
963
1015
  var e;
964
- !t || !this.seekingEnabled || (ce(this.video, t), (e = this.onSkip) == null || e.call(this, t));
1016
+ !t || !this.seekingEnabled || (ye(this.video, t), (e = this.onSkip) == null || e.call(this, t));
965
1017
  }
966
1018
  refreshLabels() {
967
- this.renderPlayState(), this.renderSkipButtons(), T(this.pipButton, this.labels.pip), T(this.liveBadge, this.labels.goToLive), this.liveText.textContent = this.labels.live, this.setFullscreenState(this.callbacks.isFullscreen()), this.seekBar.refreshLabels(), this.volumePanel.refreshLabels(), this.settingsMenu.refreshLabels();
1019
+ this.renderPlayState(), this.renderSkipButtons(), M(this.pipButton, this.labels.pip), M(this.liveBadge, this.labels.goToLive), this.liveText.textContent = this.labels.live, this.setFullscreenState(this.callbacks.isFullscreen()), this.seekBar.refreshLabels(), this.volumePanel.refreshLabels(), this.settingsMenu.refreshLabels();
968
1020
  }
969
1021
  /** Reklam modu: seek bar, süre ve sağ grup gizlenir; oynat/duraklat + ses kalır. */
970
1022
  setAdMode(t) {
@@ -980,7 +1032,7 @@ class Fe {
980
1032
  this.adInfoEl.style.display = "none", this.adInfoEl.textContent = "";
981
1033
  return;
982
1034
  }
983
- const e = t.total > 1 ? ` ${t.position}/${t.total}` : "", i = t.remaining >= 0 ? ` · ${w(Math.ceil(t.remaining))}` : "";
1035
+ const e = t.total > 1 ? ` ${t.position}/${t.total}` : "", i = t.remaining >= 0 ? ` · ${A(Math.ceil(t.remaining))}` : "";
984
1036
  this.adInfoEl.textContent = `${this.labels.adLabel}${e}${i}`, this.adInfoEl.style.display = "";
985
1037
  }
986
1038
  /** `AdsController`'ın IMA'nın KENDİ UI'ı üzerinden (ör. reklam video'suna tıklama) gelen PAUSED/RESUMED event'leri için — oynat/duraklat ikonunu tazeler. */
@@ -995,7 +1047,7 @@ class Fe {
995
1047
  }
996
1048
  /** Plugin'lerin (loop-section vb.) kontrol çubuğuna kendi butonlarını eklemesi için — ayarlar menüsünden önce yerleştirilir. */
997
1049
  addButton(t, e, i) {
998
- const { btn: r, icon: o } = P(t, e);
1050
+ const { btn: r, icon: o } = B(t, e);
999
1051
  return r.addEventListener("click", i), this.row.insertBefore(r, this.extraButtonAnchor), { btn: r, icon: o };
1000
1052
  }
1001
1053
  toggleTimeMode() {
@@ -1055,16 +1107,16 @@ class Fe {
1055
1107
  }
1056
1108
  destroy() {
1057
1109
  this.timeLabel.removeEventListener("click", this.onTimeClick), this.video.removeEventListener("play", this.renderPlayState), this.video.removeEventListener("pause", this.renderPlayState), this.video.removeEventListener("timeupdate", this.renderTime), this.video.removeEventListener("loadedmetadata", this.renderTime), this.video.removeEventListener("durationchange", this.renderTime), this.video.removeEventListener("progress", this.renderTime), this.video.removeEventListener("emptied", this.renderTime);
1058
- for (const t of $) this.video.removeEventListener(t, this.onLoadingStart);
1059
- for (const t of K) this.video.removeEventListener(t, this.onLoadingEnd);
1110
+ for (const t of Z) this.video.removeEventListener(t, this.onLoadingStart);
1111
+ for (const t of ee) this.video.removeEventListener(t, this.onLoadingEnd);
1060
1112
  this.loadingTimer && clearTimeout(this.loadingTimer), this.resizeObserver.disconnect(), this.topEl.remove(), this.seekBar.destroy(), this.settingsMenu.destroy();
1061
1113
  }
1062
1114
  }
1063
- const De = 450, He = 60, Y = 8, D = 6, qe = /* @__PURE__ */ new Set(["seek-bar", "time-display"]);
1064
- function Ve() {
1115
+ const $e = 450, Ke = 60, ie = 8, G = 6, Qe = /* @__PURE__ */ new Set(["seek-bar", "time-display"]);
1116
+ function We() {
1065
1117
  return typeof window.matchMedia != "function" || window.matchMedia("(hover: hover)").matches;
1066
1118
  }
1067
- class _e {
1119
+ class Xe {
1068
1120
  constructor(t) {
1069
1121
  s(this, "el");
1070
1122
  s(this, "labelEl");
@@ -1118,18 +1170,18 @@ class _e {
1118
1170
  const e = t, i = (o = e == null ? void 0 : e.closest) == null ? void 0 : o.call(e, 'button[aria-label], [role="slider"][aria-label]');
1119
1171
  if (!i) return null;
1120
1172
  const r = i.getAttribute("part");
1121
- return r && qe.has(r) || i.offsetParent === null && i !== document.activeElement ? null : i;
1173
+ return r && Qe.has(r) || i.offsetParent === null && i !== document.activeElement ? null : i;
1122
1174
  }
1123
1175
  scheduleShow(t) {
1124
1176
  this.hideTimer && (clearTimeout(this.hideTimer), this.hideTimer = null), this.showTimer && clearTimeout(this.showTimer), this.pendingTarget = t, this.showTimer = setTimeout(() => {
1125
1177
  this.showTimer = null, this.pendingTarget = null, this.show(t);
1126
- }, De);
1178
+ }, $e);
1127
1179
  }
1128
1180
  scheduleHide() {
1129
- this.showTimer && (clearTimeout(this.showTimer), this.showTimer = null), this.pendingTarget = null, this.hideTimer && clearTimeout(this.hideTimer), this.hideTimer = setTimeout(() => this.hideNow(), He);
1181
+ this.showTimer && (clearTimeout(this.showTimer), this.showTimer = null), this.pendingTarget = null, this.hideTimer && clearTimeout(this.hideTimer), this.hideTimer = setTimeout(() => this.hideNow(), Ke);
1130
1182
  }
1131
1183
  show(t) {
1132
- if (!Ve()) return;
1184
+ if (!We()) return;
1133
1185
  const e = t.getAttribute("aria-label");
1134
1186
  if (!e) return;
1135
1187
  this.currentTarget = t, this.labelEl.textContent = e;
@@ -1141,14 +1193,14 @@ class _e {
1141
1193
  }
1142
1194
  position(t) {
1143
1195
  const e = this.mountEl.getBoundingClientRect(), i = t.getBoundingClientRect(), r = this.el.getBoundingClientRect();
1144
- let o = i.top - e.top - r.height - Y;
1145
- o < D && (o = i.bottom - e.top + Y);
1196
+ let o = i.top - e.top - r.height - ie;
1197
+ o < G && (o = i.bottom - e.top + ie);
1146
1198
  let a = i.left - e.left + i.width / 2 - r.width / 2;
1147
- const l = e.width - r.width - D;
1148
- a = Math.max(D, Math.min(a, l)), this.el.style.top = `${o}px`, this.el.style.left = `${a}px`;
1199
+ const l = e.width - r.width - G;
1200
+ a = Math.max(G, Math.min(a, l)), this.el.style.top = `${o}px`, this.el.style.left = `${a}px`;
1149
1201
  }
1150
1202
  }
1151
- class Ge {
1203
+ class Ye {
1152
1204
  constructor(t, e, i) {
1153
1205
  s(this, "host");
1154
1206
  s(this, "video");
@@ -1202,7 +1254,7 @@ class Ge {
1202
1254
  this.host.removeEventListener("keydown", this.onKeyDown);
1203
1255
  }
1204
1256
  }
1205
- class Ue {
1257
+ class Je {
1206
1258
  constructor(t) {
1207
1259
  s(this, "el");
1208
1260
  s(this, "video");
@@ -1214,8 +1266,8 @@ class Ue {
1214
1266
  this.video.removeEventListener("waiting", this.show), this.video.removeEventListener("playing", this.hide), this.video.removeEventListener("canplay", this.hide), this.video.removeEventListener("pause", this.hide);
1215
1267
  }
1216
1268
  }
1217
- const We = '<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20 11a8 8 0 1 0-2.3 5.7"/><path d="M20 4v7h-7"/></svg>';
1218
- class Xe {
1269
+ const Ze = '<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20 11a8 8 0 1 0-2.3 5.7"/><path d="M20 4v7h-7"/></svg>';
1270
+ class et {
1219
1271
  constructor(t, e) {
1220
1272
  s(this, "el");
1221
1273
  s(this, "video");
@@ -1235,7 +1287,7 @@ class Xe {
1235
1287
  const i = document.createElement("div");
1236
1288
  i.className = "hp-error-card";
1237
1289
  const r = document.createElement("div");
1238
- r.className = "hp-error-icon", r.appendChild(E("warning")), i.appendChild(r), this.messageEl = document.createElement("p"), this.messageEl.className = "hp-error-message", i.appendChild(this.messageEl), this.codeEl = document.createElement("p"), this.codeEl.className = "hp-error-code", i.appendChild(this.codeEl), this.retryBtn = document.createElement("button"), this.retryBtn.type = "button", this.retryBtn.className = "hp-error-retry", this.retryBtn.innerHTML = We, this.retryText = document.createElement("span"), this.retryText.textContent = e.retry, this.retryBtn.appendChild(this.retryText), this.retryBtn.addEventListener("click", () => {
1290
+ r.className = "hp-error-icon", r.appendChild(L("warning")), i.appendChild(r), this.messageEl = document.createElement("p"), this.messageEl.className = "hp-error-message", i.appendChild(this.messageEl), this.codeEl = document.createElement("p"), this.codeEl.className = "hp-error-code", i.appendChild(this.codeEl), this.retryBtn = document.createElement("button"), this.retryBtn.type = "button", this.retryBtn.className = "hp-error-retry", this.retryBtn.innerHTML = Ze, this.retryText = document.createElement("span"), this.retryText.textContent = e.retry, this.retryBtn.appendChild(this.retryText), this.retryBtn.addEventListener("click", () => {
1239
1291
  var o;
1240
1292
  this.dismiss(), (o = this.onRetry) == null || o.call(this);
1241
1293
  }), i.appendChild(this.retryBtn), this.el.appendChild(i), t.addEventListener("error", this.show);
@@ -1281,38 +1333,38 @@ class Xe {
1281
1333
  this.video.removeEventListener("error", this.show);
1282
1334
  }
1283
1335
  }
1284
- const H = /* @__PURE__ */ new WeakMap(), ue = /* @__PURE__ */ new WeakSet(), O = /* @__PURE__ */ new WeakMap();
1285
- function Qe(n) {
1286
- return ue.has(n);
1336
+ const _ = /* @__PURE__ */ new WeakMap(), xe = /* @__PURE__ */ new WeakSet(), D = /* @__PURE__ */ new WeakMap();
1337
+ function tt(n) {
1338
+ return xe.has(n);
1287
1339
  }
1288
- function me(n, t, e, i, r) {
1289
- let o = H.get(n);
1290
- o || H.set(n, o = /* @__PURE__ */ new Map());
1340
+ function ke(n, t, e, i, r) {
1341
+ let o = _.get(n);
1342
+ o || _.set(n, o = /* @__PURE__ */ new Map());
1291
1343
  const a = `${t}\0${e}\0${i}\0${r}`;
1292
1344
  let l = o.get(a);
1293
- return l || (l = n.addTextTrack(e, i, r), ue.add(l), o.set(a, l)), l;
1345
+ return l || (l = n.addTextTrack(e, i, r), xe.add(l), o.set(a, l)), l;
1294
1346
  }
1295
- function ge(n, t) {
1296
- for (const [e, i] of H.get(n) ?? [])
1347
+ function we(n, t) {
1348
+ for (const [e, i] of _.get(n) ?? [])
1297
1349
  if (e.startsWith(`${t}\0`)) {
1298
1350
  i.mode = "hidden";
1299
1351
  for (const r of Array.from(i.cues ?? [])) i.removeCue(r);
1300
1352
  i.mode = "disabled";
1301
1353
  }
1302
1354
  }
1303
- function $e(n, t) {
1304
- be(n);
1305
- const e = O.get(n), i = [];
1355
+ function it(n, t) {
1356
+ Ee(n);
1357
+ const e = D.get(n), i = [];
1306
1358
  for (const r of t) {
1307
- const o = me(n, "options", "subtitles", r.label, r.srclang);
1308
- o.mode = r.default ? "hidden" : "disabled", i.push({ label: r.label, track: o }), je(n, o, r.src, e);
1359
+ const o = ke(n, "options", "subtitles", r.label, r.srclang);
1360
+ o.mode = r.default ? "hidden" : "disabled", i.push({ label: r.label, track: o }), st(n, o, r.src, e);
1309
1361
  }
1310
1362
  return i;
1311
1363
  }
1312
- function be(n) {
1313
- O.set(n, (O.get(n) ?? 0) + 1), ge(n, "options");
1364
+ function Ee(n) {
1365
+ D.set(n, (D.get(n) ?? 0) + 1), we(n, "options");
1314
1366
  }
1315
- function Ke(n, t) {
1367
+ function rt(n, t) {
1316
1368
  let e = null;
1317
1369
  for (const { label: i, track: r } of n) {
1318
1370
  const o = i === t;
@@ -1320,7 +1372,7 @@ function Ke(n, t) {
1320
1372
  }
1321
1373
  return e;
1322
1374
  }
1323
- async function je(n, t, e, i) {
1375
+ async function st(n, t, e, i) {
1324
1376
  let r;
1325
1377
  try {
1326
1378
  const o = await fetch(e);
@@ -1330,32 +1382,32 @@ async function je(n, t, e, i) {
1330
1382
  console.warn("[HopePlayer] altyazı yüklenemedi:", e, o), n.dispatchEvent(new CustomEvent("hp-internal:subtitle-error", { detail: { src: e, message: String(o) } }));
1331
1383
  return;
1332
1384
  }
1333
- if (!(O.get(n) !== i || typeof VTTCue != "function"))
1334
- for (const o of Ze(r)) {
1385
+ if (!(D.get(n) !== i || typeof VTTCue != "function"))
1386
+ for (const o of at(r)) {
1335
1387
  const a = new VTTCue(o.start, o.end, o.text);
1336
- Je(a, o.settings), t.addCue(a);
1388
+ nt(a, o.settings), t.addCue(a);
1337
1389
  }
1338
1390
  }
1339
- const Z = "(?:\\d+:)?\\d{1,2}:\\d{2}(?:[.,]\\d{1,3})?", Ye = new RegExp(`^(${Z})\\s+-->\\s+(${Z})(.*)$`);
1340
- function J(n) {
1391
+ const re = "(?:\\d+:)?\\d{1,2}:\\d{2}(?:[.,]\\d{1,3})?", ot = new RegExp(`^(${re})\\s+-->\\s+(${re})(.*)$`);
1392
+ function se(n) {
1341
1393
  return n.replace(",", ".").split(":").reduce((t, e) => t * 60 + Number(e), 0);
1342
1394
  }
1343
- function Ze(n) {
1395
+ function at(n) {
1344
1396
  const t = [], e = n.replace(/^/, "").replace(/\r\n?/g, `
1345
1397
  `).split(/\n{2,}/);
1346
1398
  for (const i of e) {
1347
1399
  const r = i.split(`
1348
- `), o = r.findIndex((p) => p.includes("-->"));
1400
+ `), o = r.findIndex((h) => h.includes("-->"));
1349
1401
  if (o < 0) continue;
1350
- const a = Ye.exec(r[o].trim());
1402
+ const a = ot.exec(r[o].trim());
1351
1403
  if (!a) continue;
1352
1404
  const l = r.slice(o + 1).join(`
1353
1405
  `);
1354
- l.trim() && t.push({ start: J(a[1]), end: J(a[2]), settings: a[3].trim(), text: l });
1406
+ l.trim() && t.push({ start: se(a[1]), end: se(a[2]), settings: a[3].trim(), text: l });
1355
1407
  }
1356
1408
  return t;
1357
1409
  }
1358
- function Je(n, t) {
1410
+ function nt(n, t) {
1359
1411
  for (const e of t.split(/\s+/)) {
1360
1412
  const [i, r] = e.split(":");
1361
1413
  if (!i || !r) continue;
@@ -1366,35 +1418,35 @@ function Je(n, t) {
1366
1418
  }
1367
1419
  }
1368
1420
  }
1369
- const I = 6, et = 20, tt = 14, it = 6, st = 10, rt = 3, fe = "hope-caption-row", ve = "hope-caption-font-size", ee = "hope-caption-bg-color", te = "hope-caption-text-color", ot = {
1421
+ const F = 6, lt = 20, ht = 14, pt = 6, dt = 10, ct = 3, Ce = "hope-caption-row", Te = "hope-caption-font-size", oe = "hope-caption-bg-color", ae = "hope-caption-text-color", ut = {
1370
1422
  small: 0.78,
1371
1423
  normal: 1,
1372
1424
  large: 1.35
1373
- }, ie = [
1425
+ }, ne = [
1374
1426
  "rgba(0, 0, 0, 0.75)",
1375
1427
  "rgba(0, 0, 0, 0)",
1376
1428
  "rgba(255, 255, 255, 0.85)",
1377
1429
  "rgba(183, 28, 28, 0.8)",
1378
1430
  "rgba(13, 71, 161, 0.8)",
1379
1431
  "rgba(27, 94, 32, 0.8)"
1380
- ], se = ["#ffffff", "#000000", "#ffeb3b", "#ff5252", "#18ffff", "#69f0ae"];
1381
- function at() {
1432
+ ], le = ["#ffffff", "#000000", "#ffeb3b", "#ff5252", "#18ffff", "#69f0ae"];
1433
+ function mt() {
1382
1434
  try {
1383
- const n = window.localStorage.getItem(fe), t = n === null ? 0 : Number(n);
1384
- return Number.isFinite(t) && t >= 0 && t < I ? t : 0;
1435
+ const n = window.localStorage.getItem(Ce), t = n === null ? 0 : Number(n);
1436
+ return Number.isFinite(t) && t >= 0 && t < F ? t : 0;
1385
1437
  } catch {
1386
1438
  return 0;
1387
1439
  }
1388
1440
  }
1389
- function nt() {
1441
+ function gt() {
1390
1442
  try {
1391
- const n = window.localStorage.getItem(ve);
1443
+ const n = window.localStorage.getItem(Te);
1392
1444
  return n === "small" || n === "normal" || n === "large" ? n : "normal";
1393
1445
  } catch {
1394
1446
  return "normal";
1395
1447
  }
1396
1448
  }
1397
- function re(n, t) {
1449
+ function he(n, t) {
1398
1450
  const e = t[0] ?? "";
1399
1451
  try {
1400
1452
  const i = window.localStorage.getItem(n);
@@ -1403,7 +1455,7 @@ function re(n, t) {
1403
1455
  return e;
1404
1456
  }
1405
1457
  }
1406
- class B {
1458
+ class z {
1407
1459
  constructor(t, e, i, r) {
1408
1460
  s(this, "layerEl");
1409
1461
  s(this, "bubbleEl");
@@ -1411,10 +1463,10 @@ class B {
1411
1463
  s(this, "seekBarEl");
1412
1464
  s(this, "labels");
1413
1465
  s(this, "activeTrack", null);
1414
- s(this, "fontSize", nt());
1415
- s(this, "bgColor", re(ee, ie));
1416
- s(this, "textColor", re(te, se));
1417
- s(this, "rowIndex", at());
1466
+ s(this, "fontSize", gt());
1467
+ s(this, "bgColor", he(oe, ne));
1468
+ s(this, "textColor", he(ae, le));
1469
+ s(this, "rowIndex", mt());
1418
1470
  s(this, "dragging", !1);
1419
1471
  /** Kontrol çubuğu görünür mü — görünürken altyazı seek bar'ın üstünde, değilken en altta. */
1420
1472
  s(this, "chromeVisible", !0);
@@ -1443,7 +1495,7 @@ class B {
1443
1495
  t.button !== 0 && t.pointerType === "mouse" || (t.preventDefault(), this.dragging = !0, this.dragMoved = !1, this.dragStartClientY = t.clientY, this.dragStartBottomPx = this.pxForRow(this.rowIndex), this.bubbleEl.setPointerCapture(t.pointerId), this.bubbleEl.classList.add("hp-caption-dragging"), this.bubbleEl.addEventListener("pointermove", this.onPointerMove), this.bubbleEl.addEventListener("pointerup", this.onPointerUp), this.bubbleEl.addEventListener("pointercancel", this.onPointerUp));
1444
1496
  });
1445
1497
  s(this, "onPointerMove", (t) => {
1446
- this.dragging && (this.pendingDeltaPx = t.clientY - this.dragStartClientY, Math.abs(this.pendingDeltaPx) > rt && (this.dragMoved = !0), this.rafId === null && (this.rafId = requestAnimationFrame(this.applyPendingDrag)));
1498
+ this.dragging && (this.pendingDeltaPx = t.clientY - this.dragStartClientY, Math.abs(this.pendingDeltaPx) > ct && (this.dragMoved = !0), this.rafId === null && (this.rafId = requestAnimationFrame(this.applyPendingDrag)));
1447
1499
  });
1448
1500
  s(this, "applyPendingDrag", () => {
1449
1501
  if (this.rafId = null, !this.dragging) return;
@@ -1452,7 +1504,7 @@ class B {
1452
1504
  });
1453
1505
  s(this, "onPointerUp", (t) => {
1454
1506
  if (!this.dragging || (this.dragging = !1, this.bubbleEl.releasePointerCapture(t.pointerId), this.bubbleEl.removeEventListener("pointermove", this.onPointerMove), this.bubbleEl.removeEventListener("pointerup", this.onPointerUp), this.bubbleEl.removeEventListener("pointercancel", this.onPointerUp), this.rafId !== null && (cancelAnimationFrame(this.rafId), this.rafId = null), this.bubbleEl.classList.remove("hp-caption-dragging"), !this.dragMoved)) return;
1455
- const { min: e, max: i } = this.bounds(), r = Math.min(i, Math.max(e, this.dragStartBottomPx - this.pendingDeltaPx)), o = i > e ? (r - e) / (i - e) : 0, a = Math.round(o * (I - 1));
1507
+ const { min: e, max: i } = this.bounds(), r = Math.min(i, Math.max(e, this.dragStartBottomPx - this.pendingDeltaPx)), o = i > e ? (r - e) / (i - e) : 0, a = Math.round(o * (F - 1));
1456
1508
  this.setRowIndex(a, !0);
1457
1509
  });
1458
1510
  this.videoArea = e, this.seekBarEl = i, this.labels = r, this.layerEl = document.createElement("div"), this.layerEl.className = "hp-caption-layer", this.layerEl.setAttribute("part", "caption-layer"), this.bubbleEl = document.createElement("div"), this.bubbleEl.className = "hp-caption-bubble", this.bubbleEl.setAttribute("part", "caption-bubble"), this.bubbleEl.setAttribute("role", "note"), this.bubbleEl.setAttribute("aria-label", r.captionDragHandle), this.bubbleEl.tabIndex = -1, this.applyFontSizeVar(), this.bubbleEl.style.setProperty("--hp-caption-bg", this.bgColor), this.bubbleEl.style.setProperty("--hp-caption-text", this.textColor), this.layerEl.appendChild(this.bubbleEl), this.bubbleEl.addEventListener("pointerdown", this.onPointerDown), this.resizeObserver = new ResizeObserver(() => this.recomputePosition()), this.resizeObserver.observe(this.videoArea), this.recomputePosition();
@@ -1467,7 +1519,7 @@ class B {
1467
1519
  setFontSize(t) {
1468
1520
  this.fontSize = t, this.applyFontSizeVar(), this.recomputePosition();
1469
1521
  try {
1470
- window.localStorage.setItem(ve, t);
1522
+ window.localStorage.setItem(Te, t);
1471
1523
  } catch {
1472
1524
  }
1473
1525
  }
@@ -1477,7 +1529,7 @@ class B {
1477
1529
  setBgColor(t) {
1478
1530
  this.bgColor = t, this.bubbleEl.style.setProperty("--hp-caption-bg", t);
1479
1531
  try {
1480
- window.localStorage.setItem(ee, t);
1532
+ window.localStorage.setItem(oe, t);
1481
1533
  } catch {
1482
1534
  }
1483
1535
  }
@@ -1487,7 +1539,7 @@ class B {
1487
1539
  setTextColor(t) {
1488
1540
  this.textColor = t, this.bubbleEl.style.setProperty("--hp-caption-text", t);
1489
1541
  try {
1490
- window.localStorage.setItem(te, t);
1542
+ window.localStorage.setItem(ae, t);
1491
1543
  } catch {
1492
1544
  }
1493
1545
  }
@@ -1500,14 +1552,14 @@ class B {
1500
1552
  this.labels = t, this.bubbleEl.setAttribute("aria-label", t.captionDragHandle);
1501
1553
  }
1502
1554
  applyFontSizeVar() {
1503
- this.bubbleEl.style.setProperty("--hp-caption-size-multiplier", String(ot[this.fontSize]));
1555
+ this.bubbleEl.style.setProperty("--hp-caption-size-multiplier", String(ut[this.fontSize]));
1504
1556
  }
1505
1557
  bounds() {
1506
- const t = this.videoArea.getBoundingClientRect(), e = this.seekBarEl.getBoundingClientRect(), r = (this.bubbleEl.getBoundingClientRect().height || 32) + et, o = Math.max(st, Math.round(t.height * 0.04)), a = this.chromeVisible && e.height > 0 ? Math.max(0, Math.round(t.bottom - e.top + (this.videoArea.hasAttribute("data-compact") ? it : tt))) : o, l = Math.max(a, Math.round(t.height - r));
1558
+ const t = this.videoArea.getBoundingClientRect(), e = this.seekBarEl.getBoundingClientRect(), r = (this.bubbleEl.getBoundingClientRect().height || 32) + lt, o = Math.max(dt, Math.round(t.height * 0.04)), a = this.chromeVisible && e.height > 0 ? Math.max(0, Math.round(t.bottom - e.top + (this.videoArea.hasAttribute("data-compact") ? pt : ht))) : o, l = Math.max(a, Math.round(t.height - r));
1507
1559
  return { min: a, max: l };
1508
1560
  }
1509
1561
  pxForRow(t) {
1510
- const { min: e, max: i } = this.bounds(), r = t / (I - 1);
1562
+ const { min: e, max: i } = this.bounds(), r = t / (F - 1);
1511
1563
  return Math.round(e + r * (i - e));
1512
1564
  }
1513
1565
  /**
@@ -1526,11 +1578,11 @@ class B {
1526
1578
  }
1527
1579
  /** FLIP: bottom anında yazılır, yalnızca transform animasyonlanır — bottom'u animasyonlamak bırakınca zıplatıyordu. */
1528
1580
  setRowIndex(t, e) {
1529
- this.rowIndex = Math.min(I - 1, Math.max(0, t));
1581
+ this.rowIndex = Math.min(F - 1, Math.max(0, t));
1530
1582
  const i = this.pxForRow(this.rowIndex), r = this.visualBottomPx();
1531
1583
  e && Math.abs(r - i) > 0.5 ? (this.bubbleEl.classList.add("hp-caption-no-transition"), this.bubbleEl.style.bottom = `${i}px`, this.bubbleEl.style.transform = `translateX(-50%) translateY(${i - r}px)`, this.bubbleEl.offsetHeight, this.bubbleEl.classList.remove("hp-caption-no-transition"), this.bubbleEl.style.transform = "translateX(-50%)") : (this.bubbleEl.classList.add("hp-caption-no-transition"), this.bubbleEl.style.transform = "translateX(-50%)", this.bubbleEl.style.bottom = `${i}px`, this.bubbleEl.offsetHeight, this.bubbleEl.classList.remove("hp-caption-no-transition"));
1532
1584
  try {
1533
- window.localStorage.setItem(fe, String(this.rowIndex));
1585
+ window.localStorage.setItem(Ce, String(this.rowIndex));
1534
1586
  } catch {
1535
1587
  }
1536
1588
  }
@@ -1546,8 +1598,8 @@ class B {
1546
1598
  this.activeTrack && this.activeTrack.removeEventListener("cuechange", this.onCueChange), this.resizeObserver.disconnect(), this.rafId !== null && cancelAnimationFrame(this.rafId), this.bubbleEl.removeEventListener("pointerdown", this.onPointerDown);
1547
1599
  }
1548
1600
  }
1549
- s(B, "BG_COLOR_PRESETS", ie), s(B, "TEXT_COLOR_PRESETS", se);
1550
- class lt {
1601
+ s(z, "BG_COLOR_PRESETS", ne), s(z, "TEXT_COLOR_PRESETS", le);
1602
+ class ft {
1551
1603
  constructor(t) {
1552
1604
  s(this, "el");
1553
1605
  s(this, "bufferedEl");
@@ -1586,8 +1638,8 @@ class lt {
1586
1638
  this.rafId !== null && cancelAnimationFrame(this.rafId), this.rafId = null;
1587
1639
  }
1588
1640
  }
1589
- const ht = 1e3, pt = 800, dt = '<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M9.3 5.3a1.2 1.2 0 0 1 1.7 0l5.8 5.8a1.2 1.2 0 0 1 0 1.8l-5.8 5.8a1.2 1.2 0 0 1-1.7-1.7l4.9-5-4.9-5a1.2 1.2 0 0 1 0-1.7z"/></svg>';
1590
- class ct {
1641
+ const bt = 1e3, vt = 800, yt = '<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M9.3 5.3a1.2 1.2 0 0 1 1.7 0l5.8 5.8a1.2 1.2 0 0 1 0 1.8l-5.8 5.8a1.2 1.2 0 0 1-1.7-1.7l4.9-5-4.9-5a1.2 1.2 0 0 1 0-1.7z"/></svg>';
1642
+ class xt {
1591
1643
  constructor(t) {
1592
1644
  s(this, "el");
1593
1645
  s(this, "valueEl");
@@ -1598,7 +1650,7 @@ class ct {
1598
1650
  s(this, "hideTimer", null);
1599
1651
  this.labels = t, this.el = document.createElement("div"), this.el.className = "hp-seek-fb", this.el.setAttribute("part", "seek-feedback");
1600
1652
  const e = document.createElement("span");
1601
- e.className = "hp-seek-fb-chevrons", e.innerHTML = dt.repeat(3);
1653
+ e.className = "hp-seek-fb-chevrons", e.innerHTML = yt.repeat(3);
1602
1654
  const i = document.createElement("span");
1603
1655
  i.className = "hp-seek-fb-value", this.valueEl = document.createElement("span"), this.valueEl.className = "hp-seek-fb-num", this.unitEl = document.createElement("span"), this.unitEl.className = "hp-seek-fb-unit", i.append(this.valueEl, this.unitEl), this.liveEl = document.createElement("span"), this.liveEl.className = "hp-sr-only", this.liveEl.setAttribute("aria-live", "polite"), this.el.append(e, i, this.liveEl);
1604
1656
  }
@@ -1606,17 +1658,17 @@ class ct {
1606
1658
  show(t) {
1607
1659
  if (!t) return;
1608
1660
  const e = Date.now(), i = Math.sign(t) === Math.sign(this.total);
1609
- this.total = i && e - this.lastAt < ht ? this.total + t : t, this.lastAt = e;
1661
+ this.total = i && e - this.lastAt < bt ? this.total + t : t, this.lastAt = e;
1610
1662
  const r = Math.round(Math.abs(this.total) * 10) / 10, o = this.total > 0;
1611
1663
  this.el.dataset.side = o ? "forward" : "back", this.valueEl.textContent = `${o ? "+" : "−"}${r}`, this.unitEl.textContent = this.labels.secondsShort, this.liveEl.textContent = (o ? this.labels.skipForward : this.labels.skipBack)(r), this.valueEl.classList.remove("hp-seek-fb-bump"), this.valueEl.offsetWidth, this.valueEl.classList.add("hp-seek-fb-bump"), this.el.setAttribute("data-visible", ""), this.hideTimer && clearTimeout(this.hideTimer), this.hideTimer = setTimeout(() => {
1612
1664
  this.el.removeAttribute("data-visible"), this.total = 0;
1613
- }, pt);
1665
+ }, vt);
1614
1666
  }
1615
1667
  destroy() {
1616
1668
  this.hideTimer && clearTimeout(this.hideTimer), this.el.remove();
1617
1669
  }
1618
1670
  }
1619
- class ut {
1671
+ class kt {
1620
1672
  constructor(t) {
1621
1673
  s(this, "el");
1622
1674
  s(this, "open", !1);
@@ -1636,30 +1688,30 @@ class ut {
1636
1688
  }
1637
1689
  /** `clientX/Y` ekran koordinatı — menü player'ın içinde kalacak şekilde kaydırılır. */
1638
1690
  show(t, e, i) {
1639
- var u;
1691
+ var c;
1640
1692
  this.el.replaceChildren(
1641
- ...i.map((d) => {
1642
- const m = document.createElement(d.onSelect ? "button" : "div");
1643
- m.className = "hp-context-menu-item", d.onSelect ? (m.type = "button", m.setAttribute("role", "menuitem"), m.addEventListener("click", () => {
1644
- this.close(), d.onSelect();
1693
+ ...i.map((p) => {
1694
+ const m = document.createElement(p.onSelect ? "button" : "div");
1695
+ m.className = "hp-context-menu-item", p.onSelect ? (m.type = "button", m.setAttribute("role", "menuitem"), m.addEventListener("click", () => {
1696
+ this.close(), p.onSelect();
1645
1697
  })) : m.setAttribute("data-info", "");
1646
- const h = document.createElement("span");
1647
- if (h.textContent = d.label, m.appendChild(h), d.meta) {
1648
- const c = document.createElement("span");
1649
- c.className = "hp-context-menu-meta", c.textContent = d.meta, m.appendChild(c);
1698
+ const u = document.createElement("span");
1699
+ if (u.textContent = p.label, m.appendChild(u), p.meta) {
1700
+ const f = document.createElement("span");
1701
+ f.className = "hp-context-menu-meta", f.textContent = p.meta, m.appendChild(f);
1650
1702
  }
1651
1703
  return m;
1652
1704
  })
1653
1705
  ), this.el.setAttribute("data-open", ""), this.open = !0;
1654
- const r = this.container.getBoundingClientRect(), { width: o, height: a } = this.el.getBoundingClientRect(), l = Math.max(4, Math.min(t - r.left, r.width - o - 4)), p = Math.max(4, Math.min(e - r.top, r.height - a - 4));
1655
- this.el.style.left = `${l}px`, this.el.style.top = `${p}px`, (u = this.el.querySelector("button")) == null || u.focus({ preventScroll: !0 }), document.addEventListener("pointerdown", this.onOutside, !0), document.addEventListener("keydown", this.onKeyDown, !0), window.addEventListener("blur", this.close), window.addEventListener("resize", this.close), window.addEventListener("scroll", this.close, !0);
1706
+ const r = this.container.getBoundingClientRect(), { width: o, height: a } = this.el.getBoundingClientRect(), l = Math.max(4, Math.min(t - r.left, r.width - o - 4)), h = Math.max(4, Math.min(e - r.top, r.height - a - 4));
1707
+ this.el.style.left = `${l}px`, this.el.style.top = `${h}px`, (c = this.el.querySelector("button")) == null || c.focus({ preventScroll: !0 }), document.addEventListener("pointerdown", this.onOutside, !0), document.addEventListener("keydown", this.onKeyDown, !0), window.addEventListener("blur", this.close), window.addEventListener("resize", this.close), window.addEventListener("scroll", this.close, !0);
1656
1708
  }
1657
1709
  destroy() {
1658
1710
  this.close(), this.el.remove();
1659
1711
  }
1660
1712
  }
1661
- const mt = 3e3, oe = 200;
1662
- class gt {
1713
+ const wt = 3e3, pe = 200;
1714
+ class Et {
1663
1715
  constructor() {
1664
1716
  s(this, "list", []);
1665
1717
  /** Kayıt eklenince / temizlenince (açık panel canlı güncellenir). */
@@ -1671,11 +1723,11 @@ class gt {
1671
1723
  add(t) {
1672
1724
  var r, o;
1673
1725
  const e = Date.now(), i = this.list[this.list.length - 1];
1674
- if (i && e - i.time < mt && i.source === t.source && i.message === t.message && JSON.stringify(i.details ?? {}) === JSON.stringify(t.details ?? {})) {
1726
+ if (i && e - i.time < wt && i.source === t.source && i.message === t.message && JSON.stringify(i.details ?? {}) === JSON.stringify(t.details ?? {})) {
1675
1727
  i.count = (i.count ?? 1) + 1, i.time = e, (r = this.onChange) == null || r.call(this);
1676
1728
  return;
1677
1729
  }
1678
- this.list.push({ time: e, ...t }), this.list.length > oe && this.list.splice(0, this.list.length - oe), (o = this.onChange) == null || o.call(this);
1730
+ this.list.push({ time: e, ...t }), this.list.length > pe && this.list.splice(0, this.list.length - pe), (o = this.onChange) == null || o.call(this);
1679
1731
  }
1680
1732
  clear() {
1681
1733
  var t;
@@ -1690,13 +1742,74 @@ class gt {
1690
1742
  `);
1691
1743
  }
1692
1744
  }
1693
- const bt = '@font-face{font-family:hope-icons;src:url(data:font/woff2;base64,d09GMgABAAAAAAq4AAsAAAAAIQwAAAprAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGYACEUAqySKthATYCJANICyYABCAFhC4HgWgbvBwzo8LGASCo7UymWhxkcsp3plRjG4rgPXRJJ9fVhsrU04g9KovY4vJpzld+YERwXGwRdmsE0Nr/Zk+ea/0/eUbEQ4UkolEzJRAyHrJGXayR33zvZk3CzJDWKUloHZmgFSSUioXQOu8CNQvUV7Fz8RXl3Ff898T9fqr+cyupw8KUzXXM2Pc+Y3RIJIjjFblsLVvy9ORekUJtZff2i6NK8HjGMyiHsTj9XUbnwv7/5kp7XCD8BeOOdcGZSfIPsrM5QkzeZXkOQfZVEUhABwAKUDggdBWmwp5bI3wNxmYesGjMYIr2ErZ95PkIqFi1QbLtbd8xjZO6BExkeO9AXDacdLVGaREsKykblAQF2QOGr+GZnLCNToCd/mP/b+whiTzFT+iQ3V55GcVWeDl7aTn8s6k7GfaeIEeKxYmFhovl0aeRhuKiTyui6MwWuvtMILZmMyJXmPauCBKpTL74D15RSVlFVU1dQ1NLm1DAaQ2OX3LaRDYIRJAQQUoEGRHkRFAggiIRlIigTAQVIqgSQY0I6kTQIIImEbSI1bRBx608h/NQqSHkKT7yEZrrR2RPz6ctjRGDG5nJdrydkGbZiKODliytnkQsNhY5zUiogdvU37V1d09VV/e/414obRN7aOtEcNuERYBt776fN6bYNjY63h7GWD6eyOzdToMjKDRrjCXJZr6PdPyOdIdliibDmY2DqAUiWGJXYrWbDrSyw7NEkZiDxS9mCaRGQoacgc4Vp4BTwymzoEiV7PaZGCgBITVhA7JtEsZc5ASmgO2SkAMyMFgQmuq5iujoEyqvKQfh+ukR7o4c9Ap115TXFY7qFaoorcaYFmYCFyoiBGkBrw9PQZUv3e3GSCR5o5UBQA8LWNGSDhBOBCPsUr6WQw5qT07UrqNN4zsQ4OlmQZFen2wp7PHCFdfIKYioSnqbs3Pk8WigFxYQNeXWa0IbetamJN7LPsyq18kUrjtzOiK77e168SK3kAwhq8pHFH0E2shMekcD9uECvCfHMxqJQIxCafozKBVerE1Atb0FbZuybniE50mGWDJmhE8a4XPlCFeJYw+K6N7pjtZhdEynJ3U6GuWotlP9NzzMceyjTscMc0nDXJ5TjnLsQQBE2kRA25Uu056bc3Guzv00q35/s2NVVdXVNWVfE8XGxhZnfXV1b++sw95W2m7MHXcIgm2uy1VR0TF0wsriUh5VSuLUKzGzoYAqoVzXDm0Ogm2nRdc41sTVGggQ7XUWXSh3kOjR8GZS0i4NL6TUQCoshWvmQL3wmWstTCYUjGn1s4Ga9/gWSblci2NEZu58tHd2LLw71dOjP9jOQ0+Drd5R+1jgk4rnOo2qkX/55OIpo0pBCZg/vx40NI+GyPM2iJ6KUOblTr92xmfF2KzavOf/0LpOlQ/ELz1GcdPDYYhvaNSjw6iqRIdF7mkRC345pqgR2S8gPCyGIqoSC4nCnp3IJIZpG3lpruEwRS3IwfXGpVcd0uCnq7yif/c06tJhXFxEFDAaEeWHPslZ3z+Nw2IfXCJd0GqHKyRediMy8NPoIVoRKcjB72WtBlblT8QteSs5oihS/gURYkVZUpSILLK//5swQZT+3MTuXDyGQPRkf/03YYwqVAF9/6v1Kn+K8+B9WCDBKMbRIBFwzDIl6sg8mgWuFrcVeArvNKm3HsuyqHGXTNBTl0ffUumpqqqrEQTm27Kevu6Cz0VnzDtWccpph/F3jdEqrrk5jXwa+tWhImBggMGCgl+3qMqEGTUuyaKgWBvWYp6IcjCmJsIJNRKVRdaKmYtpQMMiH6UHHg0Fr8FazAkrGq+niSp6oICj4tjKinI0QobGnjab8Fi7+8wiy+H67e8e6ttyeJyHA4ZeCDlDlmHdj7qSnk9cn+QrCJ+GV1K6Il5CECYWX6RLkXw+tkM0nHhneUW2di9SkLAIsiQoGR35BM4+PpBMJncxoGAKAlBMS5JPJsgSyu2aQstGZVjn2Hm/ghoboGAd+QgVPuRysUlHECWGxLEcldmFXozgeEZ6TrdFyozDykOVqQlbdM+F3H+wxHuH8Jb7/IFTKKho7htfuvDG57eYtzx/44VL433NFQXvC176RgRtFpPnAqv7QpNFX/px6kOge5cgtJpNpuQGd9xkpg1DyDgtjQGC+52MliNeCSup9HNrmRE/gZD4RzLz+ySdUrDkJZyWAd+8qyk2lHg86r7njTrdE60ajWWLn4WawM/ZtAZKw/let8adzehoWFWv15uMXZ9cnzTp9bi+gq665Isatzd/WJqaLnwqkMH6t1g0PPKpXp1M4j6Pp6SB1ZZ1/Ccpvg1pbYGensXFdCpx3nmJVHpxsacnYCsyjOgmgf9nMxu4t4I7m3q/iGXJ+tTJs/a07xHbyoHkCeatcPXZx7qvz36+b8+zizl3hevv+mv03uy+bqwRCnUS4jYyzZvhPt+/Rbaw+006C7LoRhol2khxm5DeRNNR8L93X/be0b/uqg/flbP47J59n2ev7z52dnX4LeZE8sCK7RHf0/zsyWk9yca+6G3aGXyL25A5qScTNIISJ9eLRZYUvwWC+loJzuQYJdoEhivMGmkpIspTODwZdO7HGpvZnHLb79t30cVdjRljyxxG85x/DY2ZrsaLL9qn1LlTZrNNg/PWxNDa+tbFWn5t6/y6y8WPTBP9jkJH/xWdZzccoxSEWMtZJ/pYkJzh4FiYJEsIT2rXthduO+20tXUDA60uVz4nrm9r/KVZt3baabfd9/7Y+LWKvZSmS+3KteNj7zdcxQGAo+gsB+X56HHIjIp1mzb9aLF0vF56bE6jQuU9pJNN3NPpro2XARycHu8OSV1dUqh7/HFrnxVD6PPGEzljOYm41wchzl+mpyeggcgJJiETQ5IncpJJyqQkx/0oJBbZE0Eo4pEtBGZQ+hgROPf/LQAAAKhnqTYAAKDGqBVjwk3USO/XqNP8Ca9Qp0x4iZqecBY1NuFLav2ubqbCAPx/iPqWusMQf5ehV8LuRaEL+7C0Ho6fZn1ApQE1+0AAPNz25r/zRW2/MlHVBNycf+4uvLuNUXIsOvAfhHfS3Ked1y/GzZ3Y+xPQCZv0tCdWaBozPLbl/dA0CDGOTBQXCDENpTZsM8cp5KrmoaBiFSoWrDlwVddxqZCVBT1XDUg0PIJUz3PbzPEF5AZeQ0HPB6i4/wf/QHM8hKdGIq+ckZA/1J3XKSMjD/IjZSdB7dbbgtvxLnDShSt1uKh8rPcVq2ySVr1JKOy9qJjkj01ZN6XEx83Grv7SayMtGogItuIYiICMD1Cj46Gl0gbz1X9AQobbbb6yw2ylbN9pkFxaK2DVuR9wgZJxRI09QoGFYpEgWihvzXhkenjInEbxnv7ADArWmgaZEY82pjkrS9cDS62yrgIwBL+yd9SjPg1oSCMa04SmNKM5LWhJV3RNN3RLd3SPoWnY/C/cn3dMElaebRkaL5lvbOd9Nok5rDgUTteZK3t2ZVAnVw28SBxG3WXuRxcH0evLJHMpLtR5mv9dXB1010J4QlbSSadqfhTftbxqXN3MFqleTgtWqO0KV+NKYmgeBAA=) format("woff2");font-weight:400;font-style:normal;font-display:block}', ae = "hope-player-icon-font";
1694
- function ft() {
1695
- if (typeof document > "u" || document.getElementById(ae)) return;
1745
+ const Ct = '@font-face{font-family:hope-icons;src:url(data:font/woff2;base64,d09GMgABAAAAAAuMAAsAAAAAIuAAAAs8AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGYACEegq1PK4ZATYCJANUCywABCAFhC4HggobTB4jESaVTgwydRbGzrR7EFKamp4EGD6+83WPOlVtFufKNoQP3FMw3+XD4QURPF85y/cFhm57sFsyDKE9ixwGQaUcQJ7ZIC+eQ8xnVOhGN8/3btY0zAxpnZKEriMToI4M0DphaJ13gQpdD9QMOzX/XVPOfcV/T/yaqq5tmHwMC1LiMW2M97StYfS0oH8OXi4E3rrH67vHaIoxiv5vLbUMRfxFY8K64ExmZwJ7cxtC3H3Z4wmC7KsikMCsgIVilHUVpsLGnRG+BsOtHVjBqsXBGhPUj7waBFAsZD3OLrsNDoOOU49i7NXwYEMF0upy6klW9QrzCLyK6kIBISd7TPlNbsMH2UWOB3YPX/k/VLkKHHwXdk4HHN81AV7PyHrl9fbrzJe/2aE7EfbuAD7gAjOKRcnF1Qnn4sb8TEgVL8FjD7p7D4Gst92GDB+rvSsQHFw8/Pl/8/IUKKLQlCjTQSdddNNDLwYkBxtcgltRaCDDBQQywIEMraPIAHiQAT5kQA4yIA8Z2kSRAShCBijIAA0ZUIIMKEMGdEAGdEIGdEEGdEMG9EAG9EIWgYG53XcDuAzUNaDHLMu7Exx8Y+LmFQ0Gny4D48WP8/C2nFvbdSu+yqveXpKqPK/CiEccUV4+iZ0pm2EUkqiKDXcd9PfPrB0YfnXh4qqKcW16GxGVhuMH0vYtGw6G4nLSKt1wP87cA1qLcsuOQt/4kLgbH1yC3vhqwo0fPBEd49tvjynxwTeL9NHc+M03BdRkMFrEDZxQ1HNsByFJ3d2k8dokTtujRGBuSgXmoZmNiDmoN5iwpLJ5J0Tr41F3pErSxE5r7YjXSQQscVd8q5terDHDs8Q8PgHLMj5LRBqlokk06lyJCkQ1ojKL8GTJbp+pRqUoUU3YINumkliJTsEUYbtUoiPRaLAIFK1z5cVTJ2ReUwR8/dQIb8cIaoW8a8qZCqJqhSxKWynJ4ylmWJAAS2N8Otkda/XeYRjsFyhj0rDRyoBBQSSChuwAMUpBS7oUr8QQgwZPTvyG6TaD70XE080iPLU+2UK0IxcuwsaqY13JWdvYED0erfTCAq89174mlFHPyjRL7uUwQdC6Trpcd+b0iOi29xiWL3InU0LkCsvsy6G9BA4lMzQOpQ8PBCjHTWhMMNGKKnOOoWJYhYrB2moLyoq2bngiCJQZM8R5IkifCJQ5goTQ5HlFwrAehhLUAupcD9ProQQUUUSfV2trx63V4WRIncdt+rjVIUUU0ecBYyrGYKuWLlNNAvfGvXUfXmTL52uuru/v7+ubca6k1O9vacwfGBgcXDDtrFSq1uzpaVl2zK5t1us1m8YES1N7ZGmJ1aCgJyYqtEUo6tqiYiGb1g02x7EmzTWBADFed7EHi/aCejQCJkJqXAo9F9IGgrPA18xCDZFjbGvRpqFhTCs+G8h5j++UWiY24kRj5t/5hLBemwd0qqZHf6ydh5oGW72xM1nxScV3a7RaScghJ5eiSkooPGUSol8PCjVLIA5YN0o9FVFaL3Y+a5idfc3M9VzXQ7dbJm7EYA4/tfK6bnB72X+HHeq71KJGf+n1/ua0g+3iSDY1Rn86/LDOC2c3NZeOeT1xWrvD+vlTXsJdzevs0NxhrrGpuSnhG3V7eG32QPcvb+iu61Tczs57l6Tb/uRmmtisNR96nzl3acMykuhQDOtjLCwhLIZZTFNjQ1RMTmDZxxKqFmU+GWGZhqOamghT+dB+JEnY6jEnjRraqlppEURabryN0YjkbUH5d5/AImVJfjkqY2Sn8jZJln/DPVimfaBMjqzXywJpN92LJHBqDKJ2REqL4L6B334DTt0UEimLqqpSfk+EBMoUVY0yKvz+b0YHUfpzE7MryTECgsHCr/9mtJFAPdD7v9agSRd4z9+LZRKKYRwLERmnLBt4vdmKpmEzFW2FXSB57eqpxzLFa9sNCvrqlNMDq31Vk3U1wsHWtoynt7uIK9EZc55RXHDa0dJjYzSKO25OG1+Hek2oHOjv57Gs4XctpvERXksqjMoi1kf0WCKUhRJaKpLSojFGBTvmr+cAB8u9BUbg1hXAO7Aei/KSJuspYpoeJuOkIrYLlMWixCYR2mwiYf3BSw8ZjtTv+eBg34Yj4zwZMPhOuCZsGzL8aKjs/qT2kxIV4efwKGow6iEEYWLzRoOq4vUKHTw74pnhoULdXpQQERAUSEixevMJnP54oFgsrgpQADMQgApOUbyMIFu4KKhCZ786rHvsvk9CtU2QTHrzETr4glMVFgNBBTRMx3JaVq71YATjOeUtwy4lF4erT6zOjdtleCvy6eMVAVuCALlfH9TIpauae+OT19779i7rrrfvvXYy3tu8qvR9zgffi6DDZnFfY3dda7EZqz7OfQ/05CSEdqvFkl5wJS1WzjSIrIvSmSB4uobXi8SjYDWTfWs2N+wjEBLfcG72lGQzKlY8RNTz4JudugpTpdutHXnbbDC80urqbLt8AtQFfs5ndVAZKvG4dK58zsDBNQ1Go8Uc/OTutMVoxA2rONFF39W5PCVDyuRs2WuBXMG3y6Zjca/1GGTSjrjdlQ2MdkXHf5KKh5DeEejunpjIZlJXXZXKZCcmursDjjzP8+4T+H8zL4jbQvuber5I5Ml85vxv6XXvC47pY+lz/LbI2svPdN2d//zIoTcnCh+LNDz218iT+SNd2CAk+oTTbnLNazuv99/CbMJRi8GGbIZhv8KZC8QlZLRwXAz87zmSf3Lkr8caIo8VTrx56Mjn+bu7zly+j2zjz6WPTTte8L4ubT4/M0/yiS96mvaHtokLufN60kEjqHR+g7ExRfM7IWiudeCmQrPCWcBwZQUzp0QpU+HkGOg8inUOqzXjcj515Lrrg/6cucK25SQU3kFzLui//rojar0rY7U6dLh4loZn51vrSkrq1shzN9OPLGN91Zvqvls6z84Oo0yEBNtZp3kFkJ6SwcnBdKYgrNSuHe88dNFFs6G/v7W2toT5+UGt6e9mbvZ60UNPvT8av1N1VnFclVO9Mz76fuNVHAU4jc5yTJ6PGofMXTW3tPSjw9Lxehm0nEUHpfeQrm/inU5vLd4EcHxjvCusBINKuCv+sr3XjiH0epKpwtHCVNLjhRCXb9LrY9BEWIpPMWJKS4Sl+TQjlYWuFyGxMXcUoaib2Qj0oPxPgDSZbf8PtH+XP2QjtNvhUiCPydpxiZww7i6Jln9eLhz3rJw/7mlpjbtUknHfyim72iT7QvsX+VG2W/x/MvRGmD2FuzDfVzgFll/mfyLnINPvBJsOuOzhIzrX/lrQDgCXjr81h721f5E/ZDtQ4FiCwL88AVl9f2z9f2k3JsdtggBWdvg1P88BlJ0NbVhSF++qQYVL0jiH/JyAd2OhG6aeZR18NOOQQ7EQFE1WH1vTy3FcxCsiGC60wKGDm8DFsN3Us3wUfALehByG70GR8Od30kzITu9wlEB6TVjewHZR5YKIPM8X5OIJxf1814GHcQSErBgacfqiPHtgNsIMteKVkCFGEmkogObKMaeHujbLv3Slqe05JAGSpxFUvPWA1YmUXNlqueFXD2SF326+sIjKnZTpkaLk4goDzZUf7UY4x5l1gDFDOF5GWsJuzTjkRRHN6Jn8PQVAYxXXIC95UNv6jCytBhZazV0F8GHPhBVHXPHEl5zkpSBFUaKlJGXpkE7pkm7pkV4xYiUgf1TlFNVto6Ow1IQImqEZZcuO9QL9v/LrnDOhjGCKP+hQgZ25MRadAVACMuTt7LSvnkd2fDOKTWmcoiswTJVGfRx6VpLZoy3zsn2SJ9U1js/JUL6o3CzPHbsWpPPWLeZZkS6rSZm2Y2imQjw2D+/1AAAAAA==) format("woff2");font-weight:400;font-style:normal;font-display:block}', de = "hope-player-icon-font";
1746
+ function Tt() {
1747
+ if (typeof document > "u" || document.getElementById(de)) return;
1696
1748
  const n = document.createElement("style");
1697
- n.id = ae, n.textContent = bt, document.head.appendChild(n);
1749
+ n.id = de, n.textContent = Ct, document.head.appendChild(n);
1750
+ }
1751
+ function St() {
1752
+ var i;
1753
+ const t = (i = window.adTaxonomy) == null ? void 0 : i.keyValues;
1754
+ if (!t || typeof t != "object") return "";
1755
+ const e = [];
1756
+ for (const [r, o] of Object.entries(t))
1757
+ o == null || o === "" || e.push(`${r}=${o}`);
1758
+ return e.join("&");
1759
+ }
1760
+ function V(n, t = {}) {
1761
+ const e = encodeURIComponent(document.referrer || window.location.href), i = encodeURIComponent(window.location.href), r = Date.now();
1762
+ let o = n;
1763
+ const a = {
1764
+ referrer_url: e,
1765
+ description_url: i,
1766
+ timestamp: r
1767
+ };
1768
+ for (const [l, h] of Object.entries(a)) {
1769
+ const c = `[${l}]`;
1770
+ if (o.includes(c))
1771
+ o = o.replace(c, String(h));
1772
+ else if (!new URLSearchParams(o.split("?")[1]).has(l)) {
1773
+ const p = o.includes("?") ? "&" : "?";
1774
+ o += `${p}${l}=${h}`;
1775
+ }
1776
+ }
1777
+ try {
1778
+ const l = new URL(o);
1779
+ if (l.pathname.includes("/vmap/")) return n;
1780
+ const c = [];
1781
+ t.includeRefreshCount && c.push(`adrefreshCount=${t.adRefreshCount ?? 0}`);
1782
+ const p = St();
1783
+ if (p && c.push(p), c.length) {
1784
+ const m = l.searchParams.get("cust_params");
1785
+ l.searchParams.set("cust_params", m ? `${m}&${c.join("&")}` : c.join("&"));
1786
+ }
1787
+ return l.toString();
1788
+ } catch {
1789
+ return o;
1790
+ }
1791
+ }
1792
+ function q(n) {
1793
+ const t = {};
1794
+ if (!n) return t;
1795
+ const e = typeof n == "string" ? [...new URLSearchParams(n.trim().replace(/^\?/, "")).entries()].map(([i, r]) => [i, r.split(",")]) : Object.entries(n);
1796
+ for (const [i, r] of e) {
1797
+ const o = (Array.isArray(r) ? r : [r]).filter((a) => a != null && a !== "").map(String);
1798
+ i && o.length && (t[i] = o);
1799
+ }
1800
+ return t;
1698
1801
  }
1699
- const ye = {
1802
+ function At(n, t) {
1803
+ const e = Object.entries(q(t)).filter(([i]) => !i.startsWith("hb_")).map(([i, r]) => `${encodeURIComponent(i)}=${r.map(encodeURIComponent).join(",")}`);
1804
+ if (!e.length) return n;
1805
+ try {
1806
+ const i = new URL(n), r = new Set(e.map((a) => a.slice(0, a.indexOf("=")))), o = (i.searchParams.get("cust_params") ?? "").split("&").filter((a) => a && !r.has(a.split("=")[0]));
1807
+ return i.searchParams.set("cust_params", [...o, ...e].join("&")), i.toString();
1808
+ } catch {
1809
+ return n;
1810
+ }
1811
+ }
1812
+ const Se = {
1700
1813
  play: "Oynat",
1701
1814
  pause: "Duraklat",
1702
1815
  mute: "Sessize al",
@@ -1755,6 +1868,7 @@ const ye = {
1755
1868
  rewardedNoFill: "Şu an gösterilecek reklam yok. Biraz sonra tekrar deneyin.",
1756
1869
  rewardedOk: "Tamam",
1757
1870
  rewardedUnlocked: "{quality} açıldı",
1871
+ rewardedUnlockedNoAd: "Şu an reklam yoktu — {quality} yine de açıldı",
1758
1872
  rewardedForVideo: "bu video boyunca",
1759
1873
  rewardedForSession: "bu oturum boyunca",
1760
1874
  rewardedForMinutes: "{n} dakika boyunca",
@@ -1784,6 +1898,8 @@ const ye = {
1784
1898
  redirectPlayNow: "Şimdi Oynat",
1785
1899
  redirectCountdown: (n) => `Sıradaki video ${n} saniye içinde oynatılacak.`,
1786
1900
  redirectNowPlaying: "Video oynatılıyor...",
1901
+ redirectUpNext: "Sıradaki",
1902
+ redirectCancelCard: "Sıradakini iptal et",
1787
1903
  qrResumeTitle: "Devam etmek için kodu telefonunuzla okutun",
1788
1904
  qrResumeDontShowAgain: "Bir daha gösterme",
1789
1905
  qrResumeContinue: "Devam Et",
@@ -1792,6 +1908,13 @@ const ye = {
1792
1908
  qrResumeOff: "Kapalı",
1793
1909
  pauseAdLabel: "Sponsorlu",
1794
1910
  pauseAdClose: "Reklamı kapat",
1911
+ adTriggerLabel: "Reklam",
1912
+ castButton: "TV'ye yayınla",
1913
+ airplayButton: "AirPlay",
1914
+ castPlayingOn: "{device} cihazında oynatılıyor",
1915
+ castDeviceFallback: "TV",
1916
+ castAdOnTv: "TV'de reklam oynatılıyor",
1917
+ airplayPlaying: "AirPlay ile oynatılıyor",
1795
1918
  pauseAdResume: "Videoya devam et",
1796
1919
  markerLearnMore: "Daha fazla bilgi",
1797
1920
  markerContinue: "Devam et",
@@ -1806,7 +1929,7 @@ const ye = {
1806
1929
  liveClock: "Canlı saat",
1807
1930
  live: "CANLI",
1808
1931
  goToLive: "Canlıya git"
1809
- }, vt = {
1932
+ }, Lt = {
1810
1933
  play: "Play",
1811
1934
  pause: "Pause",
1812
1935
  mute: "Mute",
@@ -1865,6 +1988,7 @@ const ye = {
1865
1988
  rewardedNoFill: "No ad is available right now. Please try again in a moment.",
1866
1989
  rewardedOk: "OK",
1867
1990
  rewardedUnlocked: "{quality} unlocked",
1991
+ rewardedUnlockedNoAd: "No ad right now — {quality} unlocked anyway",
1868
1992
  rewardedForVideo: "for this video",
1869
1993
  rewardedForSession: "for this session",
1870
1994
  rewardedForMinutes: "for {n} minutes",
@@ -1893,6 +2017,8 @@ const ye = {
1893
2017
  redirectCancel: "Cancel",
1894
2018
  redirectPlayNow: "Play now",
1895
2019
  redirectCountdown: (n) => `Next video will play in ${n} seconds.`,
2020
+ redirectUpNext: "Up next",
2021
+ redirectCancelCard: "Cancel up next",
1896
2022
  redirectNowPlaying: "Now playing...",
1897
2023
  qrResumeTitle: "Scan to continue watching on your phone",
1898
2024
  qrResumeDontShowAgain: "Don't show again",
@@ -1902,6 +2028,13 @@ const ye = {
1902
2028
  qrResumeOff: "Off",
1903
2029
  pauseAdLabel: "Sponsored",
1904
2030
  pauseAdClose: "Close ad",
2031
+ adTriggerLabel: "Advertisement",
2032
+ castButton: "Cast to TV",
2033
+ airplayButton: "AirPlay",
2034
+ castPlayingOn: "Playing on {device}",
2035
+ castDeviceFallback: "TV",
2036
+ castAdOnTv: "An ad is playing on the TV",
2037
+ airplayPlaying: "Playing via AirPlay",
1905
2038
  pauseAdResume: "Resume video",
1906
2039
  markerLearnMore: "Learn more",
1907
2040
  markerContinue: "Continue",
@@ -1916,19 +2049,19 @@ const ye = {
1916
2049
  liveClock: "Live clock",
1917
2050
  live: "LIVE",
1918
2051
  goToLive: "Go to live"
1919
- }, yt = { tr: ye, en: vt };
1920
- function xe(n, t) {
1921
- return { ...yt[n ?? "tr"] ?? ye, ...t };
2052
+ }, Pt = { tr: Se, en: Lt };
2053
+ function Ae(n, t) {
2054
+ return { ...Pt[n ?? "tr"] ?? Se, ...t };
1922
2055
  }
1923
- function xt(n, t, e) {
1924
- Object.assign(n, xe(t, e));
2056
+ function Mt(n, t, e) {
2057
+ Object.assign(n, Ae(t, e));
1925
2058
  }
1926
- const q = 8e3;
1927
- function kt(n) {
2059
+ const j = 8e3;
2060
+ function Bt(n) {
1928
2061
  var t;
1929
2062
  return (t = n.live) != null && t.scte35 && !n.adTagPreroll && !n.adTagVmap ? !1 : !!(n.adTagPreroll || n.adTagVmap);
1930
2063
  }
1931
- class wt {
2064
+ class Rt {
1932
2065
  constructor(t) {
1933
2066
  /** Kapı kurulu (preroll bekleniyor) mu. */
1934
2067
  s(this, "armed", !1);
@@ -1936,7 +2069,7 @@ class wt {
1936
2069
  s(this, "playIntent", !1);
1937
2070
  /** Kapının kendi pause() çağrısının ürettiği 'pause' olayı yutulsun. */
1938
2071
  s(this, "swallowNextPause", !1);
1939
- s(this, "timeoutMs", q);
2072
+ s(this, "timeoutMs", j);
1940
2073
  s(this, "timer", null);
1941
2074
  /** İlk oynatma isteği (reklam plugin'i bekleyen preroll'u başlatır). */
1942
2075
  s(this, "onPlayIntent", null);
@@ -1962,7 +2095,7 @@ class wt {
1962
2095
  get hasPlayIntent() {
1963
2096
  return this.playIntent;
1964
2097
  }
1965
- arm(t = q) {
2098
+ arm(t = j) {
1966
2099
  this.clearTimer(), this.armed = !0, this.playIntent = !1, this.timeoutMs = t;
1967
2100
  }
1968
2101
  /**
@@ -1999,24 +2132,34 @@ class wt {
1999
2132
  this.timer && clearTimeout(this.timer), this.timer = null;
2000
2133
  }
2001
2134
  }
2002
- const Et = [
2135
+ const zt = [
2003
2136
  "https://imasdk.googleapis.com",
2004
2137
  "https://pubads.g.doubleclick.net",
2005
2138
  "https://securepubads.g.doubleclick.net",
2006
2139
  "https://pagead2.googlesyndication.com"
2007
2140
  ];
2008
- let ne = !1;
2009
- function Ct() {
2010
- if (!(ne || typeof document > "u")) {
2011
- ne = !0;
2012
- for (const n of Et) {
2141
+ let ce = !1;
2142
+ function Nt() {
2143
+ if (!(ce || typeof document > "u")) {
2144
+ ce = !0;
2145
+ for (const n of zt) {
2013
2146
  if (document.head.querySelector(`link[rel="preconnect"][href="${n}"]`)) continue;
2014
2147
  const t = document.createElement("link");
2015
2148
  t.rel = "preconnect", t.href = n, document.head.appendChild(t);
2016
2149
  }
2017
2150
  }
2018
2151
  }
2019
- const Tt = [0.5, 0.75, 1, 1.25, 1.5, 2], le = 1200, St = 3e3, he = 5e3, At = 10, pe = 10, Lt = 5, de = "stream-audio", N = "1.0.15", Pt = (
2152
+ const Ot = [0.5, 0.75, 1, 1.25, 1.5, 2], ue = 1200, It = 3e3, me = 5e3, Ft = 10, ge = 10, Dt = 5, fe = "stream-audio", I = "1.0.17", Ht = {
2153
+ hls: "application/x-mpegurl",
2154
+ mp4: "video/mp4",
2155
+ webm: "video/webm",
2156
+ mp3: "audio/mpeg",
2157
+ m4a: "audio/mp4",
2158
+ aac: "audio/aac",
2159
+ ogg: "audio/ogg",
2160
+ wav: "audio/wav",
2161
+ flac: "audio/flac"
2162
+ }, Gt = (
2020
2163
  /* html */
2021
2164
  `
2022
2165
  <div class="video-area">
@@ -2027,13 +2170,13 @@ const Tt = [0.5, 0.75, 1, 1.25, 1.5, 2], le = 1200, St = 3e3, he = 5e3, At = 10,
2027
2170
  </div>
2028
2171
  `
2029
2172
  );
2030
- function Mt(n) {
2173
+ function Vt(n) {
2031
2174
  if (typeof n == "number") return Number.isFinite(n) && n > 0 ? String(n) : null;
2032
2175
  if (typeof n != "string") return null;
2033
2176
  const t = n.trim().match(/^(\d+(?:\.\d+)?)\s*(?:[:/]\s*(\d+(?:\.\d+)?))?$/);
2034
2177
  return !t || Number(t[1]) <= 0 || t[2] !== void 0 && Number(t[2]) <= 0 ? null : t[2] !== void 0 ? `${t[1]} / ${t[2]}` : t[1];
2035
2178
  }
2036
- class ke extends HTMLElement {
2179
+ class Le extends HTMLElement {
2037
2180
  constructor() {
2038
2181
  super();
2039
2182
  s(this, "root");
@@ -2072,7 +2215,7 @@ class ke extends HTMLElement {
2072
2215
  /** options.debug — sağ tık menüsündeki "Hata ayıklama" girişini açar. */
2073
2216
  s(this, "debugEnabled", !1);
2074
2217
  /** Player'ın tüm hataları (medya, yayın, reklam, altyazı) — her zaman tutulur; bkz. `errorLog`. */
2075
- s(this, "log", new gt());
2218
+ s(this, "log", new Et());
2076
2219
  /** Son basılan işaretçi türü — sağ tık menüsü yalnızca fareyle (dokunmatikte uzun basma gesture'a ait). */
2077
2220
  s(this, "lastPointerType", "mouse");
2078
2221
  /** options.tapGestures kuruluysa (plugins/tap-gestures). */
@@ -2091,7 +2234,15 @@ class ke extends HTMLElement {
2091
2234
  s(this, "rewardedUnlock", null);
2092
2235
  s(this, "sponsorship", null);
2093
2236
  /** Son uygulanan MP4 kaynak listesi ve seçili etiket — kilit açılınca menü yeniden kurulur. */
2237
+ /** Çalan biçim grubunun kaynakları (kalite menüsü bunlar) — bkz. `sourceGroups`. */
2094
2238
  s(this, "currentSources", []);
2239
+ /** `sources` biçime göre gruplu, `sourcePriority` sırasıyla; ölümcül hatada sıradakine geçilir. */
2240
+ s(this, "sourceGroups", []);
2241
+ s(this, "activeGroup", 0);
2242
+ /** Sıradaki gruba geçiş başladı — aynı arızanın ikinci hata olayı hata ekranı açmasın. */
2243
+ s(this, "fallbackPending", !1);
2244
+ /** hls.js ölümcül hatasının MediaError karşılığı (video.error oluşmaz) — hp:sourcefallback detayı için. */
2245
+ s(this, "streamErrorCode");
2095
2246
  s(this, "activeSourceLabel", "");
2096
2247
  s(this, "lastHlsLevels", []);
2097
2248
  s(this, "lastHlsActive", -1);
@@ -2107,8 +2258,13 @@ class ke extends HTMLElement {
2107
2258
  s(this, "countdownScreen", null);
2108
2259
  s(this, "geoChecker", null);
2109
2260
  s(this, "redirectScreen", null);
2261
+ s(this, "redirectKey", "");
2110
2262
  s(this, "qrResume", null);
2111
2263
  s(this, "pauseAd", null);
2264
+ s(this, "adTriggers", null);
2265
+ s(this, "castController", null);
2266
+ /** İçerik Chromecast'te oynuyor (player kumanda) — yerel reklam / otomatik oynatma devre dışı. */
2267
+ s(this, "casting", !1);
2112
2268
  s(this, "dubbing", null);
2113
2269
  s(this, "liveWallClock", null);
2114
2270
  s(this, "daiController", null);
@@ -2155,19 +2311,19 @@ class ke extends HTMLElement {
2155
2311
  s(this, "hideTimer", null);
2156
2312
  s(this, "cursorTimer", null);
2157
2313
  /** null = imleç hiç gizlenmez (options.cursorHideDelayMs: false). */
2158
- s(this, "cursorHideDelayMs", he);
2314
+ s(this, "cursorHideDelayMs", me);
2159
2315
  /** Fare kontrollerin (buton/seek bar) üzerinde mi — üzerindeyken otomatik gizlenmez; videonun üstünde hareketsizse gizlenir. */
2160
2316
  s(this, "pointerOverControls", !1);
2161
2317
  /** Kalite menüsünde şu an HLS seviyeleri mi var (kaynak değişince temizlemek için). */
2162
2318
  s(this, "hlsQualitiesShown", !1);
2163
2319
  /** Son uygulanan options.showRemainingTime — bkz. applyOptions. */
2164
2320
  s(this, "appliedShowRemaining");
2165
- s(this, "autoHideDelayMs", le);
2321
+ s(this, "autoHideDelayMs", ue);
2166
2322
  s(this, "tapCandidate", !1);
2167
2323
  s(this, "tapStartX", 0);
2168
2324
  s(this, "tapStartY", 0);
2169
2325
  /** Tüm UI'ın paylaştığı tek, mutable sözlük — dil değişince referans değil alanlar güncellenir. */
2170
- s(this, "i18n", xe("tr"));
2326
+ s(this, "i18n", Ae("tr"));
2171
2327
  /** IMA SDK'nın kendi ad-UI dili (skip butonu/sayaç metni) de aynı dili takip etsin diye — bkz. plugins/ads/AdsController. */
2172
2328
  s(this, "localeCode", "tr");
2173
2329
  s(this, "onMediaError", () => {
@@ -2192,7 +2348,7 @@ class ke extends HTMLElement {
2192
2348
  s(this, "onContextMenu", (e) => {
2193
2349
  const i = this.contextMenuConfig;
2194
2350
  !i || this.lastPointerType !== "mouse" || (e.preventDefault(), this.contextMenu.show(e.clientX, e.clientY, [
2195
- { label: "HopeCorePlayer", meta: `v${N}` },
2351
+ { label: "HopeCorePlayer", meta: `v${I}` },
2196
2352
  ...i.stats ? [{ label: this.i18n.statsTitle, onSelect: () => void this.toggleStats(!0) }] : [],
2197
2353
  // Yalnızca debug açıkken ve kayıtlı bir hata varsa.
2198
2354
  ...this.debugEnabled && this.log.entries.length ? [{ label: this.i18n.debugTitle, meta: String(this.log.entries.length), onSelect: () => void this.showDebugLog() }] : []
@@ -2201,14 +2357,14 @@ class ke extends HTMLElement {
2201
2357
  s(this, "onStreamTextTracks", (e) => {
2202
2358
  const i = this.streamTracks.filter((r) => r.id.startsWith("native:"));
2203
2359
  if (!e.length)
2204
- ge(this.videoEl, "stream"), this.streamCueKeys.clear(), this.streamTracks = i;
2360
+ we(this.videoEl, "stream"), this.streamCueKeys.clear(), this.streamTracks = i;
2205
2361
  else {
2206
2362
  const r = new Set([...this.optionTracks, ...i].map((o) => o.label));
2207
2363
  this.streamTracks = [
2208
2364
  ...i,
2209
2365
  ...e.map((o) => {
2210
2366
  const a = this.uniqueLabel(this.streamTrackLabel(o.label, o.lang) || o.id, o.kind === "captions" ? "CC" : o.lang || o.kind, r);
2211
- return { id: o.id, label: a, track: me(this.videoEl, "stream", o.kind, a, o.lang) };
2367
+ return { id: o.id, label: a, track: ke(this.videoEl, "stream", o.kind, a, o.lang) };
2212
2368
  })
2213
2369
  ];
2214
2370
  }
@@ -2221,13 +2377,13 @@ class ke extends HTMLElement {
2221
2377
  let o = this.streamCueKeys.get(r);
2222
2378
  o || this.streamCueKeys.set(r, o = /* @__PURE__ */ new Set());
2223
2379
  for (const l of i) {
2224
- const p = `${l.startTime}|${l.endTime}|${l.text}`;
2225
- o.has(p) || (o.add(p), r.addCue(l));
2380
+ const h = `${l.startTime}|${l.endTime}|${l.text}`;
2381
+ o.has(h) || (o.add(h), r.addCue(l));
2226
2382
  }
2227
2383
  });
2228
2384
  /** Tarayıcının kendi (native HLS) altyazı izleri — bizim havuz izlerimiz ve metadata izleri hariç. */
2229
2385
  s(this, "onNativeTextTracksChanged", () => {
2230
- const e = Array.from(this.videoEl.textTracks).filter((a) => (a.kind === "subtitles" || a.kind === "captions") && !Qe(a)), i = this.streamTracks.some((a) => a.id.startsWith("native:"));
2386
+ const e = Array.from(this.videoEl.textTracks).filter((a) => (a.kind === "subtitles" || a.kind === "captions") && !tt(a)), i = this.streamTracks.some((a) => a.id.startsWith("native:"));
2231
2387
  if (!e.length && !i) return;
2232
2388
  const r = this.streamTracks.filter((a) => !a.id.startsWith("native:")), o = new Set([...this.optionTracks, ...r].map((a) => a.label));
2233
2389
  this.streamTracks = [
@@ -2244,11 +2400,11 @@ class ke extends HTMLElement {
2244
2400
  this.streamAudio = { tracks: e, active: i };
2245
2401
  const r = this.controlBar.settingsMenu, o = /* @__PURE__ */ new Set(), a = new Map(e.map((l) => [l.index, this.uniqueLabel(this.streamTrackLabel(l.label, l.lang), String(l.index + 1), o)]));
2246
2402
  if (e.length <= 1) {
2247
- r.unregisterSubmenu(de);
2403
+ r.unregisterSubmenu(fe);
2248
2404
  return;
2249
2405
  }
2250
2406
  r.registerSubmenu({
2251
- key: de,
2407
+ key: fe,
2252
2408
  title: this.i18n.audioTrack,
2253
2409
  getValueLabel: () => a.get(i) ?? "",
2254
2410
  getItems: () => e.map((l) => ({ label: a.get(l.index), active: l.index === i, onSelect: () => this.sourceManager.setAudioTrack(l.index) }))
@@ -2258,26 +2414,26 @@ class ke extends HTMLElement {
2258
2414
  s(this, "panelContainer", null);
2259
2415
  s(this, "onHlsLevelsChanged", (e, i) => {
2260
2416
  var l;
2261
- if (e.length === 0 && this.hlsQualitiesShown) {
2417
+ if (this.lastHlsLevels = e, this.lastHlsActive = i, e.length === 0 && this.hlsQualitiesShown) {
2262
2418
  this.hlsQualitiesShown = !1, this.controlBar.setQualities([], "");
2263
2419
  return;
2264
2420
  }
2265
- if (this.lastHlsLevels = e, this.lastHlsActive = i, e.length <= 1) return;
2421
+ if (e.length <= 1) return;
2266
2422
  this.hlsQualitiesShown = !0;
2267
- const r = (p) => `${p.height}p`, o = this.qualityGate, a = (p) => !!(o != null && o.isLocked(p.height));
2423
+ const r = (h) => `${h.height}p`, o = this.qualityGate, a = (h) => !!(o != null && o.isLocked(h.height));
2268
2424
  if (o) {
2269
- const p = e.filter((d) => !a(d)), u = p.length ? p : [e.reduce((d, m) => m.height < d.height ? m : d)];
2270
- this.sourceManager.setMaxLevel(u.reduce((d, m) => m.height > d.height ? m : d).index);
2425
+ const h = e.filter((p) => !a(p)), c = h.length ? h : [e.reduce((p, m) => m.height < p.height ? m : p)];
2426
+ this.sourceManager.setMaxLevel(c.reduce((p, m) => m.height > p.height ? m : p).index);
2271
2427
  } else
2272
2428
  this.sourceManager.setMaxLevel(-1);
2273
2429
  this.controlBar.setQualities(
2274
2430
  [
2275
2431
  { label: this.i18n.autoQuality, onSelect: () => this.sourceManager.setLevel(-1) },
2276
2432
  // Yüksekten düşüğe (hls.js artan sıralıyor) — l.index hls.js'teki gerçek seviye numarası, sıradan bağımsız.
2277
- ...[...e].sort((p, u) => u.height - p.height).map((p) => ({
2278
- label: r(p),
2279
- locked: a(p),
2280
- onSelect: a(p) ? () => o == null ? void 0 : o.requestUnlock() : () => this.sourceManager.setLevel(p.index)
2433
+ ...[...e].sort((h, c) => c.height - h.height).map((h) => ({
2434
+ label: r(h),
2435
+ locked: a(h),
2436
+ onSelect: a(h) ? () => o == null ? void 0 : o.requestUnlock() : () => this.sourceManager.setLevel(h.index)
2281
2437
  }))
2282
2438
  ],
2283
2439
  i === -1 || !e[i] ? this.i18n.autoQuality : r(e[i])
@@ -2305,13 +2461,13 @@ class ke extends HTMLElement {
2305
2461
  i && (this.tapStartX = i.clientX, this.tapStartY = i.clientY);
2306
2462
  });
2307
2463
  s(this, "onVideoPressEnd", (e) => {
2308
- var l, p;
2464
+ var l, h;
2309
2465
  if (!this.tapCandidate || (this.tapCandidate = !1, this.isChromeBlocked) || (l = this.gestureControls) != null && l.isCurrentlyHolding()) return;
2310
2466
  const i = "changedTouches" in e;
2311
2467
  if (!i && Date.now() - this.lastTouchEndAt < 800) return;
2312
2468
  i && (this.lastTouchEndAt = Date.now());
2313
2469
  const r = i ? e.changedTouches[0] : e;
2314
- if (r && Math.hypot(r.clientX - this.tapStartX, r.clientY - this.tapStartY) > At) {
2470
+ if (r && Math.hypot(r.clientX - this.tapStartX, r.clientY - this.tapStartY) > Ft) {
2315
2471
  i && !this.isChromeBlocked && this.scheduleAutoHide();
2316
2472
  return;
2317
2473
  }
@@ -2319,7 +2475,7 @@ class ke extends HTMLElement {
2319
2475
  this.videoEl.paused ? this.videoEl.play().catch(() => {
2320
2476
  }) : this.videoEl.pause();
2321
2477
  });
2322
- r && ((p = this.tapGestures) != null && p.handleTap(r.clientX, o === "pen" ? "pen" : o, a)) || a();
2478
+ r && ((h = this.tapGestures) != null && h.handleTap(r.clientX, o === "pen" ? "pen" : o, a)) || a();
2323
2479
  });
2324
2480
  s(this, "onVideoPressCancel", () => {
2325
2481
  this.tapCandidate = !1;
@@ -2337,35 +2493,38 @@ class ke extends HTMLElement {
2337
2493
  s(this, "scheduleAutoHide", () => {
2338
2494
  this.showChrome(), this.hideTimer && clearTimeout(this.hideTimer), !(this.videoEl.paused || this.loadingActive) && (this.audioMode || (this.hideTimer = setTimeout(() => {
2339
2495
  this.audioMode || this.videoEl.paused || this.loadingActive || this.pointerOverControls || this.controlBar.settingsMenu.isOpen || this.setChromeOpacity("0");
2340
- }, this.lastPointerType === "mouse" ? this.autoHideDelayMs : Math.max(this.autoHideDelayMs, St))));
2496
+ }, this.lastPointerType === "mouse" ? this.autoHideDelayMs : Math.max(this.autoHideDelayMs, It))));
2341
2497
  });
2342
- ft(), this.root = this.attachShadow({ mode: "open" });
2498
+ Tt(), this.root = this.attachShadow({ mode: "open" });
2343
2499
  const e = document.createElement("style");
2344
- e.textContent = Ce, this.root.appendChild(e);
2500
+ e.textContent = Be, this.root.appendChild(e);
2345
2501
  const i = document.createElement("div");
2346
- i.className = "hp-root", i.innerHTML = Pt, this.root.appendChild(i), this.videoArea = this.root.querySelector(".video-area"), this.videoEl = this.root.querySelector("video"), this.adLayerEl = this.root.querySelector('[part="ad-layer"]'), this.instanceKey = `hp-${Math.random().toString(36).slice(2, 10)}`, this.prerollGate = new wt(this.videoEl), this.prerollGate.onWaitChange = (o) => this.onPrerollWaitChange(o), this.videoEl.addEventListener("error", this.onMediaError), this.videoEl.addEventListener("hp-internal:subtitle-error", this.onSubtitleError), this.loadingSpinner = new Ue(this.videoEl), this.root.querySelector(".media-layer").appendChild(this.loadingSpinner.el), this.errorScreen = new Xe(this.videoEl, this.i18n), this.errorScreen.setOnRetry(() => void this.sourceManager.reload()), this.videoArea.appendChild(this.errorScreen.el), this.centerPlayButton = document.createElement("button"), this.centerPlayButton.type = "button", this.centerPlayButton.setAttribute("part", "center-play-button"), this.centerPlayButton.setAttribute("aria-label", this.i18n.play), this.centerPlayButton.className = "hp-center-play hp:absolute hp:inset-0 hp:flex hp:items-center hp:justify-center hp:bg-transparent hp:border-0 hp:cursor-pointer hp:text-on-surface hp:transition-opacity";
2502
+ i.className = "hp-root", i.innerHTML = Gt, this.root.appendChild(i), this.videoArea = this.root.querySelector(".video-area"), this.videoEl = this.root.querySelector("video"), this.adLayerEl = this.root.querySelector('[part="ad-layer"]'), this.instanceKey = `hp-${Math.random().toString(36).slice(2, 10)}`, this.prerollGate = new Rt(this.videoEl), this.prerollGate.onWaitChange = (o) => this.onPrerollWaitChange(o), this.videoEl.addEventListener("error", this.onMediaError), this.videoEl.addEventListener("hp-internal:subtitle-error", this.onSubtitleError), this.loadingSpinner = new Je(this.videoEl), this.root.querySelector(".media-layer").appendChild(this.loadingSpinner.el), this.errorScreen = new et(this.videoEl, this.i18n), this.errorScreen.setOnRetry(() => void this.retrySource()), this.videoArea.appendChild(this.errorScreen.el), this.centerPlayButton = document.createElement("button"), this.centerPlayButton.type = "button", this.centerPlayButton.setAttribute("part", "center-play-button"), this.centerPlayButton.setAttribute("aria-label", this.i18n.play), this.centerPlayButton.className = "hp-center-play hp:absolute hp:inset-0 hp:flex hp:items-center hp:justify-center hp:bg-transparent hp:border-0 hp:cursor-pointer hp:text-on-surface hp:transition-opacity";
2347
2503
  const r = document.createElement("span");
2348
- r.className = "hp-chip hp:flex hp:items-center hp:justify-center hp:w-16 hp:h-16", r.style.borderRadius = "9999px", r.appendChild(E("play", "hp:text-2xl")), this.centerPlayButton.appendChild(r), this.centerPlayButton.addEventListener("click", (o) => {
2349
- var d;
2504
+ r.className = "hp-chip hp:flex hp:items-center hp:justify-center hp:w-16 hp:h-16", r.style.borderRadius = "9999px", r.appendChild(L("play", "hp:text-2xl")), this.centerPlayButton.appendChild(r), this.centerPlayButton.addEventListener("click", (o) => {
2505
+ var p;
2350
2506
  const a = () => {
2351
2507
  this.videoEl.paused && this.videoEl.play();
2352
- }, l = this.lastPointerType === "pen" ? "pen" : this.lastPointerType === "touch" ? "touch" : null, u = o.composedPath().includes(r) ? a : () => this.onBackgroundTap(l ?? "mouse", a);
2353
- l && ((d = this.tapGestures) != null && d.handleTap(o.clientX, l, u)) || u();
2354
- }), this.videoArea.appendChild(this.centerPlayButton), this.centerPlayObserver = new ResizeObserver(() => requestAnimationFrame(() => this.layoutCenterPlay())), this.centerPlayObserver.observe(this.videoArea), this.chromeEl = document.createElement("div"), this.chromeEl.className = "hp-chrome hp:absolute hp:inset-0 hp:z-20 hp:pointer-events-none", this.videoArea.appendChild(this.chromeEl), this.sourceManager = new Se(this.videoEl, {
2508
+ }, l = this.lastPointerType === "pen" ? "pen" : this.lastPointerType === "touch" ? "touch" : null, c = o.composedPath().includes(r) ? a : () => this.onBackgroundTap(l ?? "mouse", a);
2509
+ l && ((p = this.tapGestures) != null && p.handleTap(o.clientX, l, c)) || c();
2510
+ }), this.videoArea.appendChild(this.centerPlayButton), this.centerPlayObserver = new ResizeObserver(() => requestAnimationFrame(() => this.layoutCenterPlay())), this.centerPlayObserver.observe(this.videoArea), this.chromeEl = document.createElement("div"), this.chromeEl.className = "hp-chrome hp:absolute hp:inset-0 hp:z-20 hp:pointer-events-none", this.videoArea.appendChild(this.chromeEl), this.sourceManager = new Re(this.videoEl, {
2355
2511
  onLevelsChanged: this.onHlsLevelsChanged,
2356
2512
  onAudioTracksChanged: this.onStreamAudioTracks,
2357
2513
  onTextTracksFound: this.onStreamTextTracks,
2358
2514
  onCues: this.onStreamCues,
2359
- onFatalError: (o) => this.errorScreen.showStreamError(o === "network" ? 2 : 3),
2515
+ onFatalError: (o) => {
2516
+ const a = o === "network" ? 2 : 3;
2517
+ this.streamErrorCode = a, this.errorScreen.showStreamError(a);
2518
+ },
2360
2519
  onStreamError: (o) => this.log.add({
2361
2520
  source: "stream",
2362
2521
  message: `${o.type}: ${o.details}`,
2363
2522
  fatal: o.fatal,
2364
2523
  details: { url: o.url, httpStatus: o.httpStatus, reason: o.reason, engine: "hls.js" }
2365
2524
  })
2366
- }), this.errorScreen.setShouldShow(() => !this.sourceManager.isRecovering()), this.controlBar = new Fe(
2525
+ }), this.errorScreen.setShouldShow(() => !this.sourceManager.isRecovering() && !this.tryNextSourceGroup()), this.controlBar = new je(
2367
2526
  this.videoEl,
2368
- Tt,
2527
+ Ot,
2369
2528
  {
2370
2529
  onRequestFullscreen: () => this.requestFullscreenCompat(),
2371
2530
  liveSyncPosition: () => {
@@ -2403,17 +2562,17 @@ class ke extends HTMLElement {
2403
2562
  }
2404
2563
  },
2405
2564
  this.i18n
2406
- ), this.chromeEl.appendChild(this.controlBar.el), this.chromeEl.appendChild(this.controlBar.topEl), this.videoArea.appendChild(this.controlBar.volumePanel.unmuteBadge), this.captionRenderer = new B(this.videoEl, this.videoArea, this.controlBar.seekBar.el, this.i18n), this.videoArea.appendChild(this.captionRenderer.layerEl), this.keyboard = new Ge(
2565
+ ), this.chromeEl.appendChild(this.controlBar.el), this.chromeEl.appendChild(this.controlBar.topEl), this.videoArea.appendChild(this.controlBar.volumePanel.unmuteBadge), this.captionRenderer = new z(this.videoEl, this.videoArea, this.controlBar.seekBar.el, this.i18n), this.videoArea.appendChild(this.captionRenderer.layerEl), this.keyboard = new Ye(
2407
2566
  this,
2408
2567
  this.videoEl,
2409
2568
  () => this.isFullscreenActive() ? this.exitFullscreenCompat() : this.requestFullscreenCompat()
2410
- ), this.tooltip = new _e(this.videoArea), this.contextMenu = new ut(this.videoArea), this.seekFeedback = new ct(this.i18n), this.videoArea.appendChild(this.seekFeedback.el), this.controlBar.onSkip = (o) => this.seekFeedback.show(o), this.keyboard.onSeek = (o) => this.seekFeedback.show(o), this.keyboard.interceptTogglePlay = () => this.cancelPrerollWait(), this.controlBar.seekBar.onKeyboardSeek = (o) => this.seekFeedback.show(o), this.blockChrome("boot");
2569
+ ), this.tooltip = new Xe(this.videoArea), this.contextMenu = new kt(this.videoArea), this.seekFeedback = new xt(this.i18n), this.videoArea.appendChild(this.seekFeedback.el), this.controlBar.onSkip = (o) => this.seekFeedback.show(o), this.keyboard.onSeek = (o) => this.seekFeedback.show(o), this.keyboard.interceptTogglePlay = () => this.cancelPrerollWait(), this.controlBar.seekBar.onKeyboardSeek = (o) => this.seekFeedback.show(o), this.blockChrome("boot");
2411
2570
  }
2412
2571
  static get observedAttributes() {
2413
2572
  return ["src", "poster", "autoplay", "muted", "loop", "theme", "locale"];
2414
2573
  }
2415
2574
  connectedCallback() {
2416
- this.tabIndex = this.tabIndex || 0, this.syncFromAttributes(), this.bootResolved || (this.bootGraceTimer = setTimeout(() => {
2575
+ this.hasAttribute("tabindex") || (this.tabIndex = 0), this.syncFromAttributes(), this.bootResolved || (this.bootGraceTimer = setTimeout(() => {
2417
2576
  this.bootGraceTimer = null, this.bootResolved || (this.bootResolved = !0, this.syncFromAttributes());
2418
2577
  }, 80)), this.videoEl.addEventListener("play", this.onPlay), this.videoEl.addEventListener("pause", this.onPause), this.addEventListener("pointermove", this.onPointerMove), this.addEventListener("pointerleave", this.onPointerLeave), this.addEventListener("pointerdown", this.onPointerDownFocus), document.addEventListener("fullscreenchange", this.onFullscreenChange), document.addEventListener("webkitfullscreenchange", this.onFullscreenChange), this.videoEl.addEventListener("webkitbeginfullscreen", this.onFullscreenChange), this.videoEl.addEventListener("webkitendfullscreen", this.onFullscreenChange), this.addEventListener("contextmenu", this.onContextMenu), this.addEventListener("pointerdown", this.onPointerTypeTrack, !0), this.videoEl.textTracks.addEventListener("addtrack", this.onNativeTextTracksChanged), this.videoEl.textTracks.addEventListener("removetrack", this.onNativeTextTracksChanged), this.controlBar.settingsMenu.onOpenChange = (e) => {
2419
2578
  e && this.hideTimer && clearTimeout(this.hideTimer), e || this.scheduleAutoHide(), this.tooltip.recheckOcclusion();
@@ -2423,8 +2582,8 @@ class ke extends HTMLElement {
2423
2582
  }), this.videoEl.addEventListener("mousedown", this.onVideoPressStart), this.videoEl.addEventListener("mouseup", this.onVideoPressEnd), this.videoEl.addEventListener("mouseleave", this.onVideoPressCancel), this.videoEl.addEventListener("touchstart", this.onVideoPressStart, { passive: !0 }), this.videoEl.addEventListener("touchend", this.onVideoPressEnd), this.videoEl.addEventListener("touchcancel", this.onVideoPressCancel), this.dispatchEvent(new CustomEvent("hp:ready"));
2424
2583
  }
2425
2584
  disconnectedCallback() {
2426
- var e, i, r, o, a, l, p, u, d, m, h, c, g, b, v, y, f, x, S, A, k, L, V, _, G, U;
2427
- (e = this.centerPlayObserver) == null || e.disconnect(), this.showCursor(), (i = this.miniProgress) == null || i.destroy(), this.miniProgress = null, this.videoEl.removeEventListener("play", this.onPlay), this.videoEl.removeEventListener("pause", this.onPause), this.removeEventListener("pointermove", this.onPointerMove), this.removeEventListener("pointerleave", this.onPointerLeave), this.removeEventListener("pointerdown", this.onPointerDownFocus), this.controlBar.settingsMenu.onOpenChange = null, document.removeEventListener("fullscreenchange", this.onFullscreenChange), document.removeEventListener("webkitfullscreenchange", this.onFullscreenChange), this.videoEl.removeEventListener("webkitbeginfullscreen", this.onFullscreenChange), this.videoEl.removeEventListener("webkitendfullscreen", this.onFullscreenChange), this.removeEventListener("contextmenu", this.onContextMenu), this.removeEventListener("pointerdown", this.onPointerTypeTrack, !0), this.videoEl.textTracks.removeEventListener("addtrack", this.onNativeTextTracksChanged), this.videoEl.textTracks.removeEventListener("removetrack", this.onNativeTextTracksChanged), this.videoEl.removeEventListener("mousedown", this.onVideoPressStart), this.videoEl.removeEventListener("mouseup", this.onVideoPressEnd), this.videoEl.removeEventListener("mouseleave", this.onVideoPressCancel), this.videoEl.removeEventListener("touchstart", this.onVideoPressStart), this.videoEl.removeEventListener("touchend", this.onVideoPressEnd), this.videoEl.removeEventListener("touchcancel", this.onVideoPressCancel), this.controlBar.destroy(), this.captionRenderer.destroy(), this.keyboard.destroy(), this.tooltip.destroy(), this.loadingSpinner.destroy(), this.errorScreen.destroy(), this.seekFeedback.destroy(), this.contextMenu.destroy(), (r = this.statsPanel) == null || r.destroy(), (o = this.debugPanel) == null || o.destroy(), this.videoEl.removeEventListener("error", this.onMediaError), this.videoEl.removeEventListener("hp-internal:subtitle-error", this.onSubtitleError), (a = this.tapGestures) == null || a.destroy(), this.sourceManager.destroy(), (l = this.adsController) == null || l.destroy(), (p = this.gestureControls) == null || p.destroy(), (u = this.loopSection) == null || u.destroy(), (d = this.audioStage) == null || d.destroy(), this.audioStage = null, (m = this.rewardedUnlock) == null || m.destroy(), this.rewardedUnlock = null, (h = this.sponsorship) == null || h.destroy(), this.sponsorship = null, (c = this.inViewAutoplay) == null || c.destroy(), (g = this.unregisterSticky) == null || g.call(this), (b = this.playlistRunner) == null || b.destroy(), (v = this.hopeStory) == null || v.destroy(), (y = this.markProgress) == null || y.destroy(), (f = this.segments) == null || f.destroy(), (x = this.spriteThumbnails) == null || x.destroy(), (S = this.countdownScreen) == null || S.destroy(), (A = this.geoChecker) == null || A.destroy(), (k = this.redirectScreen) == null || k.destroy(), (L = this.qrResume) == null || L.destroy(), (V = this.pauseAd) == null || V.destroy(), this.pauseAd = null, (_ = this.dubbing) == null || _.destroy(), (G = this.liveWallClock) == null || G.destroy(), (U = this.daiController) == null || U.destroy(), this.prerollGate.release(!1), this.hideTimer && clearTimeout(this.hideTimer), this.bootGraceTimer && clearTimeout(this.bootGraceTimer), this.lastSynced = null;
2585
+ var e, i, r, o, a, l, h, c, p, m, u, f, y, x, k, w, d, g, b, E, C, v, T, S, $, K, Q, W;
2586
+ (e = this.centerPlayObserver) == null || e.disconnect(), this.showCursor(), (i = this.miniProgress) == null || i.destroy(), this.miniProgress = null, this.videoEl.removeEventListener("play", this.onPlay), this.videoEl.removeEventListener("pause", this.onPause), this.removeEventListener("pointermove", this.onPointerMove), this.removeEventListener("pointerleave", this.onPointerLeave), this.removeEventListener("pointerdown", this.onPointerDownFocus), this.controlBar.settingsMenu.onOpenChange = null, document.removeEventListener("fullscreenchange", this.onFullscreenChange), document.removeEventListener("webkitfullscreenchange", this.onFullscreenChange), this.videoEl.removeEventListener("webkitbeginfullscreen", this.onFullscreenChange), this.videoEl.removeEventListener("webkitendfullscreen", this.onFullscreenChange), this.removeEventListener("contextmenu", this.onContextMenu), this.removeEventListener("pointerdown", this.onPointerTypeTrack, !0), this.videoEl.textTracks.removeEventListener("addtrack", this.onNativeTextTracksChanged), this.videoEl.textTracks.removeEventListener("removetrack", this.onNativeTextTracksChanged), this.videoEl.removeEventListener("mousedown", this.onVideoPressStart), this.videoEl.removeEventListener("mouseup", this.onVideoPressEnd), this.videoEl.removeEventListener("mouseleave", this.onVideoPressCancel), this.videoEl.removeEventListener("touchstart", this.onVideoPressStart), this.videoEl.removeEventListener("touchend", this.onVideoPressEnd), this.videoEl.removeEventListener("touchcancel", this.onVideoPressCancel), this.controlBar.destroy(), this.captionRenderer.destroy(), this.keyboard.destroy(), this.tooltip.destroy(), this.loadingSpinner.destroy(), this.errorScreen.destroy(), this.seekFeedback.destroy(), this.contextMenu.destroy(), (r = this.statsPanel) == null || r.destroy(), (o = this.debugPanel) == null || o.destroy(), this.videoEl.removeEventListener("error", this.onMediaError), this.videoEl.removeEventListener("hp-internal:subtitle-error", this.onSubtitleError), (a = this.tapGestures) == null || a.destroy(), this.sourceManager.destroy(), (l = this.adsController) == null || l.destroy(), (h = this.gestureControls) == null || h.destroy(), (c = this.loopSection) == null || c.destroy(), (p = this.audioStage) == null || p.destroy(), this.audioStage = null, (m = this.rewardedUnlock) == null || m.destroy(), this.rewardedUnlock = null, (u = this.sponsorship) == null || u.destroy(), this.sponsorship = null, (f = this.adTriggers) == null || f.destroy(), this.adTriggers = null, (y = this.castController) == null || y.destroy(), this.castController = null, (x = this.inViewAutoplay) == null || x.destroy(), (k = this.unregisterSticky) == null || k.call(this), (w = this.playlistRunner) == null || w.destroy(), (d = this.hopeStory) == null || d.destroy(), (g = this.markProgress) == null || g.destroy(), (b = this.segments) == null || b.destroy(), (E = this.spriteThumbnails) == null || E.destroy(), (C = this.countdownScreen) == null || C.destroy(), (v = this.geoChecker) == null || v.destroy(), (T = this.redirectScreen) == null || T.destroy(), (S = this.qrResume) == null || S.destroy(), ($ = this.pauseAd) == null || $.destroy(), this.pauseAd = null, (K = this.dubbing) == null || K.destroy(), (Q = this.liveWallClock) == null || Q.destroy(), (W = this.daiController) == null || W.destroy(), this.prerollGate.release(!1), this.hideTimer && clearTimeout(this.hideTimer), this.bootGraceTimer && clearTimeout(this.bootGraceTimer), this.lastSynced = null;
2428
2587
  }
2429
2588
  /** Reklam/consent-farkında plugin'lerin (gesture/sticky/in-view-autoplay) ortak sorgusu. */
2430
2589
  isAdPlaying() {
@@ -2456,21 +2615,29 @@ class ke extends HTMLElement {
2456
2615
  /** Hata ayıklama penceresini aç (sağ tık menüsündeki "Hata ayıklama" ile aynı). */
2457
2616
  async showDebugLog() {
2458
2617
  if (!this.debugPanel) {
2459
- const { installDebugPanel: e } = await import("./index-DCXX1ZJG.js");
2460
- this.debugPanel ?? (this.debugPanel = e({ containerEl: this.videoArea, i18n: this.i18n, log: this.log, version: N }));
2618
+ const { installDebugPanel: e } = await import("./debugPanel-Bnc_7GOn.js");
2619
+ this.debugPanel ?? (this.debugPanel = e({ containerEl: this.videoArea, i18n: this.i18n, log: this.log, version: I }));
2461
2620
  }
2462
2621
  this.debugPanel.show();
2463
2622
  }
2623
+ /**
2624
+ * Açık reklam tetikleyici reklamını kapat (adTriggers). `layout: 'none'` kreatifleri kendi kodlarından çağırabilir:
2625
+ * `window.top.document.querySelector('hope-player').closeAdTrigger()`.
2626
+ */
2627
+ closeAdTrigger() {
2628
+ var e;
2629
+ (e = this.adTriggers) == null || e.close("user");
2630
+ }
2464
2631
  /** Teknik istatistik panelini aç/kapat (`force`: true = aç, false = kapat). Sağ tık menüsündeki "İstatistikler" ile aynı. */
2465
2632
  async toggleStats(e) {
2466
2633
  if (!this.statsPanel) {
2467
2634
  if (e === !1) return;
2468
- const { installStats: i } = await import("./index-DGtpFgHV.js");
2635
+ const { installStats: i } = await import("./statsPanel-DSClIwA3.js");
2469
2636
  this.statsPanel ?? (this.statsPanel = i({
2470
2637
  videoEl: this.videoEl,
2471
2638
  containerEl: this.videoArea,
2472
2639
  i18n: this.i18n,
2473
- version: N,
2640
+ version: I,
2474
2641
  getEngine: () => this.sourceManager.engine,
2475
2642
  getHls: () => this.sourceManager.hlsInstance
2476
2643
  }));
@@ -2528,23 +2695,23 @@ class ke extends HTMLElement {
2528
2695
  })), this.pluginApplyRun;
2529
2696
  }
2530
2697
  async applyOptions(e) {
2531
- var a, l, p, u, d, m, h, c, g, b, v, y, f, x, S, A, k, L;
2532
- e.poster && (this.videoEl.poster = e.poster), this.videoEl.autoplay = !!e.autoplay, this.videoEl.muted = !!e.muted, this.videoEl.loop = !!e.loop, this.videoEl.preload = e.preload ?? "metadata", this.videoEl.playsInline = !0, this.videoEl.setAttribute("webkit-playsinline", ""), this.autoHideDelayMs = e.autoHideDelayMs ?? le, this.tapToPlay = e.tapToPlay ?? "auto", this.cursorHideDelayMs = e.cursorHideDelayMs === !1 ? null : e.cursorHideDelayMs ?? he, this.cursorHideDelayMs === null && this.showCursor(), e.miniProgress && !this.miniProgress ? (this.miniProgress = new lt(this.videoEl), this.videoArea.appendChild(this.miniProgress.el), this.updateMiniProgress()) : !e.miniProgress && this.miniProgress && (this.miniProgress.destroy(), this.miniProgress = null), this.debugEnabled = !!e.debug, this.debugEnabled || (a = this.debugPanel) == null || a.hide(), this.contextMenuConfig = e.contextMenu === !1 ? null : { stats: typeof e.contextMenu == "object" && e.contextMenu.stats === !0 }, this.contextMenuConfig || this.contextMenu.close();
2533
- const i = e.keyboardSeekStep && e.keyboardSeekStep > 0 ? e.keyboardSeekStep : Lt;
2698
+ var a, l, h, c, p, m, u, f, y, x, k, w, d, g, b, E, C, v, T;
2699
+ e.poster && (this.videoEl.poster = e.poster), this.casting || (this.videoEl.autoplay = !!e.autoplay), this.videoEl.muted = !!e.muted, this.videoEl.loop = !!e.loop, this.videoEl.preload = e.preload ?? "metadata", this.videoEl.playsInline = !0, this.videoEl.setAttribute("webkit-playsinline", ""), this.autoHideDelayMs = e.autoHideDelayMs ?? ue, this.tapToPlay = e.tapToPlay ?? "auto", this.cursorHideDelayMs = e.cursorHideDelayMs === !1 ? null : e.cursorHideDelayMs ?? me, this.cursorHideDelayMs === null && this.showCursor(), e.miniProgress && !this.miniProgress ? (this.miniProgress = new ft(this.videoEl), this.videoArea.appendChild(this.miniProgress.el), this.updateMiniProgress()) : !e.miniProgress && this.miniProgress && (this.miniProgress.destroy(), this.miniProgress = null), this.debugEnabled = !!e.debug, this.debugEnabled || (a = this.debugPanel) == null || a.hide(), this.contextMenuConfig = e.contextMenu === !1 ? null : { stats: typeof e.contextMenu == "object" && e.contextMenu.stats === !0 }, this.contextMenuConfig || this.contextMenu.close();
2700
+ const i = e.keyboardSeekStep && e.keyboardSeekStep > 0 ? e.keyboardSeekStep : Dt;
2534
2701
  this.keyboard.seekStep = i, this.controlBar.seekBar.keyboardStep = i;
2535
2702
  const r = e.skipButtons === !0 ? {} : e.skipButtons || null;
2536
2703
  this.controlBar.setSkipButtons(
2537
- r && r.back !== !1 ? r.back ?? pe : null,
2538
- r && r.forward !== !1 ? r.forward ?? pe : null
2704
+ r && r.back !== !1 ? r.back ?? ge : null,
2705
+ r && r.forward !== !1 ? r.forward ?? ge : null
2539
2706
  ), e.showRemainingTime !== void 0 && e.showRemainingTime !== this.appliedShowRemaining && (this.appliedShowRemaining = e.showRemainingTime, this.controlBar.setShowRemaining(e.showRemainingTime));
2540
- const o = Mt(e.aspectRatio);
2541
- o ? this.style.setProperty("--hp-aspect-ratio", o) : this.style.removeProperty("--hp-aspect-ratio"), e.theme ? this.setAttribute("data-theme", e.theme) : this.removeAttribute("data-theme"), this.localeCode = e.locale ?? "tr", xt(this.i18n, e.locale, e.labels), this.centerPlayButton.setAttribute("aria-label", this.i18n.play), this.controlBar.refreshLabels(), this.captionRenderer.refreshLabels(this.i18n), this.captionTrackActive && this.controlBar.settingsMenu.setCaptionAppearance(this.buildCaptionAppearance()), this.errorScreen.refreshLabels(), (l = this.playlistRunner) == null || l.refreshLabels(), (p = this.hopeStory) == null || p.refreshLabels(), (u = this.countdownScreen) == null || u.refreshLabels(), (d = this.geoChecker) == null || d.refreshLabels(), (m = this.redirectScreen) == null || m.refreshLabels(), (h = this.qrResume) == null || h.refreshLabels(), (c = this.pauseAd) == null || c.refreshLabels(), (g = this.dubbing) == null || g.refreshLabels(), this.onStreamAudioTracks(this.streamAudio.tracks, this.streamAudio.active), (b = this.statsPanel) == null || b.refreshLabels(), (v = this.debugPanel) == null || v.refreshLabels(), (y = this.liveWallClock) == null || y.refreshLabels(), (f = this.loopSection) == null || f.refreshLabels(), (x = this.audioStage) == null || x.refreshLabels(), (S = this.rewardedUnlock) == null || S.refreshLabels(), (A = this.markProgress) == null || A.refreshLabels(), (L = (k = this.unregisterSticky) == null ? void 0 : k.refreshLabels) == null || L.call(k), this.bootResolved && await this.queuePluginApply(e);
2707
+ const o = Vt(e.aspectRatio);
2708
+ o ? this.style.setProperty("--hp-aspect-ratio", o) : this.style.removeProperty("--hp-aspect-ratio"), e.theme ? this.setAttribute("data-theme", e.theme) : this.removeAttribute("data-theme"), this.localeCode = e.locale ?? "tr", Mt(this.i18n, e.locale, e.labels), this.centerPlayButton.setAttribute("aria-label", this.i18n.play), this.controlBar.refreshLabels(), this.captionRenderer.refreshLabels(this.i18n), this.captionTrackActive && this.controlBar.settingsMenu.setCaptionAppearance(this.buildCaptionAppearance()), this.errorScreen.refreshLabels(), (l = this.playlistRunner) == null || l.refreshLabels(), (h = this.hopeStory) == null || h.refreshLabels(), (c = this.countdownScreen) == null || c.refreshLabels(), (p = this.geoChecker) == null || p.refreshLabels(), (m = this.redirectScreen) == null || m.refreshLabels(), (u = this.qrResume) == null || u.refreshLabels(), (f = this.pauseAd) == null || f.refreshLabels(), (y = this.castController) == null || y.refreshLabels(), (x = this.dubbing) == null || x.refreshLabels(), this.onStreamAudioTracks(this.streamAudio.tracks, this.streamAudio.active), (k = this.statsPanel) == null || k.refreshLabels(), (w = this.debugPanel) == null || w.refreshLabels(), (d = this.liveWallClock) == null || d.refreshLabels(), (g = this.loopSection) == null || g.refreshLabels(), (b = this.audioStage) == null || b.refreshLabels(), (E = this.rewardedUnlock) == null || E.refreshLabels(), (C = this.markProgress) == null || C.refreshLabels(), (T = (v = this.unregisterSticky) == null ? void 0 : v.refreshLabels) == null || T.call(v), this.bootResolved && await this.queuePluginApply(e);
2542
2709
  }
2543
2710
  /** applyOptions'ın asenkron kısmı — yalnızca queuePluginApply üzerinden, sırayla çalışır. */
2544
2711
  async applyPluginsAndPlayback(e) {
2545
2712
  if (e.ads && !this.adsController) {
2546
2713
  const r = e.ads === !0 ? {} : e.ads;
2547
- kt(r) && !this.prerollGate.isArmed && this.prerollGate.arm(r.prerollTimeoutMs ?? q), Ct(), e.countdownScreen || this.installAdsOnce(e);
2714
+ Bt(r) && !this.prerollGate.isArmed && this.prerollGate.arm(r.prerollTimeoutMs ?? j), Nt(), e.countdownScreen || this.installAdsOnce(e);
2548
2715
  }
2549
2716
  await this.applyAudioMode(e);
2550
2717
  const i = () => ({
@@ -2555,11 +2722,11 @@ class ke extends HTMLElement {
2555
2722
  i18n: this.i18n
2556
2723
  });
2557
2724
  if (e.countdownScreen && !this.countdownScreen) {
2558
- const { installCountdownScreen: r } = await import("./index-rENB3n9O.js");
2725
+ const { installCountdownScreen: r } = await import("./countdownScreen-CI-u6jjA.js");
2559
2726
  this.countdownScreen = r(i(), e.countdownScreen);
2560
2727
  }
2561
2728
  if (e.geoChecker && !this.geoChecker) {
2562
- const { installGeoChecker: r } = await import("./index-BBmuCtKu.js");
2729
+ const { installGeoChecker: r } = await import("./geoChecker-BRtvHwI-.js");
2563
2730
  this.geoChecker = r(i(), e.geoChecker);
2564
2731
  }
2565
2732
  this.unblockChrome("boot"), this.countdownScreen && !this.countdownScreen.isComplete() ? (this.pendingPlaybackOptions = e, this.playbackInitRegistered || (this.playbackInitRegistered = !0, this.countdownScreen.onComplete(() => {
@@ -2568,42 +2735,46 @@ class ke extends HTMLElement {
2568
2735
  }))) : await this.initPlayback(e);
2569
2736
  }
2570
2737
  async initPlayback(e) {
2571
- var a, l, p, u, d, m;
2738
+ var p, m, u, f, y, x, k, w;
2572
2739
  this.sourceManager.configure(e.hls), this.errorScreen.dismiss(), await this.applyRewardedUnlock(e);
2573
- const i = (a = e.sources) != null && a.length ? e.sources : e.src ? [{ src: e.src, label: this.i18n.autoQuality }] : [];
2574
- this.currentSources = i;
2575
- const o = i.find((h) => this.sourceManager.isLoaded(h.src, h.type) && !this.isSourceLocked(h)) ?? this.pickInitialSource(i);
2576
- if (o && !this.sourceManager.isLoaded(o.src, o.type) && (i.length <= 1 && (this.controlBar.setQualities([], ""), this.hlsQualitiesShown = !1), await this.sourceManager.load(o.src, o.type), e.autoplay && this.videoEl.play().catch(() => {
2577
- })), o && (this.activeSourceLabel = o.label), this.renderSourceQualities(), await this.installAdsOnce(e), await this.applySponsorship(e), e.gesture && !this.gestureControls) {
2578
- const h = e.gesture === !0 ? {} : e.gesture, { installGesture: c } = await import("./index-Ca8hocby.js");
2579
- this.gestureControls = c(
2740
+ const i = (p = e.sources) != null && p.length ? e.sources : e.src ? [{ src: e.src, label: this.i18n.autoQuality }] : [];
2741
+ this.sourceGroups = ze(i, e.sourcePriority);
2742
+ const r = (d) => this.sourceManager.isLoaded(d.src, d.type) && !this.isSourceLocked(d), o = this.sourceGroups.findIndex((d) => d.sources.some(r));
2743
+ this.activeGroup = o !== -1 ? o : this.firstPlayableGroup();
2744
+ const a = ((m = this.sourceGroups[this.activeGroup]) == null ? void 0 : m.sources) ?? [];
2745
+ this.currentSources = a, this.fallbackPending = !1;
2746
+ const h = a.find(r) ?? this.pickInitialSource(a);
2747
+ if (h && !this.sourceManager.isLoaded(h.src, h.type) && (a.length <= 1 && (this.controlBar.setQualities([], ""), this.hlsQualitiesShown = !1), await this.sourceManager.load(h.src, h.type), e.autoplay && this.videoEl.play().catch(() => {
2748
+ })), h && (this.activeSourceLabel = h.label), this.renderSourceQualities(), await this.installAdsOnce(e), await this.applySponsorship(e), await this.applyAdTriggers(e), await this.applyCast(e), e.gesture && !this.gestureControls) {
2749
+ const d = e.gesture === !0 ? {} : e.gesture, { installGesture: g } = await import("./gesture-BzPCgi87.js");
2750
+ this.gestureControls = g(
2580
2751
  { videoEl: this.videoEl, overlayContainerEl: this.videoArea, isAdActive: () => this.isAdPlaying() },
2581
- h
2752
+ d
2582
2753
  );
2583
2754
  }
2584
2755
  if (e.loopSection && !this.loopSection) {
2585
- const h = e.loopSection === !0 ? {} : e.loopSection, { installLoopSection: c } = await import("./index-f0vSgRIK.js");
2586
- this.loopSection = c(
2756
+ const d = e.loopSection === !0 ? {} : e.loopSection, { installLoopSection: g } = await import("./loopSection-CvF4l5uf.js");
2757
+ this.loopSection = g(
2587
2758
  {
2588
2759
  videoEl: this.videoEl,
2589
2760
  seekBarEl: this.controlBar.seekBar.el,
2590
2761
  markers: this.controlBar.seekBar,
2591
- addControlButton: (g, b, v) => this.controlBar.addButton(g, b, v),
2762
+ addControlButton: (b, E, C) => this.controlBar.addButton(b, E, C),
2592
2763
  i18n: this.i18n
2593
2764
  },
2594
- h
2765
+ d
2595
2766
  );
2596
2767
  }
2597
2768
  if (e.inViewAutoplay && !this.inViewAutoplay) {
2598
- const h = e.inViewAutoplay === !0 ? {} : e.inViewAutoplay, { installInViewAutoplay: c } = await import("./index-3QALpwsf.js");
2599
- this.inViewAutoplay = c(
2600
- { videoEl: this.videoEl, observeEl: this, isAdActive: () => this.isAdPlaying() },
2601
- h
2769
+ const d = e.inViewAutoplay === !0 ? {} : e.inViewAutoplay, { installInViewAutoplay: g } = await import("./inViewAutoplay-CRJe7GA4.js");
2770
+ this.inViewAutoplay = g(
2771
+ { videoEl: this.videoEl, observeEl: this, isAdActive: () => this.isAdPlaying() || this.casting },
2772
+ d
2602
2773
  );
2603
2774
  }
2604
2775
  if (e.sticky && !this.unregisterSticky) {
2605
- const h = e.sticky === !0 ? {} : e.sticky, { installSticky: c } = await import("./index-CDDke5rz.js");
2606
- this.unregisterSticky = c(
2776
+ const d = e.sticky === !0 ? {} : e.sticky, { installSticky: g } = await import("./sticky-D_eLCNFk.js");
2777
+ this.unregisterSticky = g(
2607
2778
  {
2608
2779
  key: this.instanceKey,
2609
2780
  videoEl: this.videoEl,
@@ -2613,23 +2784,23 @@ class ke extends HTMLElement {
2613
2784
  isAdActive: () => this.isAdPlaying(),
2614
2785
  i18n: this.i18n
2615
2786
  },
2616
- h
2787
+ d
2617
2788
  );
2618
2789
  }
2619
2790
  if (e.playlist && !this.playlistRunner) {
2620
- const { installPlaylist: h } = await import("./index-DpUZXNJS.js");
2621
- this.playlistRunner = h(
2791
+ const { installPlaylist: d } = await import("./playlist-CI3mRZjo.js");
2792
+ this.playlistRunner = d(
2622
2793
  {
2623
2794
  videoEl: this.videoEl,
2624
2795
  hostEl: this,
2625
2796
  panelEl: this.getOrCreatePanelContainer(),
2626
- loadSource: (c, g) => this.sourceManager.load(c, g),
2627
- setPoster: (c) => {
2628
- this.videoEl.poster = c;
2797
+ loadSource: (g, b) => this.sourceManager.load(g, b),
2798
+ setPoster: (g) => {
2799
+ this.videoEl.poster = g;
2629
2800
  },
2630
- requestFreshAd: (c) => {
2631
- var g;
2632
- return (g = this.adsController) == null ? void 0 : g.resetForNewItem(c);
2801
+ requestFreshAd: (g) => {
2802
+ var b;
2803
+ return (b = this.adsController) == null ? void 0 : b.resetForNewItem(g);
2633
2804
  },
2634
2805
  i18n: this.i18n
2635
2806
  },
@@ -2637,20 +2808,20 @@ class ke extends HTMLElement {
2637
2808
  );
2638
2809
  }
2639
2810
  if (e.story && !this.hopeStory) {
2640
- const { installStory: h } = await import("./index-ClQg_X1N.js");
2641
- this.hopeStory = h(
2811
+ const { installStory: d } = await import("./story-D5Got6-6.js");
2812
+ this.hopeStory = d(
2642
2813
  {
2643
2814
  videoEl: this.videoEl,
2644
2815
  hostEl: this,
2645
2816
  videoAreaEl: this.videoArea,
2646
2817
  playerBodyEls: [this.root.querySelector(".media-layer"), this.chromeEl, this.centerPlayButton],
2647
- loadSource: (c, g) => this.sourceManager.load(c, g),
2648
- setPoster: (c) => {
2649
- this.videoEl.poster = c;
2818
+ loadSource: (g, b) => this.sourceManager.load(g, b),
2819
+ setPoster: (g) => {
2820
+ this.videoEl.poster = g;
2650
2821
  },
2651
- requestFreshAd: (c) => {
2652
- var g;
2653
- return (g = this.adsController) == null ? void 0 : g.resetForNewItem(c);
2822
+ requestFreshAd: (g) => {
2823
+ var b;
2824
+ return (b = this.adsController) == null ? void 0 : b.resetForNewItem(g);
2654
2825
  },
2655
2826
  i18n: this.i18n
2656
2827
  },
@@ -2658,24 +2829,24 @@ class ke extends HTMLElement {
2658
2829
  );
2659
2830
  }
2660
2831
  if (e.markers && !this.markProgress) {
2661
- const { installMarkers: h } = await import("./index-DRlQC-ev.js");
2662
- this.markProgress = h(
2832
+ const { installMarkers: d } = await import("./markers-DE4O8xbw.js");
2833
+ this.markProgress = d(
2663
2834
  {
2664
2835
  videoEl: this.videoEl,
2665
2836
  overlayContainerEl: this.videoArea,
2666
- addSeekBarMarker: (c, g) => this.controlBar.seekBar.addMarker(c, g),
2837
+ addSeekBarMarker: (g, b) => this.controlBar.seekBar.addMarker(g, b),
2667
2838
  i18n: this.i18n
2668
2839
  },
2669
2840
  e.markers
2670
2841
  );
2671
2842
  }
2672
- if ((l = e.segments) != null && l.length && !this.segments) {
2673
- const { installSegments: h } = await import("./index-BOoNcKeR.js");
2674
- this.segments = h({ videoEl: this.videoEl, seekBar: this.controlBar.seekBar }, e.segments);
2843
+ if ((u = e.segments) != null && u.length && !this.segments) {
2844
+ const { installSegments: d } = await import("./segments-C2HKU6XK.js");
2845
+ this.segments = d({ videoEl: this.videoEl, seekBar: this.controlBar.seekBar }, e.segments);
2675
2846
  }
2676
2847
  if (e.spriteThumbnails && !this.spriteThumbnails) {
2677
- const { installSpriteThumbnails: h } = await import("./index-BvoB2O1p.js");
2678
- this.spriteThumbnails = h(
2848
+ const { installSpriteThumbnails: d } = await import("./spriteThumbnails-D0NQ5CCp.js");
2849
+ this.spriteThumbnails = d(
2679
2850
  {
2680
2851
  videoEl: this.videoEl,
2681
2852
  seekBar: this.controlBar.seekBar,
@@ -2684,32 +2855,33 @@ class ke extends HTMLElement {
2684
2855
  e.spriteThumbnails
2685
2856
  );
2686
2857
  }
2687
- if (e.redirectScreen && !this.redirectScreen) {
2688
- const { installRedirectScreen: h } = await import("./index-D6r-BGAV.js");
2689
- this.redirectScreen = h(
2690
- { videoEl: this.videoEl, overlayContainerEl: this.videoArea, isAdActive: () => this.isAdPlaying(), i18n: this.i18n },
2858
+ const c = e.redirectScreen ? JSON.stringify(e.redirectScreen) : "";
2859
+ if (c !== this.redirectKey && (this.redirectKey = c, (f = this.redirectScreen) == null || f.destroy(), this.redirectScreen = null, e.redirectScreen)) {
2860
+ const { installRedirectScreen: d } = await import("./redirectScreen-CJ3q9OX4.js");
2861
+ this.redirectScreen = d(
2862
+ { hostEl: this, videoEl: this.videoEl, overlayContainerEl: this.videoArea, isAdActive: () => this.isAdPlaying(), i18n: this.i18n },
2691
2863
  e.redirectScreen
2692
2864
  );
2693
2865
  }
2694
2866
  if (e.qrResume && !this.qrResume) {
2695
- const { installQrResume: h } = await import("./index-DT8-oMPm.js");
2696
- this.qrResume = h({ videoEl: this.videoEl, overlayContainerEl: this.videoArea, i18n: this.i18n }, e.qrResume);
2867
+ const { installQrResume: d } = await import("./qrResume-BNy8XCp_.js");
2868
+ this.qrResume = d({ videoEl: this.videoEl, overlayContainerEl: this.videoArea, i18n: this.i18n }, e.qrResume);
2697
2869
  }
2698
2870
  if (this.qrResume) {
2699
- const h = this.qrResume;
2871
+ const d = this.qrResume;
2700
2872
  this.controlBar.settingsMenu.setQrResumeToggle({
2701
2873
  label: this.i18n.qrResumeMenuLabel,
2702
- getValueLabel: () => h.isEnabled() ? this.i18n.qrResumeOn : this.i18n.qrResumeOff,
2703
- onToggle: () => h.setEnabled(!h.isEnabled())
2874
+ getValueLabel: () => d.isEnabled() ? this.i18n.qrResumeOn : this.i18n.qrResumeOff,
2875
+ onToggle: () => d.setEnabled(!d.isEnabled())
2704
2876
  });
2705
2877
  }
2706
2878
  if (e.tapGestures && !this.tapGestures) {
2707
- const { installTapGestures: h } = await import("./index-C5oGMHF_.js");
2708
- this.tapGestures = h(
2879
+ const { installTapGestures: d } = await import("./tapGestures-DrC42DiI.js");
2880
+ this.tapGestures = d(
2709
2881
  {
2710
2882
  areaEl: this.videoArea,
2711
- seekBy: (c) => {
2712
- this.controlBar.seekBar.el.style.pointerEvents !== "none" && (ce(this.videoEl, c), this.seekFeedback.show(c));
2883
+ seekBy: (g) => {
2884
+ this.controlBar.seekBar.el.style.pointerEvents !== "none" && (ye(this.videoEl, g), this.seekFeedback.show(g));
2713
2885
  },
2714
2886
  togglePlay: () => this.videoEl.paused ? void this.videoEl.play().catch(() => {
2715
2887
  }) : this.videoEl.pause(),
@@ -2722,63 +2894,63 @@ class ke extends HTMLElement {
2722
2894
  );
2723
2895
  }
2724
2896
  if (this.tapGestures) {
2725
- const { DEFAULT_TAP_GESTURES: h } = await import("./index-C5oGMHF_.js");
2726
- this.tapGestures.setGestures(e.tapGestures === !0 ? h : e.tapGestures || []);
2897
+ const { DEFAULT_TAP_GESTURES: d } = await import("./tapGestures-DrC42DiI.js");
2898
+ this.tapGestures.setGestures(e.tapGestures === !0 ? d : e.tapGestures || []);
2727
2899
  }
2728
- if ((p = e.pauseAd) != null && p.adUnitPath && !this.pauseAd) {
2729
- const { installPauseAd: h } = await import("./index-CaMVTgh0.js");
2730
- this.pauseAd = h(
2900
+ if ((y = e.pauseAd) != null && y.adUnitPath && !this.pauseAd) {
2901
+ const { installPauseAd: d } = await import("./pauseAd-BQQe21X4.js");
2902
+ this.pauseAd = d(
2731
2903
  { videoEl: this.videoEl, hostEl: this, videoArea: this.videoArea, i18n: this.i18n, isBlocked: () => this.isChromeBlocked },
2732
2904
  e.pauseAd
2733
2905
  );
2734
2906
  }
2735
2907
  if (e.dubbing && !this.dubbing) {
2736
- const { installDubbing: h } = await import("./index-DXWK4EFa.js");
2737
- this.dubbing = h(
2908
+ const { installDubbing: d } = await import("./dubbing-kNMPpyHl.js");
2909
+ this.dubbing = d(
2738
2910
  {
2739
2911
  videoEl: this.videoEl,
2740
- loadSource: (c, g) => this.sourceManager.load(c, g),
2741
- registerSubmenu: (c) => this.controlBar.settingsMenu.registerSubmenu(c),
2742
- unregisterSubmenu: (c) => this.controlBar.settingsMenu.unregisterSubmenu(c),
2912
+ loadSource: (g, b) => this.sourceManager.load(g, b),
2913
+ registerSubmenu: (g) => this.controlBar.settingsMenu.registerSubmenu(g),
2914
+ unregisterSubmenu: (g) => this.controlBar.settingsMenu.unregisterSubmenu(g),
2743
2915
  i18n: this.i18n
2744
2916
  },
2745
2917
  e.dubbing
2746
2918
  );
2747
2919
  }
2748
2920
  if (e.liveWallClock && !this.liveWallClock) {
2749
- const h = e.liveWallClock === !0 ? {} : e.liveWallClock, { installLiveWallClock: c } = await import("./index-7IBf8Y-R.js");
2750
- this.liveWallClock = c(
2921
+ const d = e.liveWallClock === !0 ? {} : e.liveWallClock, { installLiveWallClock: g } = await import("./liveWallClock-ChUTtzLD.js");
2922
+ this.liveWallClock = g(
2751
2923
  {
2752
2924
  videoEl: this.videoEl,
2753
2925
  seekBarEl: this.controlBar.seekBar.el,
2754
- addControlElement: (g) => this.controlBar.addElement(g),
2926
+ addControlElement: (b) => this.controlBar.addElement(b),
2755
2927
  i18n: this.i18n,
2756
2928
  getPlayingDate: () => {
2757
- var y, f, x;
2758
- const g = (y = this.sourceManager.hlsInstance) == null ? void 0 : y.playingDate;
2759
- if (g) return g;
2760
- const b = (x = (f = this.videoEl).getStartDate) == null ? void 0 : x.call(f), v = (b == null ? void 0 : b.getTime()) ?? NaN;
2761
- return Number.isFinite(v) && v > 0 ? new Date(v + this.videoEl.currentTime * 1e3) : null;
2929
+ var v, T, S;
2930
+ const b = (v = this.sourceManager.hlsInstance) == null ? void 0 : v.playingDate;
2931
+ if (b) return b;
2932
+ const E = (S = (T = this.videoEl).getStartDate) == null ? void 0 : S.call(T), C = (E == null ? void 0 : E.getTime()) ?? NaN;
2933
+ return Number.isFinite(C) && C > 0 ? new Date(C + this.videoEl.currentTime * 1e3) : null;
2762
2934
  }
2763
2935
  },
2764
- h
2936
+ d
2765
2937
  ), this.controlBar.seekBar.liveHoverHandled = !0;
2766
2938
  }
2767
2939
  if (e.dai && !this.daiController) {
2768
- const { installDai: h } = await import("./index-Q8FMOHj0.js");
2769
- this.daiController = await h(
2940
+ const { installDai: d } = await import("./dai-B9Tth1Iv.js");
2941
+ this.daiController = await d(
2770
2942
  {
2771
2943
  videoEl: this.videoEl,
2772
2944
  hostEl: this,
2773
2945
  adUiEl: this.adLayerEl,
2774
- loadStreamUrl: (c) => this.sourceManager.load(c),
2946
+ loadStreamUrl: (g) => this.sourceManager.load(g),
2775
2947
  disableSeeking: () => this.disableSeeking(),
2776
2948
  enableSeeking: () => this.enableSeeking()
2777
2949
  },
2778
2950
  e.dai
2779
2951
  );
2780
2952
  }
2781
- (u = e.subtitles) != null && u.length ? this.optionTracks = $e(this.videoEl, e.subtitles) : (be(this.videoEl), this.optionTracks = []), this.rebuildCaptions(((m = (d = e.subtitles) == null ? void 0 : d.find((h) => h.default)) == null ? void 0 : m.label) ?? null);
2953
+ (x = e.subtitles) != null && x.length ? this.optionTracks = it(this.videoEl, e.subtitles) : (Ee(this.videoEl), this.optionTracks = []), this.rebuildCaptions(((w = (k = e.subtitles) == null ? void 0 : k.find((d) => d.default)) == null ? void 0 : w.label) ?? null);
2782
2954
  }
2783
2955
  /** Altyazı menüsünü `options.subtitles` + yayın izlerinden kurar; `activeLabel` varsa onu seçer. */
2784
2956
  rebuildCaptions(e) {
@@ -2788,8 +2960,8 @@ class ke extends HTMLElement {
2788
2960
  }
2789
2961
  const i = (o) => {
2790
2962
  var l;
2791
- const a = Ke(this.subtitleTracks, o);
2792
- this.activeCaptionLabel = a ? o : null, this.sourceManager.selectTextTrack(((l = this.streamTracks.find((p) => p.label === o)) == null ? void 0 : l.id) ?? null), this.captionRenderer.setActiveTrack(a), this.captionTrackActive = a !== null, this.controlBar.settingsMenu.setActiveCaption(a ? o : this.i18n.captionsOff), this.controlBar.settingsMenu.setCaptionAppearance(a !== null ? this.buildCaptionAppearance() : null);
2963
+ const a = rt(this.subtitleTracks, o);
2964
+ this.activeCaptionLabel = a ? o : null, this.sourceManager.selectTextTrack(((l = this.streamTracks.find((h) => h.label === o)) == null ? void 0 : l.id) ?? null), this.captionRenderer.setActiveTrack(a), this.captionTrackActive = a !== null, this.controlBar.settingsMenu.setActiveCaption(a ? o : this.i18n.captionsOff), this.controlBar.settingsMenu.setCaptionAppearance(a !== null ? this.buildCaptionAppearance() : null);
2793
2965
  };
2794
2966
  this.selectCaption = i;
2795
2967
  const r = e && this.subtitleTracks.some((o) => o.label === e) ? e : null;
@@ -2821,11 +2993,11 @@ class ke extends HTMLElement {
2821
2993
  }
2822
2994
  /** Ayarlar menüsünün "Altyazı" alt menüsüne eklenen Boyut/Renk/Konum satırları — her zaman GÜNCEL `this.i18n`'i okur (dil sonradan değişse bile). */
2823
2995
  buildCaptionAppearance() {
2824
- const e = ["small", "normal", "large"], i = (r, o, a, l) => r.map((p, u) => ({
2825
- value: p,
2826
- active: o() === p,
2827
- ariaLabel: `${l} ${u + 1}`,
2828
- onSelect: () => a(p)
2996
+ const e = ["small", "normal", "large"], i = (r, o, a, l) => r.map((h, c) => ({
2997
+ value: h,
2998
+ active: o() === h,
2999
+ ariaLabel: `${l} ${c + 1}`,
3000
+ onSelect: () => a(h)
2829
3001
  }));
2830
3002
  return {
2831
3003
  sizeLabel: this.i18n.captionSize,
@@ -2836,14 +3008,14 @@ class ke extends HTMLElement {
2836
3008
  })),
2837
3009
  bgColorLabel: this.i18n.captionBgColor,
2838
3010
  getBgColorOptions: () => i(
2839
- B.BG_COLOR_PRESETS,
3011
+ z.BG_COLOR_PRESETS,
2840
3012
  () => this.captionRenderer.getBgColor(),
2841
3013
  (r) => this.captionRenderer.setBgColor(r),
2842
3014
  this.i18n.captionBgColor
2843
3015
  ),
2844
3016
  textColorLabel: this.i18n.captionTextColor,
2845
3017
  getTextColorOptions: () => i(
2846
- B.TEXT_COLOR_PRESETS,
3018
+ z.TEXT_COLOR_PRESETS,
2847
3019
  () => this.captionRenderer.getTextColor(),
2848
3020
  (r) => this.captionRenderer.setTextColor(r),
2849
3021
  this.i18n.captionTextColor
@@ -2909,7 +3081,7 @@ class ke extends HTMLElement {
2909
3081
  if (this.lastHlsLevels.length > 1)
2910
3082
  this.onHlsLevelsChanged(this.lastHlsLevels, e ? -1 : this.lastHlsActive), e && this.sourceManager.setLevel(-1);
2911
3083
  else if (this.currentSources.length > 1) {
2912
- const r = e ? this.currentSources.filter((l) => !this.isSourceLocked(l)).reduce((l, p) => !l || (this.sourceHeight(p) ?? 0) > (this.sourceHeight(l) ?? 0) ? p : l, null) : null, o = this.currentSources.find((l) => l.label === this.activeSourceLabel), a = r ?? (o && this.isSourceLocked(o) ? this.pickInitialSource(this.currentSources) : null);
3084
+ const r = e ? this.currentSources.filter((l) => !this.isSourceLocked(l)).reduce((l, h) => !l || (this.sourceHeight(h) ?? 0) > (this.sourceHeight(l) ?? 0) ? h : l, null) : null, o = this.currentSources.find((l) => l.label === this.activeSourceLabel), a = r ?? (o && this.isSourceLocked(o) ? this.pickInitialSource(this.currentSources) : null);
2913
3085
  a && a.label !== this.activeSourceLabel ? this.switchQualitySource(a) : this.renderSourceQualities();
2914
3086
  }
2915
3087
  (i = this.rewardedUnlock) == null || i.onQualitiesChanged();
@@ -2923,7 +3095,7 @@ class ke extends HTMLElement {
2923
3095
  if (this.rewardedUnlock)
2924
3096
  this.rewardedUnlock.update(i);
2925
3097
  else {
2926
- const { installRewardedUnlock: r } = await import("./index-TkG8IO6q.js");
3098
+ const { installRewardedUnlock: r } = await import("./rewardedUnlock-EyGMB9PK.js");
2927
3099
  this.rewardedUnlock ?? (this.rewardedUnlock = r(
2928
3100
  {
2929
3101
  hostEl: this,
@@ -2938,14 +3110,114 @@ class ke extends HTMLElement {
2938
3110
  this.isFullscreenActive() && this.exitFullscreenCompat();
2939
3111
  },
2940
3112
  lockedQualityLabel: () => this.lockedQualityLabel(),
2941
- // Kalite dosyası değil içerik: aynı videonun 240p ↔ 720p geçişi kilidi kapatmasın.
2942
- contentKey: () => this.currentSources.map((o) => o.src).join("|"),
3113
+ // Kalite dosyası değil içerik: aynı videonun 240p ↔ 720p geçişi (ya da HLS → MP4 yedeği) kilidi kapatmasın.
3114
+ contentKey: () => this.contentKey(),
2943
3115
  onLockChange: (o) => this.refreshQualityGate(o)
2944
3116
  },
2945
3117
  i
2946
3118
  )), this.qualityGate = this.rewardedUnlock;
2947
3119
  }
2948
3120
  }
3121
+ /**
3122
+ * İçerik kimliği: `sources` çalıyorsa tüm kaynakları (kalite değişimi / yedek kaynak aynı içerik), eklentinin
3123
+ * yüklediği medya (playlist, hikâye, dublaj) çalıyorsa onun adresi.
3124
+ */
3125
+ contentKey() {
3126
+ const e = this.sourceGroups.flatMap((r) => r.sources.map((o) => o.src)), i = this.sourceManager.currentSrc ?? "";
3127
+ return !i || e.includes(i) ? e.join("|") : i;
3128
+ }
3129
+ async applyCast(e) {
3130
+ var r;
3131
+ const i = e.cast;
3132
+ if (!(i != null && i.chromecast) && !(i != null && i.airplay) && !(i != null && i.remotePlayback)) {
3133
+ (r = this.castController) == null || r.destroy(), this.castController = null;
3134
+ return;
3135
+ }
3136
+ if (this.castController)
3137
+ this.castController.update(i);
3138
+ else {
3139
+ const { installCast: o } = await import("./cast-DCAT2agI.js");
3140
+ this.castController ?? (this.castController = o(
3141
+ {
3142
+ hostEl: this,
3143
+ videoEl: this.videoEl,
3144
+ overlayEl: this.videoArea,
3145
+ i18n: this.i18n,
3146
+ log: (a) => this.log.add({ source: "player", ...a }),
3147
+ addButton: (a, l, h) => this.controlBar.addButton(a, l, h),
3148
+ getMedia: () => this.castMedia(),
3149
+ isAdPlaying: () => this.isAdPlaying(),
3150
+ isMse: () => this.sourceManager.engine.engine === "hls.js",
3151
+ contentKey: () => this.contentKey(),
3152
+ onRemoteChange: (a) => {
3153
+ var l;
3154
+ this.casting = a, (l = this.adsController) == null || l.setRemote(a), a && this.prerollGate.release(!1);
3155
+ }
3156
+ },
3157
+ i
3158
+ ));
3159
+ }
3160
+ }
3161
+ /** TV'ye gönderilecek içerik: o an çalan kaynak (ya da `cast.source`), başlık / kapak, altyazılar, reklam tag'leri. */
3162
+ castMedia() {
3163
+ var d, g, b, E, C;
3164
+ const e = this._options, i = e.cast ?? {}, r = this.sourceManager.currentSrc;
3165
+ if (!r) return null;
3166
+ const o = (d = this.currentSources.find((v) => v.src === r)) == null ? void 0 : d.type, a = typeof i.source == "function" ? i.source({ src: r, type: o }) : i.source ?? { src: r, type: o }, l = typeof a == "string" ? { src: a, type: void 0 } : a, h = (v) => new URL(v, document.baseURI).href, c = ve({ src: l.src, type: l.type }), p = typeof e.audio == "object" ? e.audio : null, m = ((g = i.metadata) == null ? void 0 : g.image) ?? (p == null ? void 0 : p.cover) ?? e.poster, u = typeof e.ads == "object" ? e.ads : null, f = u == null ? void 0 : u.prebid, y = f == null ? void 0 : f.custParams, x = f ? { ...q(f.custParams), ...q((b = f.midroll) == null ? void 0 : b.custParams) } : void 0, k = (v, T) => {
3167
+ const S = Array.isArray(v) ? v[0] : v;
3168
+ return S ? At(V(S), T) : void 0;
3169
+ }, w = i.ads === !1 ? null : typeof i.ads == "object" ? {
3170
+ vmap: i.ads.vmap ? V(i.ads.vmap) : void 0,
3171
+ preroll: k(i.ads.preroll),
3172
+ midroll: k(i.ads.midroll),
3173
+ midrollIntervalSeconds: i.ads.midrollIntervalSeconds,
3174
+ postroll: k(i.ads.postroll)
3175
+ } : u ? {
3176
+ vmap: u.adTagVmap ? V(u.adTagVmap) : void 0,
3177
+ preroll: k(u.adTagPreroll, y),
3178
+ midroll: k(u.adTagMidroll, x),
3179
+ midrollIntervalSeconds: u.midrollIntervalSeconds,
3180
+ postroll: k(u.adTagPostroll)
3181
+ } : null;
3182
+ return {
3183
+ src: h(l.src),
3184
+ contentType: l.type || Ht[c] || "video/mp4",
3185
+ live: this.videoEl.duration === 1 / 0,
3186
+ title: ((E = i.metadata) == null ? void 0 : E.title) ?? (p == null ? void 0 : p.title),
3187
+ subtitle: ((C = i.metadata) == null ? void 0 : C.subtitle) ?? (p == null ? void 0 : p.artist),
3188
+ image: m ? h(m) : void 0,
3189
+ music: !!e.audio,
3190
+ subtitles: (e.subtitles ?? []).map((v) => ({ src: h(v.src), label: v.label, lang: v.srclang, default: v.default })),
3191
+ ads: w && (w.vmap || w.preroll || w.midroll || w.postroll) ? w : null
3192
+ };
3193
+ }
3194
+ async applyAdTriggers(e) {
3195
+ var r;
3196
+ const i = e.adTriggers;
3197
+ if (!(i != null && i.endpoint) && !(i != null && i.config)) {
3198
+ (r = this.adTriggers) == null || r.destroy(), this.adTriggers = null;
3199
+ return;
3200
+ }
3201
+ if (this.adTriggers)
3202
+ this.adTriggers.update(i);
3203
+ else {
3204
+ const { installAdTriggers: o } = await import("./adTriggers-4SueRFgK.js");
3205
+ this.adTriggers ?? (this.adTriggers = o(
3206
+ {
3207
+ hostEl: this,
3208
+ videoEl: this.videoEl,
3209
+ overlayEl: this.videoArea,
3210
+ i18n: this.i18n,
3211
+ log: (a) => this.log.add({ source: "ads", ...a }),
3212
+ isBlocked: () => this.isChromeBlocked || this.isAdPlaying() || this.casting,
3213
+ isFullscreen: () => this.isFullscreenActive(),
3214
+ isNativeFullscreen: () => !!this.iosVideo.webkitDisplayingFullscreen,
3215
+ contentKey: () => this.contentKey()
3216
+ },
3217
+ i
3218
+ ));
3219
+ }
3220
+ }
2949
3221
  async applySponsorship(e) {
2950
3222
  var r;
2951
3223
  const i = e.sponsorship;
@@ -2956,7 +3228,7 @@ class ke extends HTMLElement {
2956
3228
  if (this.sponsorship)
2957
3229
  this.sponsorship.update(i);
2958
3230
  else {
2959
- const { installSponsorship: o } = await import("./index-D5P-LWbg.js");
3231
+ const { installSponsorship: o } = await import("./sponsorship-DyFwGmEb.js");
2960
3232
  this.sponsorship ?? (this.sponsorship = o(
2961
3233
  {
2962
3234
  hostEl: this,
@@ -2976,6 +3248,65 @@ class ke extends HTMLElement {
2976
3248
  await this.sourceManager.load(e.src, e.type), this.videoEl.currentTime = i, r && this.videoEl.play().catch(() => {
2977
3249
  }), this.dispatchEvent(new CustomEvent("hp:qualitychange", { detail: { label: e.label } }));
2978
3250
  }
3251
+ /** `from`'dan itibaren tarayıcının oynatabileceği ilk grup (oynatamadıkları atlanır); hiçbiri yoksa -1 (from 0'sa 0 — yine de dene). */
3252
+ firstPlayableGroup(e = 0) {
3253
+ var i;
3254
+ for (let r = e; r < this.sourceGroups.length; r++) {
3255
+ const o = this.sourceGroups[r];
3256
+ if (!Ne(o, this.videoEl)) {
3257
+ if (r > e) {
3258
+ const a = this.sourceGroups[e].format;
3259
+ this.dispatchEvent(new CustomEvent("hp:sourcefallback", { detail: { from: a, to: o.format, code: 4, skipped: !0 } }));
3260
+ }
3261
+ return r;
3262
+ }
3263
+ this.log.add({ source: "player", message: `Source format "${o.format}" is not playable in this browser — skipped`, details: { src: (i = o.sources[0]) == null ? void 0 : i.src } });
3264
+ }
3265
+ return e === 0 ? 0 : -1;
3266
+ }
3267
+ /**
3268
+ * Ölümcül hata: sıradaki biçim grubuna geç (konum ve oynatma durumu korunur).
3269
+ * true = geçiliyor, hata ekranı gösterilmez. Hata ekranının `shouldShow`'undan çağrılır.
3270
+ */
3271
+ tryNextSourceGroup() {
3272
+ var l;
3273
+ if (this.fallbackPending) return !0;
3274
+ const e = this.sourceGroups[this.activeGroup];
3275
+ if (!e || this.sourceGroups.length < 2 || !e.sources.some((h) => h.src === this.sourceManager.currentSrc)) return !1;
3276
+ const i = ((l = this.videoEl.error) == null ? void 0 : l.code) ?? this.streamErrorCode;
3277
+ if (this.streamErrorCode = void 0, i === 1) return !1;
3278
+ const r = this.firstPlayableGroup(this.activeGroup + 1);
3279
+ if (r === -1) return !1;
3280
+ this.fallbackPending = !0;
3281
+ const o = Number.isFinite(this.videoEl.duration) ? this.videoEl.currentTime : 0, a = !this.videoEl.paused || !!this._options.autoplay;
3282
+ return this.log.add({
3283
+ source: "player",
3284
+ message: `Source "${e.format}" failed — falling back to "${this.sourceGroups[r].format}"`,
3285
+ details: { code: i, src: this.sourceManager.currentSrc ?? void 0 }
3286
+ }), this.dispatchEvent(new CustomEvent("hp:sourcefallback", { detail: { from: e.format, to: this.sourceGroups[r].format, code: i } })), queueMicrotask(() => void this.activateSourceGroup(r, o, a)), !0;
3287
+ }
3288
+ async activateSourceGroup(e, i, r) {
3289
+ var l;
3290
+ const o = this.sourceGroups[e];
3291
+ if (!o) return;
3292
+ this.activeGroup = e, this.currentSources = o.sources;
3293
+ const a = this.pickInitialSource(o.sources);
3294
+ this.errorScreen.dismiss(), this.controlBar.setQualities([], ""), this.hlsQualitiesShown = !1, this.activeSourceLabel = a.label, i > 0 && this.videoEl.addEventListener("loadedmetadata", () => this.videoEl.currentTime = i, { once: !0 });
3295
+ try {
3296
+ await this.sourceManager.load(a.src, a.type);
3297
+ } finally {
3298
+ this.fallbackPending = !1;
3299
+ }
3300
+ this.renderSourceQualities(), (l = this.rewardedUnlock) == null || l.onQualitiesChanged(), r && this.videoEl.play().catch(() => {
3301
+ });
3302
+ }
3303
+ /** Hata ekranındaki "Tekrar dene": birden fazla grup varsa en öncelikli gruptan baştan başla. */
3304
+ async retrySource() {
3305
+ const e = this.sourceGroups.some((r) => r.sources.some((o) => o.src === this.sourceManager.currentSrc));
3306
+ if (this.sourceGroups.length < 2 || !e) return this.sourceManager.reload();
3307
+ const i = Number.isFinite(this.videoEl.duration) ? this.videoEl.currentTime : 0;
3308
+ this.fallbackPending = !0, await this.activateSourceGroup(this.firstPlayableGroup(), i, !0);
3309
+ }
2979
3310
  // ── Fullscreen (vendor-prefix uyumlu) ───────────────────────────────
2980
3311
  /** iPhone Safari element tam ekranını desteklemiyor — yalnızca <video>'nun kendi (native kontrollü) tam ekranı. */
2981
3312
  get iosVideo() {
@@ -3036,14 +3367,14 @@ class ke extends HTMLElement {
3036
3367
  if (!i.height || !r.height || !e.hasAttribute("data-compact")) return o();
3037
3368
  const a = 64, l = r.top - i.top - 8;
3038
3369
  if (i.height / 2 + a / 2 <= l) return o();
3039
- const p = Math.max(40, Math.min(56, l - 12)), u = Math.max(p / 2 + 6, l - p / 2), d = Math.round(u - i.height / 2);
3370
+ const h = Math.max(40, Math.min(56, l - 12)), c = Math.max(h / 2 + 6, l - h / 2), p = Math.round(c - i.height / 2);
3040
3371
  let m = 0;
3041
- const h = this.controlBar.topEl.getBoundingClientRect();
3042
- if (h.width > 0 && u - p / 2 < h.bottom - i.top) {
3043
- const c = h.left - i.left - 8 - p / 2;
3044
- i.width / 2 > c && (m = Math.round(Math.max(p / 2 + 8, c) - i.width / 2));
3372
+ const u = this.controlBar.topEl.getBoundingClientRect();
3373
+ if (u.width > 0 && c - h / 2 < u.bottom - i.top) {
3374
+ const f = u.left - i.left - 8 - h / 2;
3375
+ i.width / 2 > f && (m = Math.round(Math.max(h / 2 + 8, f) - i.width / 2));
3045
3376
  }
3046
- e.setAttribute("data-center-play-shifted", ""), e.style.setProperty("--hp-center-play-shift-x", `${m}px`), e.style.setProperty("--hp-center-play-size", `${p}px`), e.style.setProperty("--hp-center-play-shift", `${d}px`);
3377
+ e.setAttribute("data-center-play-shifted", ""), e.style.setProperty("--hp-center-play-shift-x", `${m}px`), e.style.setProperty("--hp-center-play-size", `${h}px`), e.style.setProperty("--hp-center-play-shift", `${p}px`);
3047
3378
  }
3048
3379
  /** Dar player'da dokunmatikte oynat/duraklat yerine kontrolleri göster/gizle (options.tapToPlay). */
3049
3380
  tapTogglesPlay(e) {
@@ -3062,8 +3393,8 @@ class ke extends HTMLElement {
3062
3393
  }
3063
3394
  /** Chrome görünürlüğünün tek giriş noktası — altyazı da haberdar olur (kontroller gizlenince en alta iner). */
3064
3395
  setChromeOpacity(e) {
3065
- var i;
3066
- this.chromeEl.style.opacity = e, this.chromeVisible = e === "1", (i = this.captionRenderer) == null || i.setChromeVisible(this.chromeVisible), this.updateMiniProgress();
3396
+ var i, r;
3397
+ this.chromeEl.style.opacity = e, this.chromeVisible = e === "1", (i = this.videoArea) == null || i.toggleAttribute("data-chrome-hidden", !this.chromeVisible), (r = this.captionRenderer) == null || r.setChromeVisible(this.chromeVisible), this.updateMiniProgress();
3067
3398
  }
3068
3399
  /** İnce ilerleme çizgisi: yalnızca kontroller gizliyken; reklam/giriş ekranı (chrome bloklu) sırasında değil. */
3069
3400
  updateMiniProgress() {
@@ -3112,7 +3443,7 @@ class ke extends HTMLElement {
3112
3443
  if (this.hideTimer && clearTimeout(this.hideTimer), this.hideTimer = null, this.isChromeBlocked || this.showChrome(), this.audioStage)
3113
3444
  this.audioStage.update(i);
3114
3445
  else {
3115
- const { installAudioStage: o } = await import("./index-BeJNpAyx.js");
3446
+ const { installAudioStage: o } = await import("./audio-LkYgd5Wq.js");
3116
3447
  if (!this.audioMode) return;
3117
3448
  this.audioStage ?? (this.audioStage = o(
3118
3449
  {
@@ -3136,7 +3467,7 @@ class ke extends HTMLElement {
3136
3467
  if (!this.adsInstall) {
3137
3468
  const i = e.ads === !0 ? {} : e.ads;
3138
3469
  this.adsInstall = (async () => {
3139
- const { installAds: r } = await import("./index-BCMVXNL0.js");
3470
+ const { installAds: r } = await import("./ads-DPL7m9PV.js");
3140
3471
  this.adsController = await r(
3141
3472
  {
3142
3473
  videoEl: this.videoEl,
@@ -3193,13 +3524,17 @@ class ke extends HTMLElement {
3193
3524
  }
3194
3525
  }
3195
3526
  /** Paket sürümü (ör. "1.0.4"). */
3196
- s(ke, "version", N);
3197
- typeof window < "u" && !customElements.get("hope-player") && customElements.define("hope-player", ke);
3527
+ s(Le, "version", I);
3528
+ typeof window < "u" && !customElements.get("hope-player") && customElements.define("hope-player", Le);
3198
3529
  export {
3199
- N as H,
3200
- Re as L,
3201
- ke as a,
3202
- E as c,
3203
- w as f
3530
+ I as H,
3531
+ Ge as L,
3532
+ Le as a,
3533
+ L as c,
3534
+ A as f,
3535
+ V as g,
3536
+ At as m,
3537
+ R as s,
3538
+ q as t
3204
3539
  };
3205
- //# sourceMappingURL=index-w7pACyTw.js.map
3540
+ //# sourceMappingURL=player-C886oKP-.js.map