@hopeplayer/core 1.0.16 → 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 (110) hide show
  1. package/README.md +24 -14
  2. package/dist/HopePlayerElement.d.ts +1 -0
  3. package/dist/HopePlayerElement.d.ts.map +1 -1
  4. package/dist/chunks/{index-CWLyz1fp.js → adTriggers-4SueRFgK.js} +2 -2
  5. package/dist/chunks/adTriggers-4SueRFgK.js.map +1 -0
  6. package/dist/chunks/{index-DITXYcHx.js → ads-DPL7m9PV.js} +130 -125
  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/{index-Miba3PD_.js → cast-DCAT2agI.js} +2 -2
  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/{loadGpt-CmiAy366.js → gpt-CGXHTG_H.js} +1 -1
  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-e00_M05B.js → markers-DE4O8xbw.js} +2 -2
  35. package/dist/chunks/markers-DE4O8xbw.js.map +1 -0
  36. package/dist/chunks/{index-CDPrkLq0.js → pauseAd-BQQe21X4.js} +2 -2
  37. package/dist/chunks/pauseAd-BQQe21X4.js.map +1 -0
  38. package/dist/chunks/{index-DEv3YqLg.js → player-C886oKP-.js} +884 -856
  39. package/dist/chunks/player-C886oKP-.js.map +1 -0
  40. package/dist/chunks/{index-D3Z7ZDLJ.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/{index-BbRYOSvk.js → rewardedUnlock-EyGMB9PK.js} +22 -19
  49. package/dist/chunks/rewardedUnlock-EyGMB9PK.js.map +1 -0
  50. package/dist/chunks/{index-CBX7bn-G.js → segments-C2HKU6XK.js} +2 -2
  51. package/dist/chunks/segments-C2HKU6XK.js.map +1 -0
  52. package/dist/chunks/{index-Ch3ep-eJ.js → sponsorship-DyFwGmEb.js} +1 -1
  53. package/dist/chunks/sponsorship-DyFwGmEb.js.map +1 -0
  54. package/dist/chunks/{index-BXSND_xN.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-C3BQGcT3.js → story-D5Got6-6.js} +2 -2
  61. package/dist/chunks/{index-C3BQGcT3.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/hope-player.js +1 -1
  65. package/dist/i18n/locales/en.d.ts.map +1 -1
  66. package/dist/i18n/locales/tr.d.ts.map +1 -1
  67. package/dist/i18n/types.d.ts +3 -0
  68. package/dist/i18n/types.d.ts.map +1 -1
  69. package/dist/index.d.ts +1 -1
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/plugins/ads/AdsController.d.ts.map +1 -1
  72. package/dist/plugins/ads/generateVastUrl.d.ts +10 -0
  73. package/dist/plugins/ads/generateVastUrl.d.ts.map +1 -1
  74. package/dist/plugins/redirect-screen/RedirectScreen.d.ts +26 -3
  75. package/dist/plugins/redirect-screen/RedirectScreen.d.ts.map +1 -1
  76. package/dist/plugins/rewarded/RewardedUnlock.d.ts +0 -5
  77. package/dist/plugins/rewarded/RewardedUnlock.d.ts.map +1 -1
  78. package/dist/types/index.d.ts +47 -1
  79. package/dist/types/index.d.ts.map +1 -1
  80. package/package.json +3 -1
  81. package/dist/chunks/ScratchSound-0XKHUcJK.js.map +0 -1
  82. package/dist/chunks/VideoPrebid-CpckFzSq.js.map +0 -1
  83. package/dist/chunks/index-3QALpwsf.js.map +0 -1
  84. package/dist/chunks/index-7IBf8Y-R.js.map +0 -1
  85. package/dist/chunks/index-BBmuCtKu.js.map +0 -1
  86. package/dist/chunks/index-BXSND_xN.js.map +0 -1
  87. package/dist/chunks/index-BbRYOSvk.js.map +0 -1
  88. package/dist/chunks/index-BeJNpAyx.js.map +0 -1
  89. package/dist/chunks/index-C5oGMHF_.js.map +0 -1
  90. package/dist/chunks/index-CBX7bn-G.js.map +0 -1
  91. package/dist/chunks/index-CDDke5rz.js.map +0 -1
  92. package/dist/chunks/index-CDPrkLq0.js.map +0 -1
  93. package/dist/chunks/index-CWLyz1fp.js.map +0 -1
  94. package/dist/chunks/index-Ca8hocby.js.map +0 -1
  95. package/dist/chunks/index-Ch3ep-eJ.js.map +0 -1
  96. package/dist/chunks/index-D3Z7ZDLJ.js.map +0 -1
  97. package/dist/chunks/index-D6r-BGAV.js +0 -77
  98. package/dist/chunks/index-D6r-BGAV.js.map +0 -1
  99. package/dist/chunks/index-DCXX1ZJG.js.map +0 -1
  100. package/dist/chunks/index-DEv3YqLg.js.map +0 -1
  101. package/dist/chunks/index-DGtpFgHV.js.map +0 -1
  102. package/dist/chunks/index-DITXYcHx.js.map +0 -1
  103. package/dist/chunks/index-DT8-oMPm.js.map +0 -1
  104. package/dist/chunks/index-DXWK4EFa.js.map +0 -1
  105. package/dist/chunks/index-Miba3PD_.js.map +0 -1
  106. package/dist/chunks/index-Q8FMOHj0.js.map +0 -1
  107. package/dist/chunks/index-e00_M05B.js.map +0 -1
  108. package/dist/chunks/index-f0vSgRIK.js.map +0 -1
  109. package/dist/chunks/index-rENB3n9O.js.map +0 -1
  110. package/dist/chunks/loadGpt-CmiAy366.js.map +0 -1
@@ -1,13 +1,13 @@
1
- var Le = Object.defineProperty;
2
- var Pe = (n, t, e) => t in n ? Le(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e;
3
- var r = (n, t, e) => Pe(n, typeof t != "symbol" ? t + "" : t, e);
4
- const Me = '/*! 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-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{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,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}@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
  }
@@ -16,19 +16,19 @@ function be(n, t) {
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 Be {
19
+ class Re {
20
20
  constructor(t, e) {
21
- r(this, "hls", null);
22
- r(this, "video");
21
+ s(this, "hls", null);
22
+ s(this, "video");
23
23
  /** Son yüklenen kaynak — `reload()` (hata ekranındaki "Tekrar dene") için. */
24
- r(this, "last", null);
24
+ s(this, "last", null);
25
25
  /** Native HLS denemesi sürerken (ilk loadedmetadata'ya kadar) — başarısız olursa hls.js'e geçilir. */
26
- r(this, "nativeHlsProbe", null);
27
- r(this, "engineInfo", { engine: "native" });
28
- r(this, "hlsOptions", {});
29
- r(this, "streamTextTracks", /* @__PURE__ */ new Map());
26
+ s(this, "nativeHlsProbe", null);
27
+ s(this, "engineInfo", { engine: "native" });
28
+ s(this, "hlsOptions", {});
29
+ s(this, "streamTextTracks", /* @__PURE__ */ new Map());
30
30
  /** Safari native HLS ses izi dinleyicilerini kaldırır. */
31
- r(this, "nativeAudioCleanup", null);
31
+ s(this, "nativeAudioCleanup", null);
32
32
  this.callbacks = e, this.video = t;
33
33
  }
34
34
  /** `options.hls` — sonraki `load()`'da uygulanır. */
@@ -46,13 +46,13 @@ class Be {
46
46
  this.engineInfo = { engine: "native" }, this.video.src = t;
47
47
  return;
48
48
  }
49
- const s = this.hlsOptions.engine ?? "auto", o = this.video.canPlayType("application/vnd.apple.mpegurl") !== "";
50
- if (s === "native" && o) {
49
+ const r = this.hlsOptions.engine ?? "auto", o = this.video.canPlayType("application/vnd.apple.mpegurl") !== "";
50
+ if (r === "native" && o) {
51
51
  this.loadNativeHls(t, "option");
52
52
  return;
53
53
  }
54
- if (s !== "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,23 +77,23 @@ class Be {
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;
81
- const e = () => s(), i = () => {
80
+ if (!Y() || this.engineInfo.reason === "hlsjs-failed" || this.engineInfo.reason === "option") return;
81
+ const e = () => r(), i = () => {
82
82
  var a, l;
83
83
  const o = ((a = this.video.error) == null ? void 0 : a.code) === 4;
84
- s(), o && ((l = this.nativeAudioCleanup) == null || l.call(this), this.attachHlsJs(t));
85
- }, s = () => {
84
+ r(), o && ((l = this.nativeAudioCleanup) == null || l.call(this), this.attachHlsJs(t));
85
+ }, r = () => {
86
86
  this.video.removeEventListener("loadedmetadata", e), this.video.removeEventListener("error", i), this.nativeHlsProbe = null;
87
87
  };
88
- this.video.addEventListener("loadedmetadata", e), this.video.addEventListener("error", i), this.nativeHlsProbe = s;
88
+ this.video.addEventListener("loadedmetadata", e), this.video.addEventListener("error", i), this.nativeHlsProbe = r;
89
89
  }
90
90
  /** Safari native HLS: alternatif ses izleri `video.audioTracks`'te (diğer tarayıcılarda bu API yok). */
91
91
  watchNativeAudioTracks() {
92
92
  const t = this.video.audioTracks;
93
93
  if (!t) return;
94
94
  const e = () => {
95
- const i = Array.from(t, (s, o) => ({ index: o, label: s.label || s.language || `${o + 1}`, lang: s.language }));
96
- this.callbacks.onAudioTracksChanged(i, Array.from(t).findIndex((s) => s.enabled));
95
+ const i = Array.from(t, (r, o) => ({ index: o, label: r.label || r.language || `${o + 1}`, lang: r.language }));
96
+ this.callbacks.onAudioTracksChanged(i, Array.from(t).findIndex((r) => r.enabled));
97
97
  };
98
98
  for (const i of ["addtrack", "removetrack", "change"]) t.addEventListener(i, e);
99
99
  this.nativeAudioCleanup = () => {
@@ -111,23 +111,23 @@ class Be {
111
111
  }
112
112
  const i = new e(this.buildHlsConfig());
113
113
  this.hls = i, this.engineInfo = { engine: "hls.js" };
114
- let s = !1, o = !1;
114
+ let r = !1, o = !1;
115
115
  i.on(e.Events.ERROR, (c, p) => {
116
- var m, f, v, x, d, u;
116
+ var u, f, y, x, k, w;
117
117
  if (this.hls === i) {
118
- const b = p;
119
- (u = (d = this.callbacks).onStreamError) == null || u.call(d, {
118
+ const d = p;
119
+ (w = (k = this.callbacks).onStreamError) == null || w.call(k, {
120
120
  type: String(p.type),
121
121
  details: String(p.details),
122
122
  fatal: !!p.fatal,
123
- url: b.url ?? ((m = b.frag) == null ? void 0 : m.url) ?? ((f = b.context) == null ? void 0 : f.url),
124
- httpStatus: (v = b.response) == null ? void 0 : v.code,
125
- reason: b.reason ?? ((x = b.error) == null ? void 0 : x.message)
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
128
  if (!p.fatal || this.hls !== i) return;
129
- const g = [e.ErrorDetails.MANIFEST_LOAD_ERROR, e.ErrorDetails.MANIFEST_LOAD_TIMEOUT].includes(p.details);
130
- if (!s && g && this.video.canPlayType("application/vnd.apple.mpegurl") !== "") {
129
+ const m = [e.ErrorDetails.MANIFEST_LOAD_ERROR, e.ErrorDetails.MANIFEST_LOAD_TIMEOUT].includes(p.details);
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
  }
@@ -139,30 +139,30 @@ class Be {
139
139
  });
140
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
- s = !0, this.callbacks.onLevelsChanged(a(), i.currentLevel);
142
+ r = !0, this.callbacks.onLevelsChanged(a(), i.currentLevel);
143
143
  }), i.on(e.Events.LEVEL_SWITCHED, (c, p) => {
144
144
  this.callbacks.onLevelsChanged(a(), i.autoLevelEnabled ? -1 : p.level);
145
145
  });
146
146
  const l = () => i.audioTracks.map((c, p) => ({ index: p, label: c.name || c.lang || `${p + 1}`, lang: c.lang ?? "" }));
147
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
- var g;
149
- for (const m of p.tracks) {
150
- const f = m.subtitleTrack, v = f ? `sub:${f.id}` : `cc:${m._id ?? m.label}`, x = m.kind === "captions" ? "captions" : "subtitles";
151
- this.streamTextTracks.set(v, { id: v, kind: x, label: m.label, lang: (f == null ? void 0 : f.lang) ?? ((g = m.closedCaptions) == null ? void 0 : g.lang) ?? "" });
148
+ var m;
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
154
  }), i.on(e.Events.CUES_PARSED, (c, p) => {
155
- const g = p.type === "subtitles" && p.subtitleTrack ? `sub:${p.subtitleTrack.id}` : `cc:${p.track}`;
156
- this.callbacks.onCues(g, p.cues);
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() {
160
160
  const t = this.hlsOptions.config ?? {}, e = { enableWorker: !0, renderTextTracksNatively: !1, liveDurationInfinity: !0, ...t };
161
161
  if (this.hlsOptions.withCredentials) {
162
- const { xhrSetup: i, fetchSetup: s } = t;
162
+ const { xhrSetup: i, fetchSetup: r } = t;
163
163
  e.xhrSetup = (o, a, l) => (o.withCredentials = !0, i == null ? void 0 : i(o, a, l)), e.fetchSetup = (o, a) => {
164
164
  const l = { ...a, credentials: "include" };
165
- return s ? s(o, l) : new Request(o.url, l);
165
+ return r ? r(o, l) : new Request(o.url, l);
166
166
  };
167
167
  }
168
168
  return e;
@@ -190,8 +190,8 @@ class Be {
190
190
  return;
191
191
  }
192
192
  const e = this.video.audioTracks;
193
- e && (e[t] && (e[t].enabled = !0), Array.from(e).forEach((i, s) => {
194
- s !== t && (i.enabled = !1);
193
+ e && (e[t] && (e[t].enabled = !0), Array.from(e).forEach((i, r) => {
194
+ r !== t && (i.enabled = !1);
195
195
  }));
196
196
  }
197
197
  /**
@@ -208,7 +208,7 @@ class Be {
208
208
  (t = this.nativeHlsProbe) == null || t.call(this), (e = this.nativeAudioCleanup) == null || e.call(this), this.hls && (this.hls.destroy(), this.hls = null);
209
209
  }
210
210
  }
211
- const V = {
211
+ const U = {
212
212
  mp4: "video/mp4",
213
213
  m4v: "video/mp4",
214
214
  webm: "video/webm",
@@ -221,118 +221,118 @@ const V = {
221
221
  wav: "audio/wav",
222
222
  flac: "audio/flac"
223
223
  };
224
- function fe(n) {
225
- var s, o;
224
+ function ve(n) {
225
+ var r, o;
226
226
  const t = be(n.src, n.type);
227
227
  if (t !== "unknown") return t;
228
- const e = (o = (s = n.type) == null ? void 0 : s.split(";")[0]) == null ? void 0 : o.trim().toLowerCase();
228
+ const e = (o = (r = n.type) == null ? void 0 : r.split(";")[0]) == null ? void 0 : o.trim().toLowerCase();
229
229
  if (e) {
230
- const a = Object.keys(V).find((l) => V[l] === e);
230
+ const a = Object.keys(U).find((l) => U[l] === e);
231
231
  if (a) return a;
232
232
  }
233
233
  const i = /\.([a-z0-9]{2,5})(?:$|[?#])/i.exec(n.src);
234
234
  return i ? i[1].toLowerCase() : "other";
235
235
  }
236
- function Re(n, t) {
236
+ function ze(n, t) {
237
237
  const e = [];
238
- for (const s of n) {
239
- const o = fe(s), a = e.find((l) => l.format === o);
240
- a ? a.sources.push(s) : e.push({ format: o, sources: [s] });
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
241
  }
242
242
  if (!(t != null && t.length)) return e;
243
- const i = (s) => {
244
- const o = t.findIndex((a) => a.toLowerCase() === s);
243
+ const i = (r) => {
244
+ const o = t.findIndex((a) => a.toLowerCase() === r);
245
245
  return o === -1 ? t.length : o;
246
246
  };
247
- return e.sort((s, o) => i(s.format) - i(o.format));
247
+ return e.sort((r, o) => i(r.format) - i(o.format));
248
248
  }
249
- function ze(n, t) {
249
+ function Ne(n, t) {
250
250
  var i;
251
251
  if (n.format === "hls") {
252
- const s = window;
253
- return !(typeof s.MediaSource < "u" || typeof s.ManagedMediaSource < "u") && t.canPlayType("application/vnd.apple.mpegurl") === "";
252
+ const r = window;
253
+ return !(typeof r.MediaSource < "u" || typeof r.ManagedMediaSource < "u") && t.canPlayType("application/vnd.apple.mpegurl") === "";
254
254
  }
255
- const e = ((i = n.sources.find((s) => s.type)) == null ? void 0 : i.type) ?? V[n.format];
255
+ const e = ((i = n.sources.find((r) => r.type)) == null ? void 0 : i.type) ?? U[n.format];
256
256
  return !!e && t.canPlayType(e) === "";
257
257
  }
258
- function T(n) {
258
+ function A(n) {
259
259
  if (!Number.isFinite(n) || n < 0) return "0:00";
260
- const t = Math.floor(n), e = Math.floor(t / 3600), i = Math.floor(t % 3600 / 60), s = t % 60, o = e > 0 ? String(i).padStart(2, "0") : String(i), a = String(s).padStart(2, "0");
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");
261
261
  return e > 0 ? `${e}:${o}:${a}` : `${o}:${a}`;
262
262
  }
263
- const Oe = 10, Ne = 1;
264
- class Ie {
263
+ const Oe = 10, Ie = 1;
264
+ class Fe {
265
265
  constructor(t, e) {
266
- r(this, "el");
267
- r(this, "trackEl");
268
- r(this, "chaptersEl", null);
269
- r(this, "chapters", []);
266
+ s(this, "el");
267
+ s(this, "trackEl");
268
+ s(this, "chaptersEl", null);
269
+ s(this, "chapters", []);
270
270
  /** İmlecin üstündeki zaman (varsayılan, plugin gerektirmez) — kendi zamanını gösteren plugin'ler `suppressHoverTime` ile gizler. */
271
- r(this, "hoverTimeEl");
272
- r(this, "hoverTimeSuppressors", /* @__PURE__ */ new Set());
273
- r(this, "playedEl");
274
- r(this, "bufferedEl");
275
- r(this, "thumbEl");
276
- r(this, "hoverDotEl");
277
- r(this, "video");
278
- r(this, "labels");
279
- r(this, "dragging", !1);
280
- r(this, "markerEls", []);
281
- r(this, "trackWidth", 0);
282
- r(this, "resizeObserver");
283
- r(this, "rafId", null);
271
+ s(this, "hoverTimeEl");
272
+ s(this, "hoverTimeSuppressors", /* @__PURE__ */ new Set());
273
+ s(this, "playedEl");
274
+ s(this, "bufferedEl");
275
+ s(this, "thumbEl");
276
+ s(this, "hoverDotEl");
277
+ s(this, "video");
278
+ s(this, "labels");
279
+ s(this, "dragging", !1);
280
+ s(this, "markerEls", []);
281
+ s(this, "trackWidth", 0);
282
+ s(this, "resizeObserver");
283
+ s(this, "rafId", null);
284
284
  /** Canlıda hover zamanını başka bir bileşen gösteriyor mu (live-wall-clock tooltip'i) — üst üste binmesin. */
285
- r(this, "liveHoverHandled", !1);
286
- r(this, "onHoverMove", (t) => {
285
+ s(this, "liveHoverHandled", !1);
286
+ s(this, "onHoverMove", (t) => {
287
287
  const e = this.timeline(), i = this.ratioAtClientX(t.clientX);
288
288
  if (e && !this.dragging ? (this.hoverDotEl.style.transform = `translate(${this.xAtRatio(i)}px, -50%) translateX(-50%)`, this.hoverDotEl.setAttribute("data-visible", "")) : this.hoverDotEl.removeAttribute("data-visible"), this.hoverTimeSuppressors.size || !e || e.live && this.liveHoverHandled) {
289
289
  this.hoverTimeEl.removeAttribute("data-visible");
290
290
  return;
291
291
  }
292
- const s = e.start + i * (e.end - e.start);
293
- this.hoverTimeEl.textContent = e.live ? `-${T(e.end - s)}` : T(s), this.hoverTimeEl.setAttribute("data-visible", "");
292
+ const r = e.start + i * (e.end - e.start);
293
+ this.hoverTimeEl.textContent = e.live ? `-${A(e.end - r)}` : A(r), this.hoverTimeEl.setAttribute("data-visible", "");
294
294
  const o = this.hoverTimeEl.offsetWidth, a = Math.min(Math.max(this.layoutXAtClientX(t.clientX) - o / 2, 0), Math.max(this.trackWidth - o, 0));
295
295
  this.hoverTimeEl.style.transform = `translateX(${a}px)`;
296
296
  });
297
- r(this, "onHoverLeave", () => {
297
+ s(this, "onHoverLeave", () => {
298
298
  this.hoverTimeEl.removeAttribute("data-visible"), this.hoverDotEl.removeAttribute("data-visible");
299
299
  });
300
- r(this, "onPointerDown", (t) => {
300
+ s(this, "onPointerDown", (t) => {
301
301
  this.dragging = !0, this.hoverDotEl.removeAttribute("data-visible"), this.el.setPointerCapture(t.pointerId), this.seekToRatio(this.ratioFromEvent(t)), this.el.addEventListener("pointermove", this.onPointerMove), this.el.addEventListener("pointerup", this.onPointerUp);
302
302
  });
303
- r(this, "onPointerMove", (t) => {
303
+ s(this, "onPointerMove", (t) => {
304
304
  this.dragging && this.seekToRatio(this.ratioFromEvent(t));
305
305
  });
306
- r(this, "onPointerUp", (t) => {
306
+ s(this, "onPointerUp", (t) => {
307
307
  this.dragging = !1, this.el.releasePointerCapture(t.pointerId), this.el.removeEventListener("pointermove", this.onPointerMove), this.el.removeEventListener("pointerup", this.onPointerUp);
308
308
  });
309
309
  /** Odaktayken ←/→ sarma süresi (sn) — player'ın klavye kısayoluyla aynı (options.keyboardSeekStep). */
310
- r(this, "keyboardStep", 5);
310
+ s(this, "keyboardStep", 5);
311
311
  /** Odaktayken ok tuşuyla sarıldığında (sn, negatif = geri) — sarma bildirimi için. */
312
- r(this, "onKeyboardSeek", null);
313
- r(this, "onKeyDown", (t) => {
314
- var i, s;
312
+ s(this, "onKeyboardSeek", null);
313
+ s(this, "onKeyDown", (t) => {
314
+ var i, r;
315
315
  const e = this.timeline();
316
- e && (t.key === "ArrowRight" ? (this.video.currentTime = Math.min(e.end, this.video.currentTime + this.keyboardStep), (i = this.onKeyboardSeek) == null || i.call(this, this.keyboardStep), t.preventDefault()) : t.key === "ArrowLeft" && (this.video.currentTime = Math.max(e.start, this.video.currentTime - this.keyboardStep), (s = this.onKeyboardSeek) == null || s.call(this, -this.keyboardStep), t.preventDefault()));
316
+ e && (t.key === "ArrowRight" ? (this.video.currentTime = Math.min(e.end, this.video.currentTime + this.keyboardStep), (i = this.onKeyboardSeek) == null || i.call(this, this.keyboardStep), t.preventDefault()) : t.key === "ArrowLeft" && (this.video.currentTime = Math.max(e.start, this.video.currentTime - this.keyboardStep), (r = this.onKeyboardSeek) == null || r.call(this, -this.keyboardStep), t.preventDefault()));
317
317
  });
318
- r(this, "startLoop", () => {
318
+ s(this, "startLoop", () => {
319
319
  if (this.rafId !== null) return;
320
320
  const t = () => {
321
321
  this.render(), this.rafId = requestAnimationFrame(t);
322
322
  };
323
323
  this.rafId = requestAnimationFrame(t);
324
324
  });
325
- r(this, "stopLoop", () => {
325
+ s(this, "stopLoop", () => {
326
326
  this.rafId !== null && (cancelAnimationFrame(this.rafId), this.rafId = null), this.render();
327
327
  });
328
- r(this, "render", () => {
328
+ s(this, "render", () => {
329
329
  const t = this.timeline();
330
330
  if (this.el.toggleAttribute("data-no-duration", !t), this.el.toggleAttribute("data-live", !!(t != null && t.live)), !t) {
331
331
  this.hoverTimeEl.removeAttribute("data-visible"), this.hoverDotEl.removeAttribute("data-visible"), this.playedEl.style.transform = "scaleX(0)", this.thumbEl.style.translate = "-50% 0", this.bufferedEl.style.transform = "scaleX(0)";
332
332
  return;
333
333
  }
334
- const e = t.end - t.start, i = (l) => Math.min(1, Math.max(0, (l - t.start) / e)), s = i(this.video.currentTime);
335
- this.thumbEl.style.translate = `calc(${this.xAtRatio(s)}px - 50%) 0`;
334
+ const e = t.end - t.start, i = (l) => Math.min(1, Math.max(0, (l - t.start) / e)), r = i(this.video.currentTime);
335
+ this.thumbEl.style.translate = `calc(${this.xAtRatio(r)}px - 50%) 0`;
336
336
  let o = 0;
337
337
  for (let l = 0; l < this.video.buffered.length; l++)
338
338
  this.video.buffered.start(l) <= this.video.currentTime && (o = Math.max(o, this.video.buffered.end(l)));
@@ -340,10 +340,10 @@ class Ie {
340
340
  if (this.chapters.length)
341
341
  for (const l of this.chapters) {
342
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(s)})`, l.bufferedEl.style.transform = `scaleX(${c(a)})`;
343
+ l.playedEl.style.transform = `scaleX(${c(r)})`, l.bufferedEl.style.transform = `scaleX(${c(a)})`;
344
344
  }
345
345
  else
346
- this.playedEl.style.transform = `scaleX(${s})`, this.bufferedEl.style.transform = `scaleX(${a})`;
346
+ this.playedEl.style.transform = `scaleX(${r})`, this.bufferedEl.style.transform = `scaleX(${a})`;
347
347
  this.el.setAttribute("aria-valuemin", String(Math.floor(t.start))), this.el.setAttribute("aria-valuemax", String(Math.floor(t.end))), this.el.setAttribute("aria-valuenow", String(Math.floor(this.video.currentTime)));
348
348
  });
349
349
  this.video = t, this.labels = e, this.el = document.createElement("div"), this.el.setAttribute("part", "seek-bar"), this.el.className = "hp-seekbar hp:relative hp:h-[var(--hp-seek-hit-h)] hp:flex hp:items-center hp:cursor-pointer hp:group hp:touch-none", this.el.setAttribute("role", "slider"), this.el.setAttribute("tabindex", "0"), this.el.setAttribute("aria-label", e.seekBar), this.el.setAttribute("aria-valuemin", "0");
@@ -362,8 +362,8 @@ class Ie {
362
362
  if (t !== 1 / 0) return null;
363
363
  const { seekable: e } = this.video;
364
364
  if (!e.length) return null;
365
- const i = e.start(0), s = e.end(e.length - 1);
366
- return s - i >= Oe ? { start: i, end: s, live: !0 } : null;
365
+ const i = e.start(0), r = e.end(e.length - 1);
366
+ return r - i >= Oe ? { start: i, end: r, live: !0 } : null;
367
367
  }
368
368
  /** Kendi zamanını gösteren plugin'ler (sprite/segments) varsayılan hover zamanını gizler — keyed set. */
369
369
  suppressHoverTime(t, e) {
@@ -377,10 +377,10 @@ class Ie {
377
377
  const e = this.layoutXAtClientX(t);
378
378
  if (!this.chapters.length) return this.trackWidth > 0 ? Math.min(1, Math.max(0, e / this.trackWidth)) : 0;
379
379
  for (let i = 0; i < this.chapters.length; i++) {
380
- const s = this.chapters[i], o = this.chapters[i + 1], a = o ? o.left : 1 / 0;
380
+ const r = this.chapters[i], o = this.chapters[i + 1], a = o ? o.left : 1 / 0;
381
381
  if (e < a || !o) {
382
- const l = s.width > 0 ? Math.min(1, Math.max(0, (e - s.left) / s.width)) : 0;
383
- return s.start + l * (s.end - s.start);
382
+ const l = r.width > 0 ? Math.min(1, Math.max(0, (e - r.left) / r.width)) : 0;
383
+ return r.start + l * (r.end - r.start);
384
384
  }
385
385
  }
386
386
  return 1;
@@ -388,20 +388,20 @@ class Ie {
388
388
  /** 0–1 zaman oranının seek bar üzerindeki px konumu (thumb için). */
389
389
  xAtRatio(t) {
390
390
  if (!this.chapters.length) return t * this.trackWidth;
391
- const e = this.chapters.find((o) => t < o.end) ?? this.chapters[this.chapters.length - 1], i = e.end - e.start, s = i > 0 ? Math.min(1, Math.max(0, (t - e.start) / i)) : 0;
392
- return e.left + s * e.width;
391
+ const e = this.chapters.find((o) => t < o.end) ?? this.chapters[this.chapters.length - 1], i = e.end - e.start, r = i > 0 ? Math.min(1, Math.max(0, (t - e.start) / i)) : 0;
392
+ return e.left + r * e.width;
393
393
  }
394
394
  /** Track'i sıralı, 0→1'i kesintisiz kapsayan oran aralıklarına göre ayrı parçalara böler. */
395
395
  setChapters(t) {
396
396
  if (this.clearChapters(), !t.length) return [];
397
397
  const e = document.createElement("div");
398
398
  return e.className = "hp-chapters", this.chapters = t.map((i) => {
399
- const s = document.createElement("div");
400
- s.className = "hp-chapter", s.setAttribute("part", "segment-band"), s.style.flex = `${Math.max(i.end - i.start, 0)} 1 0px`;
399
+ const r = document.createElement("div");
400
+ r.className = "hp-chapter", r.setAttribute("part", "segment-band"), r.style.flex = `${Math.max(i.end - i.start, 0)} 1 0px`;
401
401
  const o = document.createElement("div");
402
402
  o.className = "hp-chapter-fill hp-chapter-buffered";
403
403
  const a = document.createElement("div");
404
- return a.className = "hp-chapter-fill hp-chapter-played", i.color && (a.style.background = i.color), s.append(o, a), e.appendChild(s), { ...i, el: s, bufferedEl: o, playedEl: a, left: 0, width: 0 };
404
+ return a.className = "hp-chapter-fill hp-chapter-played", i.color && (a.style.background = i.color), r.append(o, a), e.appendChild(r), { ...i, el: r, bufferedEl: o, playedEl: a, left: 0, width: 0 };
405
405
  }), this.trackEl.style.display = "none", this.trackEl.after(e), this.chaptersEl = e, this.measureChapters(), this.render(), this.chapters.map((i) => i.el);
406
406
  }
407
407
  clearChapters() {
@@ -425,15 +425,15 @@ class Ie {
425
425
  if (!this.chapters.length) return;
426
426
  const t = this.el.getBoundingClientRect(), e = t.width > 0 ? this.trackWidth / t.width : 1;
427
427
  for (const i of this.chapters) {
428
- const s = i.el.getBoundingClientRect();
429
- i.left = (s.left - t.left) * e, i.width = s.width * e;
428
+ const r = i.el.getBoundingClientRect();
429
+ i.left = (r.left - t.left) * e, i.width = r.width * e;
430
430
  }
431
431
  }
432
432
  seekToRatio(t) {
433
433
  const e = this.timeline();
434
434
  if (!e) return;
435
435
  const i = e.start + t * (e.end - e.start);
436
- this.video.currentTime = e.live ? Math.min(i, e.end - Ne) : i, this.render();
436
+ this.video.currentTime = e.live ? Math.min(i, e.end - Ie) : i, this.render();
437
437
  }
438
438
  /** 0–1 arası oranda, seek bar üzerine ince bir işaret çizgisi ekler (ör. loop A/B noktaları). */
439
439
  addMarker(t, e = "") {
@@ -451,63 +451,63 @@ class Ie {
451
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();
452
452
  }
453
453
  }
454
- function S(n, t = "") {
454
+ function L(n, t = "") {
455
455
  const e = document.createElement("i");
456
456
  return e.className = `hp-icon hp-icon-${n}${t ? ` ${t}` : ""}`, e.setAttribute("aria-hidden", "true"), e;
457
457
  }
458
- function B(n, t) {
458
+ function R(n, t) {
459
459
  n.className = n.className.replace(/hp-icon-[\w-]+/, `hp-icon-${t}`);
460
460
  }
461
- const z = 0.05, Fe = 150;
462
- class De {
461
+ const N = 0.05, De = 150;
462
+ class He {
463
463
  constructor(t, e, i) {
464
- r(this, "el");
464
+ s(this, "el");
465
465
  /** Dokunmatikte ses butonu gizli; sessiz oynarken görünen "Sesi aç" rozeti (chrome dışında monte edilir, otomatik gizlenmez). */
466
- r(this, "unmuteBadge");
467
- r(this, "unmuteText");
468
- r(this, "button");
469
- r(this, "iconEl");
470
- r(this, "slider");
471
- r(this, "sliderFill");
472
- r(this, "video");
473
- r(this, "labels");
474
- r(this, "adHooks");
475
- r(this, "dragging", !1);
476
- r(this, "hideTimer", null);
477
- r(this, "openNow", () => {
466
+ s(this, "unmuteBadge");
467
+ s(this, "unmuteText");
468
+ s(this, "button");
469
+ s(this, "iconEl");
470
+ s(this, "slider");
471
+ s(this, "sliderFill");
472
+ s(this, "video");
473
+ s(this, "labels");
474
+ s(this, "adHooks");
475
+ s(this, "dragging", !1);
476
+ s(this, "hideTimer", null);
477
+ s(this, "openNow", () => {
478
478
  this.hideTimer && (clearTimeout(this.hideTimer), this.hideTimer = null), this.slider.style.opacity = "1", this.slider.style.pointerEvents = "auto";
479
479
  });
480
- r(this, "scheduleHide", () => {
480
+ s(this, "scheduleHide", () => {
481
481
  this.hideTimer && clearTimeout(this.hideTimer), this.hideTimer = setTimeout(() => {
482
482
  this.hideTimer = null, this.slider.style.opacity = "0", this.slider.style.pointerEvents = "none";
483
- }, Fe);
483
+ }, De);
484
484
  });
485
- r(this, "onWheel", (t) => {
485
+ s(this, "onWheel", (t) => {
486
486
  if (t.preventDefault(), this.adHooks.isAdActive()) {
487
- const s = this.adHooks.getVolume();
488
- this.adHooks.setVolume(Math.min(1, Math.max(0, s + (t.deltaY < 0 ? z : -z)))), this.render();
487
+ const r = this.adHooks.getVolume();
488
+ this.adHooks.setVolume(Math.min(1, Math.max(0, r + (t.deltaY < 0 ? N : -N)))), this.render();
489
489
  return;
490
490
  }
491
- const e = this.video.muted ? 0 : this.video.volume, i = Math.min(1, Math.max(0, e + (t.deltaY < 0 ? z : -z)));
491
+ const e = this.video.muted ? 0 : this.video.volume, i = Math.min(1, Math.max(0, e + (t.deltaY < 0 ? N : -N)));
492
492
  this.video.volume = i, this.video.muted = i === 0;
493
493
  });
494
- r(this, "onToggleMute", () => {
494
+ s(this, "onToggleMute", () => {
495
495
  if (this.adHooks.isAdActive()) {
496
496
  this.adHooks.toggleMute(), this.render();
497
497
  return;
498
498
  }
499
499
  this.video.muted = !this.video.muted, !this.video.muted && this.video.volume === 0 && (this.video.volume = 0.5);
500
500
  });
501
- r(this, "onSliderPointerDown", (t) => {
501
+ s(this, "onSliderPointerDown", (t) => {
502
502
  this.dragging = !0, this.slider.setPointerCapture(t.pointerId), this.setFromClientY(t.clientY), this.slider.addEventListener("pointermove", this.onSliderPointerMove), this.slider.addEventListener("pointerup", this.onSliderPointerUp);
503
503
  });
504
- r(this, "onSliderPointerMove", (t) => {
504
+ s(this, "onSliderPointerMove", (t) => {
505
505
  this.dragging && this.setFromClientY(t.clientY);
506
506
  });
507
- r(this, "onSliderPointerUp", (t) => {
507
+ s(this, "onSliderPointerUp", (t) => {
508
508
  this.dragging = !1, this.slider.releasePointerCapture(t.pointerId), this.slider.removeEventListener("pointermove", this.onSliderPointerMove), this.slider.removeEventListener("pointerup", this.onSliderPointerUp);
509
509
  });
510
- r(this, "onSliderKeyDown", (t) => {
510
+ s(this, "onSliderKeyDown", (t) => {
511
511
  if (this.adHooks.isAdActive()) {
512
512
  if (t.key === "ArrowUp")
513
513
  this.adHooks.setVolume(Math.min(1, this.adHooks.getVolume() + 0.1)), t.preventDefault();
@@ -520,19 +520,19 @@ class De {
520
520
  }
521
521
  t.key === "ArrowUp" ? (this.video.volume = Math.min(1, this.video.volume + 0.1), this.video.muted = !1, t.preventDefault()) : t.key === "ArrowDown" && (this.video.volume = Math.max(0, this.video.volume - 0.1), t.preventDefault());
522
522
  });
523
- r(this, "render", () => {
523
+ s(this, "render", () => {
524
524
  const t = this.adHooks.isAdActive() ? this.adHooks.getVolume() : this.video.muted ? 0 : this.video.volume;
525
525
  this.sliderFill.style.height = `${t * 100}%`, this.slider.setAttribute("aria-valuenow", String(Math.round(t * 100)));
526
526
  const e = t === 0 ? this.labels.unmute : this.labels.mute;
527
527
  this.button.setAttribute("aria-label", e);
528
528
  const i = this.adHooks.isAdActive() || !this.video.paused;
529
- this.unmuteBadge.toggleAttribute("data-visible", t === 0 && i), this.unmuteText.textContent = this.labels.unmute, t === 0 ? B(this.iconEl, "volume-muted") : t < 0.5 ? B(this.iconEl, "volume-low") : B(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");
530
530
  });
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(S("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) => {
532
532
  o.stopPropagation(), this.unmute();
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 = S("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");
534
- const s = document.createElement("div");
535
- s.className = "hp:relative hp:w-1.5 hp:h-full hp:rounded-full hp:bg-on-surface/25 hp:overflow-hidden", this.slider.appendChild(s), this.sliderFill = document.createElement("div"), this.sliderFill.className = "hp:absolute hp:inset-x-0 hp:bottom-0 hp:bg-accent", s.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();
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");
534
+ const r = document.createElement("div");
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();
536
536
  }
537
537
  /** "Sesi aç" rozeti: yalnızca AÇAR (toggle değil) — reklam sırasında reklamın sesini. */
538
538
  unmute() {
@@ -562,32 +562,32 @@ class De {
562
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();
563
563
  }
564
564
  }
565
- const He = '<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>', D = 8, A = 8, Y = 100, O = 256;
566
- class Ge {
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 {
567
567
  constructor(t, e, i) {
568
- r(this, "el");
569
- r(this, "button");
570
- r(this, "panel");
571
- r(this, "video");
572
- r(this, "playbackRates");
573
- r(this, "labels");
574
- r(this, "qualities", []);
575
- r(this, "activeQualityLabel");
576
- r(this, "captions", []);
577
- r(this, "activeCaptionLabel");
578
- r(this, "captionAppearance", null);
579
- r(this, "qrResumeToggle", null);
580
- r(this, "open", !1);
568
+ s(this, "el");
569
+ s(this, "button");
570
+ s(this, "panel");
571
+ s(this, "video");
572
+ s(this, "playbackRates");
573
+ s(this, "labels");
574
+ s(this, "qualities", []);
575
+ s(this, "activeQualityLabel");
576
+ s(this, "captions", []);
577
+ s(this, "activeCaptionLabel");
578
+ s(this, "captionAppearance", null);
579
+ s(this, "qrResumeToggle", null);
580
+ s(this, "open", !1);
581
581
  /** Menü açılıp kapanınca — HopePlayerElement açıkken kontrolleri otomatik gizlemez. */
582
- r(this, "onOpenChange", null);
583
- r(this, "panelObserver");
584
- r(this, "currentPanel", "main");
585
- r(this, "submenus", []);
582
+ s(this, "onOpenChange", null);
583
+ s(this, "panelObserver");
584
+ s(this, "currentPanel", "main");
585
+ s(this, "submenus", []);
586
586
  /**
587
587
  * Yön + yükseklik player'a göre: kompakt düzende (buton üst bardaysa) aşağı açılır; her iki yönde de
588
588
  * yükseklik player içinde kalan alanla sınırlı — küçük player'da menü dışarı taşmaz, kendi içinde kayar.
589
589
  */
590
- r(this, "fitToPlayer", () => {
590
+ s(this, "fitToPlayer", () => {
591
591
  var h;
592
592
  if (!this.open) return;
593
593
  const t = this.el.closest(".video-area");
@@ -596,23 +596,23 @@ class Ge {
596
596
  this.fitToViewport();
597
597
  return;
598
598
  }
599
- const e = t.getBoundingClientRect(), i = this.button.getBoundingClientRect(), s = this.el.getBoundingClientRect(), o = !!this.el.closest(".hp-top-bar");
599
+ const e = t.getBoundingClientRect(), i = this.button.getBoundingClientRect(), r = this.el.getBoundingClientRect(), o = !!this.el.closest(".hp-top-bar");
600
600
  this.panel.toggleAttribute("data-drop", o), Object.assign(this.panel.style, { top: "", bottom: "", marginTop: "", marginBottom: "" });
601
- const a = this.panel.scrollHeight, l = (o ? e.bottom - i.bottom : i.top - e.top) - D - A;
602
- if (a <= l || l >= Y) {
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
603
  this.panel.style.maxHeight = `${Math.min(O, l)}px`;
604
604
  return;
605
605
  }
606
- this.panel.style.maxHeight = `${Math.min(O, e.height - 2 * A)}px`, o ? Object.assign(this.panel.style, { top: `${e.top + A - s.top}px`, marginTop: "0" }) : Object.assign(this.panel.style, { bottom: `${s.bottom - (e.bottom - A)}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" });
607
607
  });
608
- r(this, "onDocumentClick", (t) => {
608
+ s(this, "onDocumentClick", (t) => {
609
609
  this.open && !t.composedPath().includes(this.el) && this.close();
610
610
  });
611
- r(this, "backToCaptionSettings", () => {
611
+ s(this, "backToCaptionSettings", () => {
612
612
  this.currentPanel = "captions-settings", this.renderCaptionSettings();
613
613
  });
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(S("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", (s) => {
615
- s.stopPropagation(), this.toggle();
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) => {
615
+ r.stopPropagation(), this.toggle();
616
616
  }), document.addEventListener("click", this.onDocumentClick, !0), this.renderMain();
617
617
  }
618
618
  setQualities(t, e) {
@@ -657,8 +657,8 @@ class Ge {
657
657
  fitToViewport() {
658
658
  const t = this.button.getBoundingClientRect();
659
659
  Object.assign(this.panel.style, { top: "", bottom: "", marginTop: "", marginBottom: "" });
660
- const e = this.panel.scrollHeight, i = t.top - D - A, s = window.innerHeight - t.bottom - D - A, o = i < Math.min(e, O) && s > i;
661
- this.panel.toggleAttribute("data-drop", o), this.panel.style.maxHeight = `${Math.max(Y, Math.min(O, o ? s : 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`;
662
662
  }
663
663
  /** Düzen değişince (ör. kompakt ↔ normal) açık menüyü kapat — eski konumunda asılı kalmasın. */
664
664
  closeMenu() {
@@ -669,14 +669,14 @@ class Ge {
669
669
  this.open = !1, this.panel.classList.add("hp:hidden"), (t = this.onOpenChange) == null || t.call(this, !1);
670
670
  }
671
671
  row(t, e, i) {
672
- const s = document.createElement("button");
673
- return s.type = "button", s.className = "hp:flex hp:items-center hp:justify-between 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:hover:bg-on-surface/10", s.innerHTML = `<span>${t}</span><span class="hp:text-on-surface-muted hp:text-xs hp:flex hp:items-center hp:gap-1">${e}</span>`, s.addEventListener("click", i), s;
672
+ const r = document.createElement("button");
673
+ return r.type = "button", r.className = "hp:flex hp:items-center hp:justify-between 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:hover:bg-on-surface/10", r.innerHTML = `<span>${t}</span><span class="hp:text-on-surface-muted hp:text-xs hp:flex hp:items-center hp:gap-1">${e}</span>`, r.addEventListener("click", i), r;
674
674
  }
675
675
  backRow(t, e) {
676
676
  const i = document.createElement("button");
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(S("chevron-left", "hp:text-sm"));
678
- const s = document.createElement("span");
679
- return s.textContent = t, i.appendChild(s), i.addEventListener("click", e), i;
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"));
678
+ const r = document.createElement("span");
679
+ return r.textContent = t, i.appendChild(r), i.addEventListener("click", e), i;
680
680
  }
681
681
  render() {
682
682
  if (this.currentPanel === "main") this.renderMain();
@@ -742,7 +742,7 @@ class Ge {
742
742
  renderQuality() {
743
743
  this.panel.innerHTML = "", this.panel.appendChild(this.backRow(this.labels.quality, () => this.renderMain()));
744
744
  for (const t of this.qualities) {
745
- const e = t.label === this.activeQualityLabel, i = this.row(t.label, t.locked ? He : 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>' : "", () => {
746
746
  t.onSelect(), this.close();
747
747
  });
748
748
  t.locked && i.setAttribute("data-locked", ""), this.panel.appendChild(i);
@@ -769,7 +769,7 @@ class Ge {
769
769
  }
770
770
  /** Altyazı → Altyazı ayarları: boyut, arka plan / yazı rengi, konumu sıfırla — her satırda o anki değer. */
771
771
  renderCaptionSettings() {
772
- var i, s, o;
772
+ var i, r, o;
773
773
  this.panel.innerHTML = "", this.panel.appendChild(
774
774
  this.backRow(this.labels.captionSettings, () => {
775
775
  this.currentPanel = "captions", this.renderCaptions();
@@ -783,7 +783,7 @@ class Ge {
783
783
  this.currentPanel = "captions-size", this.renderCaptionsSize();
784
784
  })
785
785
  ), this.panel.appendChild(
786
- this.row(t.bgColorLabel, e((s = t.getBgColorOptions().find((a) => a.active)) == null ? void 0 : s.value), () => {
786
+ this.row(t.bgColorLabel, e((r = t.getBgColorOptions().find((a) => a.active)) == null ? void 0 : r.value), () => {
787
787
  this.currentPanel = "captions-bg", this.renderCaptionColorPanel("bg");
788
788
  })
789
789
  ), this.panel.appendChild(
@@ -812,16 +812,16 @@ class Ge {
812
812
  this.panel.innerHTML = "";
813
813
  const e = this.captionAppearance, i = t === "bg" ? (e == null ? void 0 : e.bgColorLabel) ?? this.labels.captionBgColor : (e == null ? void 0 : e.textColorLabel) ?? this.labels.captionTextColor;
814
814
  if (this.panel.appendChild(this.backRow(i, this.backToCaptionSettings)), !e) return;
815
- const s = document.createElement("div");
816
- s.className = "hp:flex hp:flex-wrap hp:gap-2 hp:px-3 hp:py-2";
815
+ const r = document.createElement("div");
816
+ r.className = "hp:flex hp:flex-wrap hp:gap-2 hp:px-3 hp:py-2";
817
817
  const o = t === "bg" ? e.getBgColorOptions() : e.getTextColorOptions();
818
818
  for (const a of o) {
819
819
  const l = document.createElement("button");
820
820
  l.type = "button", l.setAttribute("aria-label", a.ariaLabel), l.className = "hp:w-7 hp:h-7 hp:rounded-full hp:cursor-pointer hp:flex-shrink-0 hp:border hp:border-on-surface/20", l.style.background = a.value, l.style.outline = a.active ? "2px solid currentColor" : "2px solid transparent", l.style.outlineOffset = "2px", l.addEventListener("click", () => {
821
821
  a.onSelect(), this.render();
822
- }), s.appendChild(l);
822
+ }), r.appendChild(l);
823
823
  }
824
- this.panel.appendChild(s);
824
+ this.panel.appendChild(r);
825
825
  }
826
826
  /** Dil sonradan değişince statik buton etiketini tazeler + mevcut panel zaten güncel `this.labels`'ı okuyarak yeniden render edilir. */
827
827
  refreshLabels() {
@@ -831,116 +831,116 @@ class Ge {
831
831
  document.removeEventListener("click", this.onDocumentClick, !0), this.panelObserver.disconnect();
832
832
  }
833
833
  }
834
- function ve(n, t) {
834
+ function ye(n, t) {
835
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;
836
836
  n.currentTime = Math.max(e, Math.min(i, n.currentTime + t));
837
837
  }
838
- const Ve = 15, _e = 480, Ue = 150, J = ["waiting", "seeking"], Z = ["playing", "canplay", "canplaythrough", "seeked", "pause", "error", "emptied"];
839
- function ee(n, t) {
840
- const { btn: e } = M("", `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}`);
841
841
  e.classList.add("hp-skip-btn"), e.setAttribute("part", t);
842
842
  const i = document.createElement("span");
843
843
  return i.className = "hp-skip-num", i.setAttribute("aria-hidden", "true"), e.appendChild(i), e.style.display = "none", { btn: e, num: i };
844
844
  }
845
- function L(n, t) {
845
+ function M(n, t) {
846
846
  n.setAttribute("aria-label", t);
847
847
  }
848
- function M(n, t, e) {
848
+ function B(n, t, e) {
849
849
  const i = document.createElement("button");
850
- i.type = "button", L(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 s = S(t, "hp:text-[length:var(--hp-ctrl-icon-size)]");
852
- return i.appendChild(s), { btn: i, icon: s };
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)]");
852
+ return i.appendChild(r), { btn: i, icon: r };
853
853
  }
854
- class qe {
855
- constructor(t, e, i, s) {
856
- r(this, "el");
857
- r(this, "seekBar");
858
- r(this, "volumePanel");
859
- r(this, "settingsMenu");
860
- r(this, "video");
861
- r(this, "labels");
862
- r(this, "playButton");
863
- r(this, "playIcon");
864
- r(this, "pipButton");
865
- r(this, "skipBack");
866
- r(this, "skipForward");
854
+ class je {
855
+ constructor(t, e, i, r) {
856
+ s(this, "el");
857
+ s(this, "seekBar");
858
+ s(this, "volumePanel");
859
+ s(this, "settingsMenu");
860
+ s(this, "video");
861
+ s(this, "labels");
862
+ s(this, "playButton");
863
+ s(this, "playIcon");
864
+ s(this, "pipButton");
865
+ s(this, "skipBack");
866
+ s(this, "skipForward");
867
867
  /** Etkin sarma süreleri (sn); null = buton gizli. */
868
- r(this, "skipSeconds", { back: null, forward: null });
869
- r(this, "seekingEnabled", !0);
870
- r(this, "leftGroup");
871
- r(this, "loadingTimer", null);
868
+ s(this, "skipSeconds", { back: null, forward: null });
869
+ s(this, "seekingEnabled", !0);
870
+ s(this, "leftGroup");
871
+ s(this, "loadingTimer", null);
872
872
  /** Halkayı açık tutan sebepler: 'media' (buffer bekleniyor) ve player'ın verdikleri (ör. 'preroll'). */
873
- r(this, "loadingReasons", /* @__PURE__ */ new Set());
873
+ s(this, "loadingReasons", /* @__PURE__ */ new Set());
874
874
  /** Preroll beklenirken video duraklatılmış olsa da kullanıcı oynatmak istedi — buton "duraklat" görünür. */
875
- r(this, "pendingPlay", !1);
875
+ s(this, "pendingPlay", !1);
876
876
  /** Sarma butonuyla sarıldığında (sn, negatif = geri) — sarma bildirimi için. */
877
- r(this, "onSkip", null);
878
- r(this, "fullscreenButton");
879
- r(this, "fullscreenIcon");
880
- r(this, "timeLabel");
877
+ s(this, "onSkip", null);
878
+ s(this, "fullscreenButton");
879
+ s(this, "fullscreenIcon");
880
+ s(this, "timeLabel");
881
881
  /** Reklam sırasında süre etiketinin yerinde: "Reklam 2/3 · 0:12". */
882
- r(this, "adInfoEl");
883
- r(this, "showRemaining", !1);
882
+ s(this, "adInfoEl");
883
+ s(this, "showRemaining", !1);
884
884
  /** Kompakt düzende (player < 480px) sağ grubun taşındığı üst bar; tam ekran altta kalır. */
885
- r(this, "topEl");
886
- r(this, "bottomRow");
887
- r(this, "rightGroup");
888
- r(this, "fullscreenSlot");
889
- r(this, "compact", !1);
885
+ s(this, "topEl");
886
+ s(this, "bottomRow");
887
+ s(this, "rightGroup");
888
+ s(this, "fullscreenSlot");
889
+ s(this, "compact", !1);
890
890
  /** İnce ses çubuğu (audio.layout: 'compact'): dar ekranda da tek satır — üst bar yok. */
891
- r(this, "forceInline", !1);
891
+ s(this, "forceInline", !1);
892
892
  /** İnce ses çubuğunda başlık / sanatçı (+ çalarken ekolayzır) — boşluk elemanının içinde. */
893
- r(this, "barMetaEl", null);
894
- r(this, "spacerEl");
895
- r(this, "resizeObserver");
896
- r(this, "liveBadge");
897
- r(this, "liveText");
898
- r(this, "adMode", !1);
893
+ s(this, "barMetaEl", null);
894
+ s(this, "spacerEl");
895
+ s(this, "resizeObserver");
896
+ s(this, "liveBadge");
897
+ s(this, "liveText");
898
+ s(this, "adMode", !1);
899
899
  /** Ses modu: tam ekran / PiP yok — dar düzende tam ekran kutusu da boş kalmasın. */
900
- r(this, "audioMode", !1);
901
- r(this, "callbacks");
902
- r(this, "row");
903
- r(this, "extraButtonAnchor");
900
+ s(this, "audioMode", !1);
901
+ s(this, "callbacks");
902
+ s(this, "row");
903
+ s(this, "extraButtonAnchor");
904
904
  /** Süre etiketine tıklama: geçen süre ↔ kalan süre. */
905
- r(this, "onTimeClick", (t) => {
905
+ s(this, "onTimeClick", (t) => {
906
906
  t.stopPropagation(), this.toggleTimeMode();
907
907
  });
908
- r(this, "renderPlayState", () => {
908
+ s(this, "renderPlayState", () => {
909
909
  var e;
910
910
  const t = this.callbacks.isAdActive() ? this.callbacks.adIsPaused() : this.video.paused && !this.pendingPlay;
911
- B(this.playIcon, t ? "play" : "pause"), L(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());
912
912
  });
913
- r(this, "renderTime", () => {
914
- var s, o;
913
+ s(this, "renderTime", () => {
914
+ var r, o;
915
915
  const t = this.video.duration === 1 / 0;
916
916
  if (this.timeLabel.style.display = this.adMode || t ? "none" : "", this.liveBadge.style.display = !this.adMode && t ? "" : "none", !t) {
917
917
  const a = this.video.duration, l = this.video.currentTime;
918
918
  if (this.showRemaining) {
919
919
  const h = Number.isFinite(a) ? Math.floor(a) : 0, c = Math.max(0, h - Math.floor(l));
920
- this.timeLabel.textContent = `-${T(c)} / ${T(a)}`;
920
+ this.timeLabel.textContent = `-${A(c)} / ${A(a)}`;
921
921
  } else
922
- this.timeLabel.textContent = `${T(l)} / ${T(a)}`;
922
+ this.timeLabel.textContent = `${A(l)} / ${A(a)}`;
923
923
  return;
924
924
  }
925
- const e = ((o = (s = this.callbacks).liveSyncPosition) == null ? void 0 : o.call(s)) ?? this.liveEdge(), i = e !== null && e - this.video.currentTime > Ve;
925
+ const e = ((o = (r = this.callbacks).liveSyncPosition) == null ? void 0 : o.call(r)) ?? this.liveEdge(), i = e !== null && e - this.video.currentTime > Ue;
926
926
  this.liveBadge.toggleAttribute("data-behind", i);
927
927
  });
928
928
  /** Buffer bekleniyor (oynarken takılma ya da buffer'lanmamış bir yere atlama). */
929
- r(this, "onLoadingStart", (t) => {
929
+ s(this, "onLoadingStart", (t) => {
930
930
  t.type === "seeking" && this.video.readyState >= HTMLMediaElement.HAVE_FUTURE_DATA || this.loadingTimer || this.loadingReasons.has("media") || (this.loadingTimer = setTimeout(() => {
931
931
  this.loadingTimer = null, this.setLoading("media", !0);
932
- }, Ue));
932
+ }, qe));
933
933
  });
934
- r(this, "onLoadingEnd", (t) => {
934
+ s(this, "onLoadingEnd", (t) => {
935
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));
936
936
  });
937
- r(this, "goToLive", () => {
938
- var i, s;
939
- const t = (s = (i = this.callbacks).liveSyncPosition) == null ? void 0 : s.call(i), e = this.liveEdge();
937
+ s(this, "goToLive", () => {
938
+ var i, r;
939
+ const t = (r = (i = this.callbacks).liveSyncPosition) == null ? void 0 : r.call(i), e = this.liveEdge();
940
940
  e === null && t == null || (this.video.currentTime = t ?? Math.max(0, e - 1), this.video.paused && this.video.play().catch(() => {
941
941
  }), this.renderTime());
942
942
  });
943
- this.video = t, this.callbacks = i, this.labels = s, 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 Ie(t, s), 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);
944
944
  const o = document.createElement("div");
945
945
  o.className = "hp:flex hp:items-center hp:gap-2", this.el.appendChild(o), this.bottomRow = o;
946
946
  const a = document.createElement("div");
@@ -949,20 +949,20 @@ class qe {
949
949
  l.className = "hp-loading-ring", l.setAttribute("aria-hidden", "true");
950
950
  const h = document.createElement("span");
951
951
  h.className = "hp-loading-ring-mask", h.appendChild(document.createElement("span")), l.appendChild(h), a.appendChild(l);
952
- const c = M(s.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 = ee("back", "skip-back-button"), this.skipBack.btn.addEventListener("click", () => this.skip(-(this.skipSeconds.back ?? 0))), this.skipForward = ee("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 De(t, s, 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", s.goToLive);
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);
954
954
  const p = document.createElement("span");
955
- p.className = "hp-live-dot", this.liveText = document.createElement("span"), this.liveText.textContent = s.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);
956
- const g = document.createElement("div");
957
- g.className = "hp:flex-1 hp:min-w-0", o.appendChild(g), this.spacerEl = g;
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);
958
956
  const m = document.createElement("div");
959
- m.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(m), this.rightGroup = m, this.settingsMenu = new Ge(t, e, s), m.appendChild(this.settingsMenu.el), this.extraButtonAnchor = this.settingsMenu.el, this.row = m;
960
- const f = M(s.pip, "pip");
961
- this.pipButton = f.btn, this.pipButton.addEventListener("click", () => this.togglePip()), document.pictureInPictureEnabled || (this.pipButton.style.display = "none"), m.appendChild(this.pipButton);
962
- const v = M(s.fullscreenEnter, "fullscreen-enter", "F");
963
- this.fullscreenButton = v.btn, this.fullscreenIcon = v.icon, this.fullscreenButton.addEventListener("click", () => this.toggleFullscreen()), m.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 J) t.addEventListener(x, this.onLoadingStart);
965
- for (const x of Z) t.addEventListener(x, this.onLoadingEnd);
957
+ m.className = "hp:flex-1 hp:min-w-0", o.appendChild(m), this.spacerEl = m;
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);
966
966
  this.renderPlayState(), this.renderTime();
967
967
  }
968
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. */
@@ -994,7 +994,7 @@ class qe {
994
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" : "";
995
995
  }
996
996
  setFullscreenState(t) {
997
- B(this.fullscreenIcon, t ? "fullscreen-exit" : "fullscreen-enter"), L(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);
998
998
  }
999
999
  /** Dil sonradan değişince (`options.locale`/`labels`) statik (reaktif olarak yeniden render edilmeyen) etiketleri tazeler. */
1000
1000
  /** Geri/ileri sarma butonları — `null` süre o butonu gizler. */
@@ -1006,17 +1006,17 @@ class qe {
1006
1006
  this.seekingEnabled = t, this.skipBack.btn.disabled = !t, this.skipForward.btn.disabled = !t;
1007
1007
  }
1008
1008
  renderSkipButtons() {
1009
- const t = (e, i, s) => {
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), L(e.btn, s(i)));
1009
+ const t = (e, i, r) => {
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)));
1011
1011
  };
1012
1012
  t(this.skipBack, this.skipSeconds.back, this.labels.skipBack), t(this.skipForward, this.skipSeconds.forward, this.labels.skipForward);
1013
1013
  }
1014
1014
  skip(t) {
1015
1015
  var e;
1016
- !t || !this.seekingEnabled || (ve(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));
1017
1017
  }
1018
1018
  refreshLabels() {
1019
- this.renderPlayState(), this.renderSkipButtons(), L(this.pipButton, this.labels.pip), L(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();
1020
1020
  }
1021
1021
  /** Reklam modu: seek bar, süre ve sağ grup gizlenir; oynat/duraklat + ses kalır. */
1022
1022
  setAdMode(t) {
@@ -1032,7 +1032,7 @@ class qe {
1032
1032
  this.adInfoEl.style.display = "none", this.adInfoEl.textContent = "";
1033
1033
  return;
1034
1034
  }
1035
- const e = t.total > 1 ? ` ${t.position}/${t.total}` : "", i = t.remaining >= 0 ? ` · ${T(Math.ceil(t.remaining))}` : "";
1035
+ const e = t.total > 1 ? ` ${t.position}/${t.total}` : "", i = t.remaining >= 0 ? ` · ${A(Math.ceil(t.remaining))}` : "";
1036
1036
  this.adInfoEl.textContent = `${this.labels.adLabel}${e}${i}`, this.adInfoEl.style.display = "";
1037
1037
  }
1038
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. */
@@ -1047,8 +1047,8 @@ class qe {
1047
1047
  }
1048
1048
  /** Plugin'lerin (loop-section vb.) kontrol çubuğuna kendi butonlarını eklemesi için — ayarlar menüsünden önce yerleştirilir. */
1049
1049
  addButton(t, e, i) {
1050
- const { btn: s, icon: o } = M(t, e);
1051
- return s.addEventListener("click", i), this.row.insertBefore(s, this.extraButtonAnchor), { btn: s, icon: o };
1050
+ const { btn: r, icon: o } = B(t, e);
1051
+ return r.addEventListener("click", i), this.row.insertBefore(r, this.extraButtonAnchor), { btn: r, icon: o };
1052
1052
  }
1053
1053
  toggleTimeMode() {
1054
1054
  this.showRemaining = !this.showRemaining, this.renderTime();
@@ -1107,45 +1107,45 @@ class qe {
1107
1107
  }
1108
1108
  destroy() {
1109
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);
1110
- for (const t of J) this.video.removeEventListener(t, this.onLoadingStart);
1111
- for (const t of Z) 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);
1112
1112
  this.loadingTimer && clearTimeout(this.loadingTimer), this.resizeObserver.disconnect(), this.topEl.remove(), this.seekBar.destroy(), this.settingsMenu.destroy();
1113
1113
  }
1114
1114
  }
1115
- const je = 450, $e = 60, te = 8, H = 6, Qe = /* @__PURE__ */ new Set(["seek-bar", "time-display"]);
1116
- function Ke() {
1115
+ const $e = 450, Ke = 60, ie = 8, G = 6, Qe = /* @__PURE__ */ new Set(["seek-bar", "time-display"]);
1116
+ function We() {
1117
1117
  return typeof window.matchMedia != "function" || window.matchMedia("(hover: hover)").matches;
1118
1118
  }
1119
- class We {
1119
+ class Xe {
1120
1120
  constructor(t) {
1121
- r(this, "el");
1122
- r(this, "labelEl");
1123
- r(this, "keyEl");
1124
- r(this, "showTimer", null);
1125
- r(this, "hideTimer", null);
1126
- r(this, "currentTarget", null);
1127
- r(this, "isOccluded", null);
1121
+ s(this, "el");
1122
+ s(this, "labelEl");
1123
+ s(this, "keyEl");
1124
+ s(this, "showTimer", null);
1125
+ s(this, "hideTimer", null);
1126
+ s(this, "currentTarget", null);
1127
+ s(this, "isOccluded", null);
1128
1128
  /** Gösterim gecikmesi (SHOW_DELAY_MS) içinde bekleyen hedef — `currentTarget` yalnızca gerçekten gösterilince set ediliyor. */
1129
- r(this, "pendingTarget", null);
1130
- r(this, "onMouseOver", (t) => {
1129
+ s(this, "pendingTarget", null);
1130
+ s(this, "onMouseOver", (t) => {
1131
1131
  const e = this.matchTarget(t.target);
1132
1132
  !e || e === this.currentTarget || this.scheduleShow(e);
1133
1133
  });
1134
- r(this, "onMouseOut", (t) => {
1134
+ s(this, "onMouseOut", (t) => {
1135
1135
  const e = this.matchTarget(t.target);
1136
1136
  if (!e || e !== this.currentTarget && e !== this.pendingTarget) return;
1137
1137
  const i = t.relatedTarget;
1138
1138
  i && e.contains(i) || this.scheduleHide();
1139
1139
  });
1140
- r(this, "onFocusIn", (t) => {
1140
+ s(this, "onFocusIn", (t) => {
1141
1141
  const e = this.matchTarget(t.target);
1142
1142
  e && this.show(e);
1143
1143
  });
1144
- r(this, "onFocusOut", (t) => {
1144
+ s(this, "onFocusOut", (t) => {
1145
1145
  const e = this.matchTarget(t.target);
1146
1146
  !e || e !== this.currentTarget || this.hideNow();
1147
1147
  });
1148
- r(this, "hideNow", () => {
1148
+ s(this, "hideNow", () => {
1149
1149
  this.showTimer && (clearTimeout(this.showTimer), this.showTimer = null), this.pendingTarget = null, this.hideTimer && (clearTimeout(this.hideTimer), this.hideTimer = null), this.currentTarget && (this.currentTarget = null, this.el.style.opacity = "0", this.el.style.visibility = "hidden");
1150
1150
  });
1151
1151
  this.mountEl = t, this.el = document.createElement("div"), this.el.setAttribute("part", "tooltip"), this.el.setAttribute("role", "tooltip"), this.el.className = "hp-tooltip hp:absolute hp:z-40 hp:flex hp:items-center hp:gap-1.5 hp:px-2 hp:py-1 hp:rounded hp:text-xs hp:whitespace-nowrap hp:pointer-events-none hp:opacity-0 hp:transition-opacity hp:duration-100", this.el.style.visibility = "hidden", this.labelEl = document.createElement("span"), this.el.appendChild(this.labelEl), this.keyEl = document.createElement("span"), this.keyEl.className = "hp-tooltip-key", this.el.appendChild(this.keyEl), t.appendChild(this.el), t.addEventListener("mouseover", this.onMouseOver), t.addEventListener("mouseout", this.onMouseOut), t.addEventListener("focusin", this.onFocusIn), t.addEventListener("focusout", this.onFocusOut), t.addEventListener("pointerdown", this.hideNow);
@@ -1169,50 +1169,50 @@ class We {
1169
1169
  var o;
1170
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]');
1171
1171
  if (!i) return null;
1172
- const s = i.getAttribute("part");
1173
- return s && Qe.has(s) || i.offsetParent === null && i !== document.activeElement ? null : i;
1172
+ const r = i.getAttribute("part");
1173
+ return r && Qe.has(r) || i.offsetParent === null && i !== document.activeElement ? null : i;
1174
1174
  }
1175
1175
  scheduleShow(t) {
1176
1176
  this.hideTimer && (clearTimeout(this.hideTimer), this.hideTimer = null), this.showTimer && clearTimeout(this.showTimer), this.pendingTarget = t, this.showTimer = setTimeout(() => {
1177
1177
  this.showTimer = null, this.pendingTarget = null, this.show(t);
1178
- }, je);
1178
+ }, $e);
1179
1179
  }
1180
1180
  scheduleHide() {
1181
- this.showTimer && (clearTimeout(this.showTimer), this.showTimer = null), this.pendingTarget = null, this.hideTimer && clearTimeout(this.hideTimer), this.hideTimer = setTimeout(() => this.hideNow(), $e);
1181
+ this.showTimer && (clearTimeout(this.showTimer), this.showTimer = null), this.pendingTarget = null, this.hideTimer && clearTimeout(this.hideTimer), this.hideTimer = setTimeout(() => this.hideNow(), Ke);
1182
1182
  }
1183
1183
  show(t) {
1184
- if (!Ke()) return;
1184
+ if (!We()) return;
1185
1185
  const e = t.getAttribute("aria-label");
1186
1186
  if (!e) return;
1187
1187
  this.currentTarget = t, this.labelEl.textContent = e;
1188
1188
  const i = t.dataset.shortcut;
1189
1189
  i ? (this.keyEl.textContent = i, this.keyEl.style.display = "") : (this.keyEl.textContent = "", this.keyEl.style.display = "none"), this.el.style.visibility = "hidden", this.el.style.opacity = "0", this.el.style.left = "0px", this.el.style.top = "0px", requestAnimationFrame(() => {
1190
- var s;
1191
- this.currentTarget === t && (this.position(t), !((s = this.isOccluded) != null && s.call(this, this.el.getBoundingClientRect())) && (this.el.style.visibility = "visible", this.el.style.opacity = "1"));
1190
+ var r;
1191
+ this.currentTarget === t && (this.position(t), !((r = this.isOccluded) != null && r.call(this, this.el.getBoundingClientRect())) && (this.el.style.visibility = "visible", this.el.style.opacity = "1"));
1192
1192
  });
1193
1193
  }
1194
1194
  position(t) {
1195
- const e = this.mountEl.getBoundingClientRect(), i = t.getBoundingClientRect(), s = this.el.getBoundingClientRect();
1196
- let o = i.top - e.top - s.height - te;
1197
- o < H && (o = i.bottom - e.top + te);
1198
- let a = i.left - e.left + i.width / 2 - s.width / 2;
1199
- const l = e.width - s.width - H;
1200
- a = Math.max(H, Math.min(a, l)), this.el.style.top = `${o}px`, this.el.style.left = `${a}px`;
1195
+ const e = this.mountEl.getBoundingClientRect(), i = t.getBoundingClientRect(), r = this.el.getBoundingClientRect();
1196
+ let o = i.top - e.top - r.height - ie;
1197
+ o < G && (o = i.bottom - e.top + ie);
1198
+ let a = i.left - e.left + i.width / 2 - r.width / 2;
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`;
1201
1201
  }
1202
1202
  }
1203
- class Xe {
1203
+ class Ye {
1204
1204
  constructor(t, e, i) {
1205
- r(this, "host");
1206
- r(this, "video");
1207
- r(this, "toggleFullscreen");
1205
+ s(this, "host");
1206
+ s(this, "video");
1207
+ s(this, "toggleFullscreen");
1208
1208
  /** ←/→ ve J/L ile sarma süresi (sn) — options.keyboardSeekStep. */
1209
- r(this, "seekStep", 5);
1209
+ s(this, "seekStep", 5);
1210
1210
  /** Klavyeyle sarıldığında (sn, negatif = geri) — sarma bildirimi için. */
1211
- r(this, "onSeek", null);
1211
+ s(this, "onSeek", null);
1212
1212
  /** Space/K'den önce sorulur — true dönerse işlenmiştir (ör. preroll beklemesini iptal). */
1213
- r(this, "interceptTogglePlay", null);
1214
- r(this, "onKeyDown", (t) => {
1215
- var s, o, a;
1213
+ s(this, "interceptTogglePlay", null);
1214
+ s(this, "onKeyDown", (t) => {
1215
+ var r, o, a;
1216
1216
  if (t.defaultPrevented) return;
1217
1217
  const e = t.composedPath()[0];
1218
1218
  if ((t.key === " " || t.key === "Enter") && e instanceof HTMLButtonElement) return;
@@ -1220,7 +1220,7 @@ class Xe {
1220
1220
  switch (t.key) {
1221
1221
  case " ":
1222
1222
  case "k":
1223
- if ((s = this.interceptTogglePlay) != null && s.call(this)) {
1223
+ if ((r = this.interceptTogglePlay) != null && r.call(this)) {
1224
1224
  t.preventDefault();
1225
1225
  break;
1226
1226
  }
@@ -1254,40 +1254,40 @@ class Xe {
1254
1254
  this.host.removeEventListener("keydown", this.onKeyDown);
1255
1255
  }
1256
1256
  }
1257
- class Ye {
1257
+ class Je {
1258
1258
  constructor(t) {
1259
- r(this, "el");
1260
- r(this, "video");
1261
- r(this, "show", () => this.el.classList.remove("hp:hidden"));
1262
- r(this, "hide", () => this.el.classList.add("hp:hidden"));
1259
+ s(this, "el");
1260
+ s(this, "video");
1261
+ s(this, "show", () => this.el.classList.remove("hp:hidden"));
1262
+ s(this, "hide", () => this.el.classList.add("hp:hidden"));
1263
1263
  this.video = t, this.el = document.createElement("div"), this.el.className = "hp-loading-spinner hp:absolute hp:inset-0 hp:flex hp:items-center hp:justify-center hp:pointer-events-none hp:hidden", this.el.innerHTML = '<div class="hp:w-10 hp:h-10 hp:border-[3px] hp:border-on-surface/30 hp:border-t-accent hp:rounded-full hp:animate-spin"></div>', t.addEventListener("waiting", this.show), t.addEventListener("playing", this.hide), t.addEventListener("canplay", this.hide), t.addEventListener("pause", this.hide);
1264
1264
  }
1265
1265
  destroy() {
1266
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);
1267
1267
  }
1268
1268
  }
1269
- const Je = '<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 Ze {
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 {
1271
1271
  constructor(t, e) {
1272
- r(this, "el");
1273
- r(this, "video");
1274
- r(this, "labels");
1275
- r(this, "messageEl");
1276
- r(this, "codeEl");
1277
- r(this, "retryBtn");
1278
- r(this, "retryText");
1279
- r(this, "onRetry", null);
1280
- r(this, "shouldShow", () => !0);
1272
+ s(this, "el");
1273
+ s(this, "video");
1274
+ s(this, "labels");
1275
+ s(this, "messageEl");
1276
+ s(this, "codeEl");
1277
+ s(this, "retryBtn");
1278
+ s(this, "retryText");
1279
+ s(this, "onRetry", null);
1280
+ s(this, "shouldShow", () => !0);
1281
1281
  /** showStreamError ile açılan hatanın kodu (video.error yokken). */
1282
- r(this, "streamErrorCode", 0);
1283
- r(this, "show", () => {
1282
+ s(this, "streamErrorCode", 0);
1283
+ s(this, "show", () => {
1284
1284
  !this.video.getAttribute("src") && !this.video.querySelector("source") || this.shouldShow() && (this.render(), this.el.setAttribute("data-visible", ""));
1285
1285
  });
1286
1286
  this.video = t, this.labels = e, this.el = document.createElement("div"), this.el.setAttribute("part", "error-screen"), this.el.setAttribute("role", "alert"), this.el.className = "hp-error-screen";
1287
1287
  const i = document.createElement("div");
1288
1288
  i.className = "hp-error-card";
1289
- const s = document.createElement("div");
1290
- s.className = "hp-error-icon", s.appendChild(S("warning")), i.appendChild(s), 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 = Je, this.retryText = document.createElement("span"), this.retryText.textContent = e.retry, this.retryBtn.appendChild(this.retryText), this.retryBtn.addEventListener("click", () => {
1289
+ const r = document.createElement("div");
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", () => {
1291
1291
  var o;
1292
1292
  this.dismiss(), (o = this.onRetry) == null || o.call(this);
1293
1293
  }), i.appendChild(this.retryBtn), this.el.appendChild(i), t.addEventListener("error", this.show);
@@ -1333,120 +1333,120 @@ class Ze {
1333
1333
  this.video.removeEventListener("error", this.show);
1334
1334
  }
1335
1335
  }
1336
- const _ = /* @__PURE__ */ new WeakMap(), ye = /* @__PURE__ */ new WeakSet(), F = /* @__PURE__ */ new WeakMap();
1337
- function et(n) {
1338
- return ye.has(n);
1336
+ const _ = /* @__PURE__ */ new WeakMap(), xe = /* @__PURE__ */ new WeakSet(), D = /* @__PURE__ */ new WeakMap();
1337
+ function tt(n) {
1338
+ return xe.has(n);
1339
1339
  }
1340
- function xe(n, t, e, i, s) {
1340
+ function ke(n, t, e, i, r) {
1341
1341
  let o = _.get(n);
1342
1342
  o || _.set(n, o = /* @__PURE__ */ new Map());
1343
- const a = `${t}\0${e}\0${i}\0${s}`;
1343
+ const a = `${t}\0${e}\0${i}\0${r}`;
1344
1344
  let l = o.get(a);
1345
- return l || (l = n.addTextTrack(e, i, s), ye.add(l), o.set(a, l)), l;
1345
+ return l || (l = n.addTextTrack(e, i, r), xe.add(l), o.set(a, l)), l;
1346
1346
  }
1347
- function ke(n, t) {
1347
+ function we(n, t) {
1348
1348
  for (const [e, i] of _.get(n) ?? [])
1349
1349
  if (e.startsWith(`${t}\0`)) {
1350
1350
  i.mode = "hidden";
1351
- for (const s of Array.from(i.cues ?? [])) i.removeCue(s);
1351
+ for (const r of Array.from(i.cues ?? [])) i.removeCue(r);
1352
1352
  i.mode = "disabled";
1353
1353
  }
1354
1354
  }
1355
- function tt(n, t) {
1356
- we(n);
1357
- const e = F.get(n), i = [];
1358
- for (const s of t) {
1359
- const o = xe(n, "options", "subtitles", s.label, s.srclang);
1360
- o.mode = s.default ? "hidden" : "disabled", i.push({ label: s.label, track: o }), st(n, o, s.src, e);
1355
+ function it(n, t) {
1356
+ Ee(n);
1357
+ const e = D.get(n), i = [];
1358
+ for (const r of t) {
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);
1361
1361
  }
1362
1362
  return i;
1363
1363
  }
1364
- function we(n) {
1365
- F.set(n, (F.get(n) ?? 0) + 1), ke(n, "options");
1364
+ function Ee(n) {
1365
+ D.set(n, (D.get(n) ?? 0) + 1), we(n, "options");
1366
1366
  }
1367
- function it(n, t) {
1367
+ function rt(n, t) {
1368
1368
  let e = null;
1369
- for (const { label: i, track: s } of n) {
1369
+ for (const { label: i, track: r } of n) {
1370
1370
  const o = i === t;
1371
- s.mode = o ? "hidden" : "disabled", o && (e = s);
1371
+ r.mode = o ? "hidden" : "disabled", o && (e = r);
1372
1372
  }
1373
1373
  return e;
1374
1374
  }
1375
1375
  async function st(n, t, e, i) {
1376
- let s;
1376
+ let r;
1377
1377
  try {
1378
1378
  const o = await fetch(e);
1379
1379
  if (!o.ok) throw new Error(`HTTP ${o.status}`);
1380
- s = await o.text();
1380
+ r = await o.text();
1381
1381
  } catch (o) {
1382
1382
  console.warn("[HopePlayer] altyazı yüklenemedi:", e, o), n.dispatchEvent(new CustomEvent("hp-internal:subtitle-error", { detail: { src: e, message: String(o) } }));
1383
1383
  return;
1384
1384
  }
1385
- if (!(F.get(n) !== i || typeof VTTCue != "function"))
1386
- for (const o of ot(s)) {
1385
+ if (!(D.get(n) !== i || typeof VTTCue != "function"))
1386
+ for (const o of at(r)) {
1387
1387
  const a = new VTTCue(o.start, o.end, o.text);
1388
- at(a, o.settings), t.addCue(a);
1388
+ nt(a, o.settings), t.addCue(a);
1389
1389
  }
1390
1390
  }
1391
- const ie = "(?:\\d+:)?\\d{1,2}:\\d{2}(?:[.,]\\d{1,3})?", rt = new RegExp(`^(${ie})\\s+-->\\s+(${ie})(.*)$`);
1391
+ const re = "(?:\\d+:)?\\d{1,2}:\\d{2}(?:[.,]\\d{1,3})?", ot = new RegExp(`^(${re})\\s+-->\\s+(${re})(.*)$`);
1392
1392
  function se(n) {
1393
1393
  return n.replace(",", ".").split(":").reduce((t, e) => t * 60 + Number(e), 0);
1394
1394
  }
1395
- function ot(n) {
1395
+ function at(n) {
1396
1396
  const t = [], e = n.replace(/^/, "").replace(/\r\n?/g, `
1397
1397
  `).split(/\n{2,}/);
1398
1398
  for (const i of e) {
1399
- const s = i.split(`
1400
- `), o = s.findIndex((h) => h.includes("-->"));
1399
+ const r = i.split(`
1400
+ `), o = r.findIndex((h) => h.includes("-->"));
1401
1401
  if (o < 0) continue;
1402
- const a = rt.exec(s[o].trim());
1402
+ const a = ot.exec(r[o].trim());
1403
1403
  if (!a) continue;
1404
- const l = s.slice(o + 1).join(`
1404
+ const l = r.slice(o + 1).join(`
1405
1405
  `);
1406
1406
  l.trim() && t.push({ start: se(a[1]), end: se(a[2]), settings: a[3].trim(), text: l });
1407
1407
  }
1408
1408
  return t;
1409
1409
  }
1410
- function at(n, t) {
1410
+ function nt(n, t) {
1411
1411
  for (const e of t.split(/\s+/)) {
1412
- const [i, s] = e.split(":");
1413
- if (!i || !s) continue;
1414
- const [o] = s.split(",");
1412
+ const [i, r] = e.split(":");
1413
+ if (!i || !r) continue;
1414
+ const [o] = r.split(",");
1415
1415
  try {
1416
1416
  i === "align" ? n.align = o : i === "vertical" ? n.vertical = o : i === "size" ? n.size = parseFloat(o) : i === "position" ? n.position = parseFloat(o) : i === "line" && (n.snapToLines = !o.endsWith("%"), n.line = parseFloat(o));
1417
1417
  } catch {
1418
1418
  }
1419
1419
  }
1420
1420
  }
1421
- const I = 6, nt = 20, lt = 14, ht = 6, pt = 10, dt = 3, Ee = "hope-caption-row", Ce = "hope-caption-font-size", re = "hope-caption-bg-color", oe = "hope-caption-text-color", ct = {
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 = {
1422
1422
  small: 0.78,
1423
1423
  normal: 1,
1424
1424
  large: 1.35
1425
- }, ae = [
1425
+ }, ne = [
1426
1426
  "rgba(0, 0, 0, 0.75)",
1427
1427
  "rgba(0, 0, 0, 0)",
1428
1428
  "rgba(255, 255, 255, 0.85)",
1429
1429
  "rgba(183, 28, 28, 0.8)",
1430
1430
  "rgba(13, 71, 161, 0.8)",
1431
1431
  "rgba(27, 94, 32, 0.8)"
1432
- ], ne = ["#ffffff", "#000000", "#ffeb3b", "#ff5252", "#18ffff", "#69f0ae"];
1433
- function ut() {
1432
+ ], le = ["#ffffff", "#000000", "#ffeb3b", "#ff5252", "#18ffff", "#69f0ae"];
1433
+ function mt() {
1434
1434
  try {
1435
- const n = window.localStorage.getItem(Ee), t = n === null ? 0 : Number(n);
1436
- 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;
1437
1437
  } catch {
1438
1438
  return 0;
1439
1439
  }
1440
1440
  }
1441
1441
  function gt() {
1442
1442
  try {
1443
- const n = window.localStorage.getItem(Ce);
1443
+ const n = window.localStorage.getItem(Te);
1444
1444
  return n === "small" || n === "normal" || n === "large" ? n : "normal";
1445
1445
  } catch {
1446
1446
  return "normal";
1447
1447
  }
1448
1448
  }
1449
- function le(n, t) {
1449
+ function he(n, t) {
1450
1450
  const e = t[0] ?? "";
1451
1451
  try {
1452
1452
  const i = window.localStorage.getItem(n);
@@ -1455,28 +1455,28 @@ function le(n, t) {
1455
1455
  return e;
1456
1456
  }
1457
1457
  }
1458
- class R {
1459
- constructor(t, e, i, s) {
1460
- r(this, "layerEl");
1461
- r(this, "bubbleEl");
1462
- r(this, "videoArea");
1463
- r(this, "seekBarEl");
1464
- r(this, "labels");
1465
- r(this, "activeTrack", null);
1466
- r(this, "fontSize", gt());
1467
- r(this, "bgColor", le(re, ae));
1468
- r(this, "textColor", le(oe, ne));
1469
- r(this, "rowIndex", ut());
1470
- r(this, "dragging", !1);
1458
+ class z {
1459
+ constructor(t, e, i, r) {
1460
+ s(this, "layerEl");
1461
+ s(this, "bubbleEl");
1462
+ s(this, "videoArea");
1463
+ s(this, "seekBarEl");
1464
+ s(this, "labels");
1465
+ s(this, "activeTrack", null);
1466
+ s(this, "fontSize", gt());
1467
+ s(this, "bgColor", he(oe, ne));
1468
+ s(this, "textColor", he(ae, le));
1469
+ s(this, "rowIndex", mt());
1470
+ s(this, "dragging", !1);
1471
1471
  /** Kontrol çubuğu görünür mü — görünürken altyazı seek bar'ın üstünde, değilken en altta. */
1472
- r(this, "chromeVisible", !0);
1473
- r(this, "dragStartClientY", 0);
1474
- r(this, "dragStartBottomPx", 0);
1475
- r(this, "dragMoved", !1);
1476
- r(this, "rafId", null);
1477
- r(this, "pendingDeltaPx", 0);
1478
- r(this, "resizeObserver");
1479
- r(this, "onCueChange", () => {
1472
+ s(this, "chromeVisible", !0);
1473
+ s(this, "dragStartClientY", 0);
1474
+ s(this, "dragStartBottomPx", 0);
1475
+ s(this, "dragMoved", !1);
1476
+ s(this, "rafId", null);
1477
+ s(this, "pendingDeltaPx", 0);
1478
+ s(this, "resizeObserver");
1479
+ s(this, "onCueChange", () => {
1480
1480
  var e;
1481
1481
  const t = (e = this.activeTrack) == null ? void 0 : e.activeCues;
1482
1482
  if (!this.activeTrack || !t || t.length === 0) {
@@ -1486,28 +1486,28 @@ class R {
1486
1486
  this.bubbleEl.textContent = "";
1487
1487
  for (let i = 0; i < t.length; i++) {
1488
1488
  i > 0 && this.bubbleEl.appendChild(document.createElement("br"));
1489
- const s = t[i];
1490
- typeof s.getCueAsHTML == "function" ? this.bubbleEl.appendChild(s.getCueAsHTML()) : this.bubbleEl.appendChild(document.createTextNode(s.text ?? ""));
1489
+ const r = t[i];
1490
+ typeof r.getCueAsHTML == "function" ? this.bubbleEl.appendChild(r.getCueAsHTML()) : this.bubbleEl.appendChild(document.createTextNode(r.text ?? ""));
1491
1491
  }
1492
1492
  this.bubbleEl.classList.add("hp-caption-visible");
1493
1493
  });
1494
- r(this, "onPointerDown", (t) => {
1494
+ s(this, "onPointerDown", (t) => {
1495
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));
1496
1496
  });
1497
- r(this, "onPointerMove", (t) => {
1498
- this.dragging && (this.pendingDeltaPx = t.clientY - this.dragStartClientY, Math.abs(this.pendingDeltaPx) > dt && (this.dragMoved = !0), this.rafId === null && (this.rafId = requestAnimationFrame(this.applyPendingDrag)));
1497
+ s(this, "onPointerMove", (t) => {
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)));
1499
1499
  });
1500
- r(this, "applyPendingDrag", () => {
1500
+ s(this, "applyPendingDrag", () => {
1501
1501
  if (this.rafId = null, !this.dragging) return;
1502
- const { min: t, max: e } = this.bounds(), i = Math.min(e, Math.max(t, this.dragStartBottomPx - this.pendingDeltaPx)), s = this.dragStartBottomPx - i;
1503
- this.bubbleEl.style.transform = `translateX(-50%) translateY(${s}px)`;
1502
+ const { min: t, max: e } = this.bounds(), i = Math.min(e, Math.max(t, this.dragStartBottomPx - this.pendingDeltaPx)), r = this.dragStartBottomPx - i;
1503
+ this.bubbleEl.style.transform = `translateX(-50%) translateY(${r}px)`;
1504
1504
  });
1505
- r(this, "onPointerUp", (t) => {
1505
+ s(this, "onPointerUp", (t) => {
1506
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;
1507
- const { min: e, max: i } = this.bounds(), s = Math.min(i, Math.max(e, this.dragStartBottomPx - this.pendingDeltaPx)), o = i > e ? (s - 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));
1508
1508
  this.setRowIndex(a, !0);
1509
1509
  });
1510
- this.videoArea = e, this.seekBarEl = i, this.labels = s, 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", s.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();
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();
1511
1511
  }
1512
1512
  /** `applyOptions()`'tan — hangi track aktif (ya da null = kapalı). */
1513
1513
  setActiveTrack(t) {
@@ -1519,7 +1519,7 @@ class R {
1519
1519
  setFontSize(t) {
1520
1520
  this.fontSize = t, this.applyFontSizeVar(), this.recomputePosition();
1521
1521
  try {
1522
- window.localStorage.setItem(Ce, t);
1522
+ window.localStorage.setItem(Te, t);
1523
1523
  } catch {
1524
1524
  }
1525
1525
  }
@@ -1529,7 +1529,7 @@ class R {
1529
1529
  setBgColor(t) {
1530
1530
  this.bgColor = t, this.bubbleEl.style.setProperty("--hp-caption-bg", t);
1531
1531
  try {
1532
- window.localStorage.setItem(re, t);
1532
+ window.localStorage.setItem(oe, t);
1533
1533
  } catch {
1534
1534
  }
1535
1535
  }
@@ -1539,7 +1539,7 @@ class R {
1539
1539
  setTextColor(t) {
1540
1540
  this.textColor = t, this.bubbleEl.style.setProperty("--hp-caption-text", t);
1541
1541
  try {
1542
- window.localStorage.setItem(oe, t);
1542
+ window.localStorage.setItem(ae, t);
1543
1543
  } catch {
1544
1544
  }
1545
1545
  }
@@ -1552,15 +1552,15 @@ class R {
1552
1552
  this.labels = t, this.bubbleEl.setAttribute("aria-label", t.captionDragHandle);
1553
1553
  }
1554
1554
  applyFontSizeVar() {
1555
- this.bubbleEl.style.setProperty("--hp-caption-size-multiplier", String(ct[this.fontSize]));
1555
+ this.bubbleEl.style.setProperty("--hp-caption-size-multiplier", String(ut[this.fontSize]));
1556
1556
  }
1557
1557
  bounds() {
1558
- const t = this.videoArea.getBoundingClientRect(), e = this.seekBarEl.getBoundingClientRect(), s = (this.bubbleEl.getBoundingClientRect().height || 32) + nt, o = Math.max(pt, 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") ? ht : lt))) : o, l = Math.max(a, Math.round(t.height - s));
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));
1559
1559
  return { min: a, max: l };
1560
1560
  }
1561
1561
  pxForRow(t) {
1562
- const { min: e, max: i } = this.bounds(), s = t / (I - 1);
1563
- return Math.round(e + s * (i - e));
1562
+ const { min: e, max: i } = this.bounds(), r = t / (F - 1);
1563
+ return Math.round(e + r * (i - e));
1564
1564
  }
1565
1565
  /**
1566
1566
  * Balonun EKRANDA şu an durduğu konum (bottom, px): yazılı `bottom` + o anki transform'un dikey kayması.
@@ -1578,11 +1578,11 @@ class R {
1578
1578
  }
1579
1579
  /** FLIP: bottom anında yazılır, yalnızca transform animasyonlanır — bottom'u animasyonlamak bırakınca zıplatıyordu. */
1580
1580
  setRowIndex(t, e) {
1581
- this.rowIndex = Math.min(I - 1, Math.max(0, t));
1582
- const i = this.pxForRow(this.rowIndex), s = this.visualBottomPx();
1583
- e && Math.abs(s - 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 - s}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"));
1581
+ this.rowIndex = Math.min(F - 1, Math.max(0, t));
1582
+ const i = this.pxForRow(this.rowIndex), r = this.visualBottomPx();
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"));
1584
1584
  try {
1585
- window.localStorage.setItem(Ee, String(this.rowIndex));
1585
+ window.localStorage.setItem(Ce, String(this.rowIndex));
1586
1586
  } catch {
1587
1587
  }
1588
1588
  }
@@ -1598,26 +1598,26 @@ class R {
1598
1598
  this.activeTrack && this.activeTrack.removeEventListener("cuechange", this.onCueChange), this.resizeObserver.disconnect(), this.rafId !== null && cancelAnimationFrame(this.rafId), this.bubbleEl.removeEventListener("pointerdown", this.onPointerDown);
1599
1599
  }
1600
1600
  }
1601
- r(R, "BG_COLOR_PRESETS", ae), r(R, "TEXT_COLOR_PRESETS", ne);
1602
- class mt {
1601
+ s(z, "BG_COLOR_PRESETS", ne), s(z, "TEXT_COLOR_PRESETS", le);
1602
+ class ft {
1603
1603
  constructor(t) {
1604
- r(this, "el");
1605
- r(this, "bufferedEl");
1606
- r(this, "playedEl");
1607
- r(this, "visible", !1);
1608
- r(this, "rafId", null);
1609
- r(this, "sync", () => {
1604
+ s(this, "el");
1605
+ s(this, "bufferedEl");
1606
+ s(this, "playedEl");
1607
+ s(this, "visible", !1);
1608
+ s(this, "rafId", null);
1609
+ s(this, "sync", () => {
1610
1610
  this.render(), this.visible && !this.video.paused ? this.start() : this.stop();
1611
1611
  });
1612
- r(this, "render", () => {
1612
+ s(this, "render", () => {
1613
1613
  const t = this.video.duration, e = Number.isFinite(t) && t > 0;
1614
1614
  if (this.el.toggleAttribute("data-disabled", !e), !this.visible || !e) return;
1615
1615
  this.playedEl.style.transform = `scaleX(${Math.min(1, this.video.currentTime / t)})`;
1616
1616
  const { buffered: i } = this.video;
1617
- let s = 0;
1617
+ let r = 0;
1618
1618
  for (let o = 0; o < i.length; o++)
1619
- i.start(o) <= this.video.currentTime && (s = Math.max(s, i.end(o)));
1620
- this.bufferedEl.style.transform = `scaleX(${Math.min(1, s / t)})`;
1619
+ i.start(o) <= this.video.currentTime && (r = Math.max(r, i.end(o)));
1620
+ this.bufferedEl.style.transform = `scaleX(${Math.min(1, r / t)})`;
1621
1621
  });
1622
1622
  this.video = t, this.el = document.createElement("div"), this.el.className = "hp-mini-progress", this.el.setAttribute("part", "mini-progress"), this.el.setAttribute("aria-hidden", "true"), this.bufferedEl = document.createElement("div"), this.bufferedEl.className = "hp-mini-progress-fill hp-mini-progress-buffered", this.playedEl = document.createElement("div"), this.playedEl.className = "hp-mini-progress-fill hp-mini-progress-played", this.el.append(this.bufferedEl, this.playedEl), t.addEventListener("play", this.sync), t.addEventListener("pause", this.sync), t.addEventListener("timeupdate", this.render), t.addEventListener("progress", this.render), t.addEventListener("durationchange", this.render);
1623
1623
  }
@@ -1638,19 +1638,19 @@ class mt {
1638
1638
  this.rafId !== null && cancelAnimationFrame(this.rafId), this.rafId = null;
1639
1639
  }
1640
1640
  }
1641
- const bt = 1e3, ft = 800, vt = '<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 yt {
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 {
1643
1643
  constructor(t) {
1644
- r(this, "el");
1645
- r(this, "valueEl");
1646
- r(this, "unitEl");
1647
- r(this, "liveEl");
1648
- r(this, "total", 0);
1649
- r(this, "lastAt", 0);
1650
- r(this, "hideTimer", null);
1644
+ s(this, "el");
1645
+ s(this, "valueEl");
1646
+ s(this, "unitEl");
1647
+ s(this, "liveEl");
1648
+ s(this, "total", 0);
1649
+ s(this, "lastAt", 0);
1650
+ s(this, "hideTimer", null);
1651
1651
  this.labels = t, this.el = document.createElement("div"), this.el.className = "hp-seek-fb", this.el.setAttribute("part", "seek-feedback");
1652
1652
  const e = document.createElement("span");
1653
- e.className = "hp-seek-fb-chevrons", e.innerHTML = vt.repeat(3);
1653
+ e.className = "hp-seek-fb-chevrons", e.innerHTML = yt.repeat(3);
1654
1654
  const i = document.createElement("span");
1655
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);
1656
1656
  }
@@ -1659,26 +1659,26 @@ class yt {
1659
1659
  if (!t) return;
1660
1660
  const e = Date.now(), i = Math.sign(t) === Math.sign(this.total);
1661
1661
  this.total = i && e - this.lastAt < bt ? this.total + t : t, this.lastAt = e;
1662
- const s = Math.round(Math.abs(this.total) * 10) / 10, o = this.total > 0;
1663
- this.el.dataset.side = o ? "forward" : "back", this.valueEl.textContent = `${o ? "+" : "−"}${s}`, this.unitEl.textContent = this.labels.secondsShort, this.liveEl.textContent = (o ? this.labels.skipForward : this.labels.skipBack)(s), 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(() => {
1662
+ const r = Math.round(Math.abs(this.total) * 10) / 10, o = this.total > 0;
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(() => {
1664
1664
  this.el.removeAttribute("data-visible"), this.total = 0;
1665
- }, ft);
1665
+ }, vt);
1666
1666
  }
1667
1667
  destroy() {
1668
1668
  this.hideTimer && clearTimeout(this.hideTimer), this.el.remove();
1669
1669
  }
1670
1670
  }
1671
- class xt {
1671
+ class kt {
1672
1672
  constructor(t) {
1673
- r(this, "el");
1674
- r(this, "open", !1);
1675
- r(this, "close", () => {
1673
+ s(this, "el");
1674
+ s(this, "open", !1);
1675
+ s(this, "close", () => {
1676
1676
  this.open && (this.open = !1, this.el.removeAttribute("data-open"), document.removeEventListener("pointerdown", this.onOutside, !0), document.removeEventListener("keydown", this.onKeyDown, !0), window.removeEventListener("blur", this.close), window.removeEventListener("resize", this.close), window.removeEventListener("scroll", this.close, !0));
1677
1677
  });
1678
- r(this, "onOutside", (t) => {
1678
+ s(this, "onOutside", (t) => {
1679
1679
  t.composedPath().includes(this.el) || this.close();
1680
1680
  });
1681
- r(this, "onKeyDown", (t) => {
1681
+ s(this, "onKeyDown", (t) => {
1682
1682
  t.key === "Escape" && (t.stopPropagation(), this.close());
1683
1683
  });
1684
1684
  this.container = t, this.el = document.createElement("div"), this.el.className = "hp-context-menu", this.el.setAttribute("part", "context-menu"), this.el.setAttribute("role", "menu"), this.el.addEventListener("contextmenu", (e) => e.preventDefault()), t.appendChild(this.el);
@@ -1691,43 +1691,43 @@ class xt {
1691
1691
  var c;
1692
1692
  this.el.replaceChildren(
1693
1693
  ...i.map((p) => {
1694
- const g = document.createElement(p.onSelect ? "button" : "div");
1695
- g.className = "hp-context-menu-item", p.onSelect ? (g.type = "button", g.setAttribute("role", "menuitem"), g.addEventListener("click", () => {
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
1696
  this.close(), p.onSelect();
1697
- })) : g.setAttribute("data-info", "");
1698
- const m = document.createElement("span");
1699
- if (m.textContent = p.label, g.appendChild(m), p.meta) {
1697
+ })) : m.setAttribute("data-info", "");
1698
+ const u = document.createElement("span");
1699
+ if (u.textContent = p.label, m.appendChild(u), p.meta) {
1700
1700
  const f = document.createElement("span");
1701
- f.className = "hp-context-menu-meta", f.textContent = p.meta, g.appendChild(f);
1701
+ f.className = "hp-context-menu-meta", f.textContent = p.meta, m.appendChild(f);
1702
1702
  }
1703
- return g;
1703
+ return m;
1704
1704
  })
1705
1705
  ), this.el.setAttribute("data-open", ""), this.open = !0;
1706
- const s = this.container.getBoundingClientRect(), { width: o, height: a } = this.el.getBoundingClientRect(), l = Math.max(4, Math.min(t - s.left, s.width - o - 4)), h = Math.max(4, Math.min(e - s.top, s.height - a - 4));
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
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);
1708
1708
  }
1709
1709
  destroy() {
1710
1710
  this.close(), this.el.remove();
1711
1711
  }
1712
1712
  }
1713
- const kt = 3e3, he = 200;
1714
- class wt {
1713
+ const wt = 3e3, pe = 200;
1714
+ class Et {
1715
1715
  constructor() {
1716
- r(this, "list", []);
1716
+ s(this, "list", []);
1717
1717
  /** Kayıt eklenince / temizlenince (açık panel canlı güncellenir). */
1718
- r(this, "onChange", null);
1718
+ s(this, "onChange", null);
1719
1719
  }
1720
1720
  get entries() {
1721
1721
  return this.list;
1722
1722
  }
1723
1723
  add(t) {
1724
- var s, o;
1724
+ var r, o;
1725
1725
  const e = Date.now(), i = this.list[this.list.length - 1];
1726
- if (i && e - i.time < kt && i.source === t.source && i.message === t.message && JSON.stringify(i.details ?? {}) === JSON.stringify(t.details ?? {})) {
1727
- i.count = (i.count ?? 1) + 1, i.time = e, (s = this.onChange) == null || s.call(this);
1726
+ if (i && e - i.time < wt && i.source === t.source && i.message === t.message && JSON.stringify(i.details ?? {}) === JSON.stringify(t.details ?? {})) {
1727
+ i.count = (i.count ?? 1) + 1, i.time = e, (r = this.onChange) == null || r.call(this);
1728
1728
  return;
1729
1729
  }
1730
- this.list.push({ time: e, ...t }), this.list.length > he && this.list.splice(0, this.list.length - he), (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);
1731
1731
  }
1732
1732
  clear() {
1733
1733
  var t;
@@ -1736,34 +1736,34 @@ class wt {
1736
1736
  /** Destek ekibine yapıştırılabilir düz metin. */
1737
1737
  toText() {
1738
1738
  return this.list.map((t) => {
1739
- const e = Object.entries(t.details ?? {}).filter(([, s]) => s !== void 0 && s !== "").map(([s, o]) => `${s}=${o}`).join(" "), i = t.count && t.count > 1 ? ` (x${t.count})` : "";
1739
+ const e = Object.entries(t.details ?? {}).filter(([, r]) => r !== void 0 && r !== "").map(([r, o]) => `${r}=${o}`).join(" "), i = t.count && t.count > 1 ? ` (x${t.count})` : "";
1740
1740
  return `${new Date(t.time).toISOString()} [${t.source}]${t.fatal ? " [fatal]" : ""} ${t.message}${i}${e ? ` | ${e}` : ""}`;
1741
1741
  }).join(`
1742
1742
  `);
1743
1743
  }
1744
1744
  }
1745
- const Et = '@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}', pe = "hope-player-icon-font";
1746
- function Ct() {
1747
- if (typeof document > "u" || document.getElementById(pe)) 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;
1748
1748
  const n = document.createElement("style");
1749
- n.id = pe, n.textContent = Et, document.head.appendChild(n);
1749
+ n.id = de, n.textContent = Ct, document.head.appendChild(n);
1750
1750
  }
1751
- function Tt() {
1751
+ function St() {
1752
1752
  var i;
1753
1753
  const t = (i = window.adTaxonomy) == null ? void 0 : i.keyValues;
1754
1754
  if (!t || typeof t != "object") return "";
1755
1755
  const e = [];
1756
- for (const [s, o] of Object.entries(t))
1757
- o == null || o === "" || e.push(`${s}=${o}`);
1756
+ for (const [r, o] of Object.entries(t))
1757
+ o == null || o === "" || e.push(`${r}=${o}`);
1758
1758
  return e.join("&");
1759
1759
  }
1760
- function G(n, t = {}) {
1761
- const e = encodeURIComponent(document.referrer || window.location.href), i = encodeURIComponent(window.location.href), s = Date.now();
1760
+ function V(n, t = {}) {
1761
+ const e = encodeURIComponent(document.referrer || window.location.href), i = encodeURIComponent(window.location.href), r = Date.now();
1762
1762
  let o = n;
1763
1763
  const a = {
1764
1764
  referrer_url: e,
1765
1765
  description_url: i,
1766
- timestamp: s
1766
+ timestamp: r
1767
1767
  };
1768
1768
  for (const [l, h] of Object.entries(a)) {
1769
1769
  const c = `[${l}]`;
@@ -1779,17 +1779,37 @@ function G(n, t = {}) {
1779
1779
  if (l.pathname.includes("/vmap/")) return n;
1780
1780
  const c = [];
1781
1781
  t.includeRefreshCount && c.push(`adrefreshCount=${t.adRefreshCount ?? 0}`);
1782
- const p = Tt();
1782
+ const p = St();
1783
1783
  if (p && c.push(p), c.length) {
1784
- const g = l.searchParams.get("cust_params");
1785
- l.searchParams.set("cust_params", g ? `${g}&${c.join("&")}` : c.join("&"));
1784
+ const m = l.searchParams.get("cust_params");
1785
+ l.searchParams.set("cust_params", m ? `${m}&${c.join("&")}` : c.join("&"));
1786
1786
  }
1787
1787
  return l.toString();
1788
1788
  } catch {
1789
1789
  return o;
1790
1790
  }
1791
1791
  }
1792
- const Te = {
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;
1801
+ }
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 = {
1793
1813
  play: "Oynat",
1794
1814
  pause: "Duraklat",
1795
1815
  mute: "Sessize al",
@@ -1878,6 +1898,8 @@ const Te = {
1878
1898
  redirectPlayNow: "Şimdi Oynat",
1879
1899
  redirectCountdown: (n) => `Sıradaki video ${n} saniye içinde oynatılacak.`,
1880
1900
  redirectNowPlaying: "Video oynatılıyor...",
1901
+ redirectUpNext: "Sıradaki",
1902
+ redirectCancelCard: "Sıradakini iptal et",
1881
1903
  qrResumeTitle: "Devam etmek için kodu telefonunuzla okutun",
1882
1904
  qrResumeDontShowAgain: "Bir daha gösterme",
1883
1905
  qrResumeContinue: "Devam Et",
@@ -1907,7 +1929,7 @@ const Te = {
1907
1929
  liveClock: "Canlı saat",
1908
1930
  live: "CANLI",
1909
1931
  goToLive: "Canlıya git"
1910
- }, St = {
1932
+ }, Lt = {
1911
1933
  play: "Play",
1912
1934
  pause: "Pause",
1913
1935
  mute: "Mute",
@@ -1995,6 +2017,8 @@ const Te = {
1995
2017
  redirectCancel: "Cancel",
1996
2018
  redirectPlayNow: "Play now",
1997
2019
  redirectCountdown: (n) => `Next video will play in ${n} seconds.`,
2020
+ redirectUpNext: "Up next",
2021
+ redirectCancelCard: "Cancel up next",
1998
2022
  redirectNowPlaying: "Now playing...",
1999
2023
  qrResumeTitle: "Scan to continue watching on your phone",
2000
2024
  qrResumeDontShowAgain: "Don't show again",
@@ -2025,38 +2049,38 @@ const Te = {
2025
2049
  liveClock: "Live clock",
2026
2050
  live: "LIVE",
2027
2051
  goToLive: "Go to live"
2028
- }, At = { tr: Te, en: St };
2029
- function Se(n, t) {
2030
- return { ...At[n ?? "tr"] ?? Te, ...t };
2052
+ }, Pt = { tr: Se, en: Lt };
2053
+ function Ae(n, t) {
2054
+ return { ...Pt[n ?? "tr"] ?? Se, ...t };
2031
2055
  }
2032
- function Lt(n, t, e) {
2033
- Object.assign(n, Se(t, e));
2056
+ function Mt(n, t, e) {
2057
+ Object.assign(n, Ae(t, e));
2034
2058
  }
2035
- const U = 8e3;
2036
- function Pt(n) {
2059
+ const j = 8e3;
2060
+ function Bt(n) {
2037
2061
  var t;
2038
2062
  return (t = n.live) != null && t.scte35 && !n.adTagPreroll && !n.adTagVmap ? !1 : !!(n.adTagPreroll || n.adTagVmap);
2039
2063
  }
2040
- class Mt {
2064
+ class Rt {
2041
2065
  constructor(t) {
2042
2066
  /** Kapı kurulu (preroll bekleniyor) mu. */
2043
- r(this, "armed", !1);
2067
+ s(this, "armed", !1);
2044
2068
  /** Kapı kuruluyken kullanıcı / autoplay oynatmak istedi mi. */
2045
- r(this, "playIntent", !1);
2069
+ s(this, "playIntent", !1);
2046
2070
  /** Kapının kendi pause() çağrısının ürettiği 'pause' olayı yutulsun. */
2047
- r(this, "swallowNextPause", !1);
2048
- r(this, "timeoutMs", U);
2049
- r(this, "timer", null);
2071
+ s(this, "swallowNextPause", !1);
2072
+ s(this, "timeoutMs", j);
2073
+ s(this, "timer", null);
2050
2074
  /** İlk oynatma isteği (reklam plugin'i bekleyen preroll'u başlatır). */
2051
- r(this, "onPlayIntent", null);
2075
+ s(this, "onPlayIntent", null);
2052
2076
  /** Zaman aşımı — reklam plugin'i geç gelecek cevabı iptal eder. Kapı bundan sonra içeriği başlatarak açılır. */
2053
- r(this, "onTimeout", null);
2077
+ s(this, "onTimeout", null);
2054
2078
  /** "Preroll bekleniyor" durumu değişti (UI: yükleme halkası, merkez buton). */
2055
- r(this, "onWaitChange", null);
2056
- r(this, "onPlay", (t) => {
2079
+ s(this, "onWaitChange", null);
2080
+ s(this, "onPlay", (t) => {
2057
2081
  this.armed && (t.stopImmediatePropagation(), this.swallowNextPause = !0, this.video.pause(), this.registerIntent());
2058
2082
  });
2059
- r(this, "onPause", (t) => {
2083
+ s(this, "onPause", (t) => {
2060
2084
  this.swallowNextPause && (this.swallowNextPause = !1, t.stopImmediatePropagation());
2061
2085
  });
2062
2086
  this.video = t, t.addEventListener("play", this.onPlay), t.addEventListener("pause", this.onPause);
@@ -2071,7 +2095,7 @@ class Mt {
2071
2095
  get hasPlayIntent() {
2072
2096
  return this.playIntent;
2073
2097
  }
2074
- arm(t = U) {
2098
+ arm(t = j) {
2075
2099
  this.clearTimer(), this.armed = !0, this.playIntent = !1, this.timeoutMs = t;
2076
2100
  }
2077
2101
  /**
@@ -2108,24 +2132,24 @@ class Mt {
2108
2132
  this.timer && clearTimeout(this.timer), this.timer = null;
2109
2133
  }
2110
2134
  }
2111
- const Bt = [
2135
+ const zt = [
2112
2136
  "https://imasdk.googleapis.com",
2113
2137
  "https://pubads.g.doubleclick.net",
2114
2138
  "https://securepubads.g.doubleclick.net",
2115
2139
  "https://pagead2.googlesyndication.com"
2116
2140
  ];
2117
- let de = !1;
2118
- function Rt() {
2119
- if (!(de || typeof document > "u")) {
2120
- de = !0;
2121
- for (const n of Bt) {
2141
+ let ce = !1;
2142
+ function Nt() {
2143
+ if (!(ce || typeof document > "u")) {
2144
+ ce = !0;
2145
+ for (const n of zt) {
2122
2146
  if (document.head.querySelector(`link[rel="preconnect"][href="${n}"]`)) continue;
2123
2147
  const t = document.createElement("link");
2124
2148
  t.rel = "preconnect", t.href = n, document.head.appendChild(t);
2125
2149
  }
2126
2150
  }
2127
2151
  }
2128
- const zt = [0.5, 0.75, 1, 1.25, 1.5, 2], ce = 1200, Ot = 3e3, ue = 5e3, Nt = 10, ge = 10, It = 5, me = "stream-audio", N = "1.0.16", Ft = {
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 = {
2129
2153
  hls: "application/x-mpegurl",
2130
2154
  mp4: "video/mp4",
2131
2155
  webm: "video/webm",
@@ -2135,7 +2159,7 @@ const zt = [0.5, 0.75, 1, 1.25, 1.5, 2], ce = 1200, Ot = 3e3, ue = 5e3, Nt = 10,
2135
2159
  ogg: "audio/ogg",
2136
2160
  wav: "audio/wav",
2137
2161
  flac: "audio/flac"
2138
- }, Dt = (
2162
+ }, Gt = (
2139
2163
  /* html */
2140
2164
  `
2141
2165
  <div class="video-area">
@@ -2146,223 +2170,224 @@ const zt = [0.5, 0.75, 1, 1.25, 1.5, 2], ce = 1200, Ot = 3e3, ue = 5e3, Nt = 10,
2146
2170
  </div>
2147
2171
  `
2148
2172
  );
2149
- function Ht(n) {
2173
+ function Vt(n) {
2150
2174
  if (typeof n == "number") return Number.isFinite(n) && n > 0 ? String(n) : null;
2151
2175
  if (typeof n != "string") return null;
2152
2176
  const t = n.trim().match(/^(\d+(?:\.\d+)?)\s*(?:[:/]\s*(\d+(?:\.\d+)?))?$/);
2153
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];
2154
2178
  }
2155
- class Ae extends HTMLElement {
2179
+ class Le extends HTMLElement {
2156
2180
  constructor() {
2157
2181
  super();
2158
- r(this, "root");
2159
- r(this, "videoArea");
2160
- r(this, "videoEl");
2161
- r(this, "adLayerEl");
2162
- r(this, "chromeEl");
2163
- r(this, "centerPlayButton");
2164
- r(this, "captionRenderer");
2182
+ s(this, "root");
2183
+ s(this, "videoArea");
2184
+ s(this, "videoEl");
2185
+ s(this, "adLayerEl");
2186
+ s(this, "chromeEl");
2187
+ s(this, "centerPlayButton");
2188
+ s(this, "captionRenderer");
2165
2189
  /** options.miniProgress açıkken kurulur. */
2166
- r(this, "miniProgress", null);
2167
- r(this, "chromeVisible", !0);
2168
- r(this, "sourceManager");
2169
- r(this, "controlBar");
2170
- r(this, "tooltip");
2171
- r(this, "keyboard");
2172
- r(this, "loadingSpinner");
2190
+ s(this, "miniProgress", null);
2191
+ s(this, "chromeVisible", !0);
2192
+ s(this, "sourceManager");
2193
+ s(this, "controlBar");
2194
+ s(this, "tooltip");
2195
+ s(this, "keyboard");
2196
+ s(this, "loadingSpinner");
2173
2197
  /**
2174
2198
  * Preroll kapısı — reklam plugin'i yüklenmeden önce kurulur ki autoplay / ilk play araya kaçmasın.
2175
2199
  * Video'nun 'play'/'pause' dinleyicilerinin İLKİ olmalı (yuttuğu olayları UI ve hp:play görmesin).
2176
2200
  */
2177
- r(this, "prerollGate");
2201
+ s(this, "prerollGate");
2178
2202
  /** Ads plugin kurulumu sürüyor — erken başlatılan kurulum ile sonraki bekleme aynı promise'i paylaşır. */
2179
- r(this, "adsInstall", null);
2203
+ s(this, "adsInstall", null);
2180
2204
  /** Yükleme halkası açık (medya takıldı / preroll bekleniyor) — kontroller bu sırada otomatik gizlenmez. */
2181
- r(this, "loadingActive", !1);
2182
- r(this, "errorScreen");
2205
+ s(this, "loadingActive", !1);
2206
+ s(this, "errorScreen");
2183
2207
  /** İleri/geri sarmada sağda/solda beliren anlık bildirim. */
2184
- r(this, "seekFeedback");
2185
- r(this, "contextMenu");
2208
+ s(this, "seekFeedback");
2209
+ s(this, "contextMenu");
2186
2210
  /** options.contextMenu çözülmüş hali — null = kapalı (tarayıcının kendi menüsü). */
2187
- r(this, "contextMenuConfig", { stats: !1 });
2211
+ s(this, "contextMenuConfig", { stats: !1 });
2188
2212
  /** İlk açılışta yüklenir (plugins/stats). */
2189
- r(this, "statsPanel", null);
2190
- r(this, "debugPanel", null);
2213
+ s(this, "statsPanel", null);
2214
+ s(this, "debugPanel", null);
2191
2215
  /** options.debug — sağ tık menüsündeki "Hata ayıklama" girişini açar. */
2192
- r(this, "debugEnabled", !1);
2216
+ s(this, "debugEnabled", !1);
2193
2217
  /** Player'ın tüm hataları (medya, yayın, reklam, altyazı) — her zaman tutulur; bkz. `errorLog`. */
2194
- r(this, "log", new wt());
2218
+ s(this, "log", new Et());
2195
2219
  /** Son basılan işaretçi türü — sağ tık menüsü yalnızca fareyle (dokunmatikte uzun basma gesture'a ait). */
2196
- r(this, "lastPointerType", "mouse");
2220
+ s(this, "lastPointerType", "mouse");
2197
2221
  /** options.tapGestures kuruluysa (plugins/tap-gestures). */
2198
- r(this, "tapGestures", null);
2222
+ s(this, "tapGestures", null);
2199
2223
  /** Dokunmadan sonra tarayıcının ürettiği uyumluluk mouse olayları ikinci bir dokunuş sayılmasın. */
2200
- r(this, "lastTouchEndAt", 0);
2224
+ s(this, "lastTouchEndAt", 0);
2201
2225
  /** Video alanı boyutu değişince merkez play butonunun yerini yeniden hesaplar. */
2202
- r(this, "centerPlayObserver", null);
2203
- r(this, "tapToPlay", "auto");
2204
- r(this, "adsController", null);
2205
- r(this, "gestureControls", null);
2206
- r(this, "loopSection", null);
2207
- r(this, "audioStage", null);
2226
+ s(this, "centerPlayObserver", null);
2227
+ s(this, "tapToPlay", "auto");
2228
+ s(this, "adsController", null);
2229
+ s(this, "gestureControls", null);
2230
+ s(this, "loopSection", null);
2231
+ s(this, "audioStage", null);
2208
2232
  /** Kalite kilidi (rewardedUnlock eklentisi) — kilitliyse yüksek kaliteler menüde kilitli, HLS'te üst sınır var. */
2209
- r(this, "qualityGate", null);
2210
- r(this, "rewardedUnlock", null);
2211
- r(this, "sponsorship", null);
2233
+ s(this, "qualityGate", null);
2234
+ s(this, "rewardedUnlock", null);
2235
+ s(this, "sponsorship", null);
2212
2236
  /** Son uygulanan MP4 kaynak listesi ve seçili etiket — kilit açılınca menü yeniden kurulur. */
2213
2237
  /** Çalan biçim grubunun kaynakları (kalite menüsü bunlar) — bkz. `sourceGroups`. */
2214
- r(this, "currentSources", []);
2238
+ s(this, "currentSources", []);
2215
2239
  /** `sources` biçime göre gruplu, `sourcePriority` sırasıyla; ölümcül hatada sıradakine geçilir. */
2216
- r(this, "sourceGroups", []);
2217
- r(this, "activeGroup", 0);
2240
+ s(this, "sourceGroups", []);
2241
+ s(this, "activeGroup", 0);
2218
2242
  /** Sıradaki gruba geçiş başladı — aynı arızanın ikinci hata olayı hata ekranı açmasın. */
2219
- r(this, "fallbackPending", !1);
2243
+ s(this, "fallbackPending", !1);
2220
2244
  /** hls.js ölümcül hatasının MediaError karşılığı (video.error oluşmaz) — hp:sourcefallback detayı için. */
2221
- r(this, "streamErrorCode");
2222
- r(this, "activeSourceLabel", "");
2223
- r(this, "lastHlsLevels", []);
2224
- r(this, "lastHlsActive", -1);
2245
+ s(this, "streamErrorCode");
2246
+ s(this, "activeSourceLabel", "");
2247
+ s(this, "lastHlsLevels", []);
2248
+ s(this, "lastHlsActive", -1);
2225
2249
  /** options.audio — kapak + plak sahnesi, kontroller hep görünür, tam ekran yok. */
2226
- r(this, "audioMode", !1);
2227
- r(this, "inViewAutoplay", null);
2228
- r(this, "unregisterSticky", null);
2229
- r(this, "playlistRunner", null);
2230
- r(this, "hopeStory", null);
2231
- r(this, "markProgress", null);
2232
- r(this, "segments", null);
2233
- r(this, "spriteThumbnails", null);
2234
- r(this, "countdownScreen", null);
2235
- r(this, "geoChecker", null);
2236
- r(this, "redirectScreen", null);
2237
- r(this, "qrResume", null);
2238
- r(this, "pauseAd", null);
2239
- r(this, "adTriggers", null);
2240
- r(this, "castController", null);
2250
+ s(this, "audioMode", !1);
2251
+ s(this, "inViewAutoplay", null);
2252
+ s(this, "unregisterSticky", null);
2253
+ s(this, "playlistRunner", null);
2254
+ s(this, "hopeStory", null);
2255
+ s(this, "markProgress", null);
2256
+ s(this, "segments", null);
2257
+ s(this, "spriteThumbnails", null);
2258
+ s(this, "countdownScreen", null);
2259
+ s(this, "geoChecker", null);
2260
+ s(this, "redirectScreen", null);
2261
+ s(this, "redirectKey", "");
2262
+ s(this, "qrResume", null);
2263
+ s(this, "pauseAd", null);
2264
+ s(this, "adTriggers", null);
2265
+ s(this, "castController", null);
2241
2266
  /** İçerik Chromecast'te oynuyor (player kumanda) — yerel reklam / otomatik oynatma devre dışı. */
2242
- r(this, "casting", !1);
2243
- r(this, "dubbing", null);
2244
- r(this, "liveWallClock", null);
2245
- r(this, "daiController", null);
2246
- r(this, "instanceKey");
2247
- r(this, "subtitleTracks", []);
2267
+ s(this, "casting", !1);
2268
+ s(this, "dubbing", null);
2269
+ s(this, "liveWallClock", null);
2270
+ s(this, "daiController", null);
2271
+ s(this, "instanceKey");
2272
+ s(this, "subtitleTracks", []);
2248
2273
  /** Altyazı seçiminin tek giriş noktası — iOS native tam ekrandan dönüşte de kullanılır. */
2249
- r(this, "selectCaption", null);
2274
+ s(this, "selectCaption", null);
2250
2275
  /** `applyOptions()`'ta aktif bir altyazı track'i seçiliyken `true` — dil değişince Boyut/Konum görünümünü tazelemek için. */
2251
- r(this, "captionTrackActive", !1);
2276
+ s(this, "captionTrackActive", !1);
2252
2277
  /** `options.subtitles` izleri. */
2253
- r(this, "optionTracks", []);
2278
+ s(this, "optionTracks", []);
2254
2279
  /** Yayının izleri: hls.js'ten (havuzda, `sub:`/`cc:`) ya da tarayıcının native HLS in-band izleri (`native:`). */
2255
- r(this, "streamTracks", []);
2280
+ s(this, "streamTracks", []);
2256
2281
  /** hls.js aynı cue'yu (seek sonrası) yeniden gönderebilir — iz başına eklenenler. */
2257
- r(this, "streamCueKeys", /* @__PURE__ */ new Map());
2282
+ s(this, "streamCueKeys", /* @__PURE__ */ new Map());
2258
2283
  /** Seçili altyazı — yayın izleri sonradan gelince seçim korunur. */
2259
- r(this, "activeCaptionLabel", null);
2260
- r(this, "streamAudio", { tracks: [], active: -1 });
2284
+ s(this, "activeCaptionLabel", null);
2285
+ s(this, "streamAudio", { tracks: [], active: -1 });
2261
2286
  /**
2262
2287
  * countdownScreen varken gerçek init (kaynak + içerik plugin'leri) ertelenir; en güncel options snapshot'ı.
2263
2288
  * onComplete kaydı tek sefer yapılır (bkz. playbackInitRegistered) — init birden fazla kez tetiklenmesin.
2264
2289
  */
2265
- r(this, "pendingPlaybackOptions", null);
2266
- r(this, "playbackInitRegistered", !1);
2290
+ s(this, "pendingPlaybackOptions", null);
2291
+ s(this, "playbackInitRegistered", !1);
2267
2292
  /**
2268
2293
  * countdownScreen gibi alanlar yalnızca .options ile gelir. connectedCallback'teki ilk (options'suz) geçiş chrome'u
2269
2294
  * bir an açıp player'ı gösteriyordu; 'boot' bloklayıcısı gerçek options gelene kadar bekletir.
2270
2295
  */
2271
- r(this, "bootResolved", !1);
2272
- r(this, "bootGraceTimer", null);
2296
+ s(this, "bootResolved", !1);
2297
+ s(this, "bootGraceTimer", null);
2273
2298
  /**
2274
2299
  * Son uygulanan `.options` nesnesi + attribute'lar. `.options` element sayfaya eklenmeden önce verilince
2275
2300
  * connectedCallback AYNI seçenekleri yeniden uyguluyordu; değişen bir şey yoksa bu ikinci geçiş atlanır.
2276
2301
  */
2277
- r(this, "lastSynced", null);
2302
+ s(this, "lastSynced", null);
2278
2303
  /**
2279
2304
  * applyOptions'ın asenkron kısmı (plugin kurulumu + kaynak yükleme) aynı anda tek kez çalışır. İki geçiş
2280
2305
  * üst üste binince `!this.adsController` gibi kontroller ikisinde de geçiyor, plugin (ör. IMA) iki kez kuruluyordu.
2281
2306
  * Çalışırken gelen seçenekler bekletilir; bitince yalnızca en sonuncusu uygulanır.
2282
2307
  */
2283
- r(this, "pluginApplyRun", null);
2284
- r(this, "pendingPluginOptions", null);
2285
- r(this, "_options", {});
2286
- r(this, "hideTimer", null);
2287
- r(this, "cursorTimer", null);
2308
+ s(this, "pluginApplyRun", null);
2309
+ s(this, "pendingPluginOptions", null);
2310
+ s(this, "_options", {});
2311
+ s(this, "hideTimer", null);
2312
+ s(this, "cursorTimer", null);
2288
2313
  /** null = imleç hiç gizlenmez (options.cursorHideDelayMs: false). */
2289
- r(this, "cursorHideDelayMs", ue);
2314
+ s(this, "cursorHideDelayMs", me);
2290
2315
  /** Fare kontrollerin (buton/seek bar) üzerinde mi — üzerindeyken otomatik gizlenmez; videonun üstünde hareketsizse gizlenir. */
2291
- r(this, "pointerOverControls", !1);
2316
+ s(this, "pointerOverControls", !1);
2292
2317
  /** Kalite menüsünde şu an HLS seviyeleri mi var (kaynak değişince temizlemek için). */
2293
- r(this, "hlsQualitiesShown", !1);
2318
+ s(this, "hlsQualitiesShown", !1);
2294
2319
  /** Son uygulanan options.showRemainingTime — bkz. applyOptions. */
2295
- r(this, "appliedShowRemaining");
2296
- r(this, "autoHideDelayMs", ce);
2297
- r(this, "tapCandidate", !1);
2298
- r(this, "tapStartX", 0);
2299
- r(this, "tapStartY", 0);
2320
+ s(this, "appliedShowRemaining");
2321
+ s(this, "autoHideDelayMs", ue);
2322
+ s(this, "tapCandidate", !1);
2323
+ s(this, "tapStartX", 0);
2324
+ s(this, "tapStartY", 0);
2300
2325
  /** Tüm UI'ın paylaştığı tek, mutable sözlük — dil değişince referans değil alanlar güncellenir. */
2301
- r(this, "i18n", Se("tr"));
2326
+ s(this, "i18n", Ae("tr"));
2302
2327
  /** IMA SDK'nın kendi ad-UI dili (skip butonu/sayaç metni) de aynı dili takip etsin diye — bkz. plugins/ads/AdsController. */
2303
- r(this, "localeCode", "tr");
2304
- r(this, "onMediaError", () => {
2328
+ s(this, "localeCode", "tr");
2329
+ s(this, "onMediaError", () => {
2305
2330
  const e = this.videoEl.error;
2306
2331
  if (!e) return;
2307
- const i = { 1: "MEDIA_ERR_ABORTED", 2: "MEDIA_ERR_NETWORK", 3: "MEDIA_ERR_DECODE", 4: "MEDIA_ERR_SRC_NOT_SUPPORTED" }, s = this.videoEl.currentSrc;
2332
+ const i = { 1: "MEDIA_ERR_ABORTED", 2: "MEDIA_ERR_NETWORK", 3: "MEDIA_ERR_DECODE", 4: "MEDIA_ERR_SRC_NOT_SUPPORTED" }, r = this.videoEl.currentSrc;
2308
2333
  this.log.add({
2309
2334
  source: "media",
2310
2335
  message: e.message || i[e.code] || `MediaError ${e.code}`,
2311
2336
  fatal: !0,
2312
- details: { code: e.code, name: i[e.code], src: s && !s.startsWith("blob:") ? s : s ? "MediaSource (hls.js)" : void 0 }
2337
+ details: { code: e.code, name: i[e.code], src: r && !r.startsWith("blob:") ? r : r ? "MediaSource (hls.js)" : void 0 }
2313
2338
  });
2314
2339
  });
2315
- r(this, "onSubtitleError", (e) => {
2340
+ s(this, "onSubtitleError", (e) => {
2316
2341
  const i = e.detail;
2317
2342
  this.log.add({ source: "subtitles", message: `Subtitle file could not be loaded: ${i.message}`, details: { src: i.src } });
2318
2343
  });
2319
- r(this, "onPointerTypeTrack", (e) => {
2344
+ s(this, "onPointerTypeTrack", (e) => {
2320
2345
  this.lastPointerType = e.pointerType;
2321
2346
  });
2322
2347
  /** Sağ tık: tarayıcı menüsü yerine player adı + sürüm (options.contextMenu). */
2323
- r(this, "onContextMenu", (e) => {
2348
+ s(this, "onContextMenu", (e) => {
2324
2349
  const i = this.contextMenuConfig;
2325
2350
  !i || this.lastPointerType !== "mouse" || (e.preventDefault(), this.contextMenu.show(e.clientX, e.clientY, [
2326
- { label: "HopeCorePlayer", meta: `v${N}` },
2351
+ { label: "HopeCorePlayer", meta: `v${I}` },
2327
2352
  ...i.stats ? [{ label: this.i18n.statsTitle, onSelect: () => void this.toggleStats(!0) }] : [],
2328
2353
  // Yalnızca debug açıkken ve kayıtlı bir hata varsa.
2329
2354
  ...this.debugEnabled && this.log.entries.length ? [{ label: this.i18n.debugTitle, meta: String(this.log.entries.length), onSelect: () => void this.showDebugLog() }] : []
2330
2355
  ]));
2331
2356
  });
2332
- r(this, "onStreamTextTracks", (e) => {
2333
- const i = this.streamTracks.filter((s) => s.id.startsWith("native:"));
2357
+ s(this, "onStreamTextTracks", (e) => {
2358
+ const i = this.streamTracks.filter((r) => r.id.startsWith("native:"));
2334
2359
  if (!e.length)
2335
- ke(this.videoEl, "stream"), this.streamCueKeys.clear(), this.streamTracks = i;
2360
+ we(this.videoEl, "stream"), this.streamCueKeys.clear(), this.streamTracks = i;
2336
2361
  else {
2337
- const s = new Set([...this.optionTracks, ...i].map((o) => o.label));
2362
+ const r = new Set([...this.optionTracks, ...i].map((o) => o.label));
2338
2363
  this.streamTracks = [
2339
2364
  ...i,
2340
2365
  ...e.map((o) => {
2341
- const a = this.uniqueLabel(this.streamTrackLabel(o.label, o.lang) || o.id, o.kind === "captions" ? "CC" : o.lang || o.kind, s);
2342
- return { id: o.id, label: a, track: xe(this.videoEl, "stream", o.kind, a, o.lang) };
2366
+ const a = this.uniqueLabel(this.streamTrackLabel(o.label, o.lang) || o.id, o.kind === "captions" ? "CC" : o.lang || o.kind, r);
2367
+ return { id: o.id, label: a, track: ke(this.videoEl, "stream", o.kind, a, o.lang) };
2343
2368
  })
2344
2369
  ];
2345
2370
  }
2346
2371
  this.rebuildCaptions(this.activeCaptionLabel);
2347
2372
  });
2348
- r(this, "onStreamCues", (e, i) => {
2373
+ s(this, "onStreamCues", (e, i) => {
2349
2374
  var a;
2350
- const s = (a = this.streamTracks.find((l) => l.id === e)) == null ? void 0 : a.track;
2351
- if (!s) return;
2352
- let o = this.streamCueKeys.get(s);
2353
- o || this.streamCueKeys.set(s, o = /* @__PURE__ */ new Set());
2375
+ const r = (a = this.streamTracks.find((l) => l.id === e)) == null ? void 0 : a.track;
2376
+ if (!r) return;
2377
+ let o = this.streamCueKeys.get(r);
2378
+ o || this.streamCueKeys.set(r, o = /* @__PURE__ */ new Set());
2354
2379
  for (const l of i) {
2355
2380
  const h = `${l.startTime}|${l.endTime}|${l.text}`;
2356
- o.has(h) || (o.add(h), s.addCue(l));
2381
+ o.has(h) || (o.add(h), r.addCue(l));
2357
2382
  }
2358
2383
  });
2359
2384
  /** Tarayıcının kendi (native HLS) altyazı izleri — bizim havuz izlerimiz ve metadata izleri hariç. */
2360
- r(this, "onNativeTextTracksChanged", () => {
2361
- const e = Array.from(this.videoEl.textTracks).filter((a) => (a.kind === "subtitles" || a.kind === "captions") && !et(a)), i = this.streamTracks.some((a) => a.id.startsWith("native:"));
2385
+ s(this, "onNativeTextTracksChanged", () => {
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:"));
2362
2387
  if (!e.length && !i) return;
2363
- const s = this.streamTracks.filter((a) => !a.id.startsWith("native:")), o = new Set([...this.optionTracks, ...s].map((a) => a.label));
2388
+ const r = this.streamTracks.filter((a) => !a.id.startsWith("native:")), o = new Set([...this.optionTracks, ...r].map((a) => a.label));
2364
2389
  this.streamTracks = [
2365
- ...s,
2390
+ ...r,
2366
2391
  ...e.map((a, l) => ({
2367
2392
  id: `native:${l}`,
2368
2393
  label: this.uniqueLabel(a.label || a.language || `${this.i18n.captions} ${l + 1}`, a.language || String(l + 1), o),
@@ -2371,23 +2396,23 @@ class Ae extends HTMLElement {
2371
2396
  ], this.rebuildCaptions(this.activeCaptionLabel);
2372
2397
  });
2373
2398
  /** Yayında birden fazla ses izi varsa ayarlarda "Ses" alt menüsü (HLS alternatif ses / Safari audioTracks). */
2374
- r(this, "onStreamAudioTracks", (e, i) => {
2399
+ s(this, "onStreamAudioTracks", (e, i) => {
2375
2400
  this.streamAudio = { tracks: e, active: i };
2376
- const s = 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)]));
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)]));
2377
2402
  if (e.length <= 1) {
2378
- s.unregisterSubmenu(me);
2403
+ r.unregisterSubmenu(fe);
2379
2404
  return;
2380
2405
  }
2381
- s.registerSubmenu({
2382
- key: me,
2406
+ r.registerSubmenu({
2407
+ key: fe,
2383
2408
  title: this.i18n.audioTrack,
2384
2409
  getValueLabel: () => a.get(i) ?? "",
2385
2410
  getItems: () => e.map((l) => ({ label: a.get(l.index), active: l.index === i, onSelect: () => this.sourceManager.setAudioTrack(l.index) }))
2386
2411
  });
2387
2412
  });
2388
2413
  /** Playlist panelinin monte edileceği, .video-area'nın ALTINDAKİ (shadow root içi) kapsayıcı — ilk ihtiyaçta oluşturulur. */
2389
- r(this, "panelContainer", null);
2390
- r(this, "onHlsLevelsChanged", (e, i) => {
2414
+ s(this, "panelContainer", null);
2415
+ s(this, "onHlsLevelsChanged", (e, i) => {
2391
2416
  var l;
2392
2417
  if (this.lastHlsLevels = e, this.lastHlsActive = i, e.length === 0 && this.hlsQualitiesShown) {
2393
2418
  this.hlsQualitiesShown = !1, this.controlBar.setQualities([], "");
@@ -2395,10 +2420,10 @@ class Ae extends HTMLElement {
2395
2420
  }
2396
2421
  if (e.length <= 1) return;
2397
2422
  this.hlsQualitiesShown = !0;
2398
- const s = (h) => `${h.height}p`, o = this.qualityGate, a = (h) => !!(o != null && o.isLocked(h.height));
2423
+ const r = (h) => `${h.height}p`, o = this.qualityGate, a = (h) => !!(o != null && o.isLocked(h.height));
2399
2424
  if (o) {
2400
- const h = e.filter((p) => !a(p)), c = h.length ? h : [e.reduce((p, g) => g.height < p.height ? g : p)];
2401
- this.sourceManager.setMaxLevel(c.reduce((p, g) => g.height > p.height ? g : p).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);
2402
2427
  } else
2403
2428
  this.sourceManager.setMaxLevel(-1);
2404
2429
  this.controlBar.setQualities(
@@ -2406,43 +2431,43 @@ class Ae extends HTMLElement {
2406
2431
  { label: this.i18n.autoQuality, onSelect: () => this.sourceManager.setLevel(-1) },
2407
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.
2408
2433
  ...[...e].sort((h, c) => c.height - h.height).map((h) => ({
2409
- label: s(h),
2434
+ label: r(h),
2410
2435
  locked: a(h),
2411
2436
  onSelect: a(h) ? () => o == null ? void 0 : o.requestUnlock() : () => this.sourceManager.setLevel(h.index)
2412
2437
  }))
2413
2438
  ],
2414
- i === -1 || !e[i] ? this.i18n.autoQuality : s(e[i])
2439
+ i === -1 || !e[i] ? this.i18n.autoQuality : r(e[i])
2415
2440
  ), (l = this.rewardedUnlock) == null || l.onQualitiesChanged();
2416
2441
  });
2417
- r(this, "onFullscreenChange", (e) => {
2442
+ s(this, "onFullscreenChange", (e) => {
2418
2443
  this.controlBar.setFullscreenState(this.isFullscreenActive()), (e == null ? void 0 : e.type) === "webkitbeginfullscreen" ? this.showCaptionsNatively() : (e == null ? void 0 : e.type) === "webkitendfullscreen" && this.syncCaptionsFromNative();
2419
2444
  });
2420
2445
  // ── Oynatma durumuna göre merkez buton + otomatik gizlenme ──
2421
2446
  // Değer: 'hidden' (tamamen gizle — countdown/geo) ya da 'reduced' (yalnızca oynat/duraklat + ses — ads).
2422
- r(this, "chromeBlockers", /* @__PURE__ */ new Map());
2423
- r(this, "onPlay", () => {
2447
+ s(this, "chromeBlockers", /* @__PURE__ */ new Map());
2448
+ s(this, "onPlay", () => {
2424
2449
  this.matches(":hover") && this.scheduleCursorHide(), this.isChromeBlocked || (this.centerPlayButton.style.opacity = "0", this.centerPlayButton.style.pointerEvents = "none", this.scheduleAutoHide()), this.dispatchEvent(new CustomEvent("hp:play"));
2425
2450
  });
2426
- r(this, "onPause", () => {
2451
+ s(this, "onPause", () => {
2427
2452
  this.hideTimer && clearTimeout(this.hideTimer), this.showCursor(), this.isChromeBlocked || (this.centerPlayButton.style.opacity = "1", this.centerPlayButton.style.pointerEvents = "auto", this.showChrome()), this.dispatchEvent(new CustomEvent("hp:pause"));
2428
2453
  });
2429
- r(this, "onPointerDownFocus", () => {
2454
+ s(this, "onPointerDownFocus", () => {
2430
2455
  var e;
2431
2456
  this.focus(), (e = this.adsController) == null || e.initializeDisplayContainerOnce();
2432
2457
  });
2433
- r(this, "onVideoPressStart", (e) => {
2458
+ s(this, "onVideoPressStart", (e) => {
2434
2459
  this.tapCandidate = !0;
2435
2460
  const i = "touches" in e ? e.touches[0] : e;
2436
2461
  i && (this.tapStartX = i.clientX, this.tapStartY = i.clientY);
2437
2462
  });
2438
- r(this, "onVideoPressEnd", (e) => {
2463
+ s(this, "onVideoPressEnd", (e) => {
2439
2464
  var l, h;
2440
2465
  if (!this.tapCandidate || (this.tapCandidate = !1, this.isChromeBlocked) || (l = this.gestureControls) != null && l.isCurrentlyHolding()) return;
2441
2466
  const i = "changedTouches" in e;
2442
2467
  if (!i && Date.now() - this.lastTouchEndAt < 800) return;
2443
2468
  i && (this.lastTouchEndAt = Date.now());
2444
- const s = i ? e.changedTouches[0] : e;
2445
- if (s && Math.hypot(s.clientX - this.tapStartX, s.clientY - this.tapStartY) > Nt) {
2469
+ const r = i ? e.changedTouches[0] : e;
2470
+ if (r && Math.hypot(r.clientX - this.tapStartX, r.clientY - this.tapStartY) > Ft) {
2446
2471
  i && !this.isChromeBlocked && this.scheduleAutoHide();
2447
2472
  return;
2448
2473
  }
@@ -2450,39 +2475,39 @@ class Ae extends HTMLElement {
2450
2475
  this.videoEl.paused ? this.videoEl.play().catch(() => {
2451
2476
  }) : this.videoEl.pause();
2452
2477
  });
2453
- s && ((h = this.tapGestures) != null && h.handleTap(s.clientX, o === "pen" ? "pen" : o, a)) || a();
2478
+ r && ((h = this.tapGestures) != null && h.handleTap(r.clientX, o === "pen" ? "pen" : o, a)) || a();
2454
2479
  });
2455
- r(this, "onVideoPressCancel", () => {
2480
+ s(this, "onVideoPressCancel", () => {
2456
2481
  this.tapCandidate = !1;
2457
2482
  });
2458
- r(this, "onPointerMove", (e) => {
2483
+ s(this, "onPointerMove", (e) => {
2459
2484
  if (e.pointerType !== "mouse") {
2460
2485
  this.chromeVisible && this.scheduleAutoHide();
2461
2486
  return;
2462
2487
  }
2463
2488
  this.pointerOverControls = e.composedPath().includes(this.chromeEl), this.scheduleAutoHide(), e.pointerType === "mouse" && this.scheduleCursorHide();
2464
2489
  });
2465
- r(this, "onPointerLeave", (e) => {
2490
+ s(this, "onPointerLeave", (e) => {
2466
2491
  e.pointerType === "mouse" && (this.pointerOverControls = !1, this.scheduleAutoHide(), this.showCursor());
2467
2492
  });
2468
- r(this, "scheduleAutoHide", () => {
2493
+ s(this, "scheduleAutoHide", () => {
2469
2494
  this.showChrome(), this.hideTimer && clearTimeout(this.hideTimer), !(this.videoEl.paused || this.loadingActive) && (this.audioMode || (this.hideTimer = setTimeout(() => {
2470
2495
  this.audioMode || this.videoEl.paused || this.loadingActive || this.pointerOverControls || this.controlBar.settingsMenu.isOpen || this.setChromeOpacity("0");
2471
- }, this.lastPointerType === "mouse" ? this.autoHideDelayMs : Math.max(this.autoHideDelayMs, Ot))));
2496
+ }, this.lastPointerType === "mouse" ? this.autoHideDelayMs : Math.max(this.autoHideDelayMs, It))));
2472
2497
  });
2473
- Ct(), this.root = this.attachShadow({ mode: "open" });
2498
+ Tt(), this.root = this.attachShadow({ mode: "open" });
2474
2499
  const e = document.createElement("style");
2475
- e.textContent = Me, this.root.appendChild(e);
2500
+ e.textContent = Be, this.root.appendChild(e);
2476
2501
  const i = document.createElement("div");
2477
- i.className = "hp-root", i.innerHTML = Dt, 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 Mt(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 Ye(this.videoEl), this.root.querySelector(".media-layer").appendChild(this.loadingSpinner.el), this.errorScreen = new Ze(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";
2478
- const s = document.createElement("span");
2479
- s.className = "hp-chip hp:flex hp:items-center hp:justify-center hp:w-16 hp:h-16", s.style.borderRadius = "9999px", s.appendChild(S("play", "hp:text-2xl")), this.centerPlayButton.appendChild(s), this.centerPlayButton.addEventListener("click", (o) => {
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";
2503
+ const r = document.createElement("span");
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) => {
2480
2505
  var p;
2481
2506
  const a = () => {
2482
2507
  this.videoEl.paused && this.videoEl.play();
2483
- }, l = this.lastPointerType === "pen" ? "pen" : this.lastPointerType === "touch" ? "touch" : null, c = o.composedPath().includes(s) ? a : () => this.onBackgroundTap(l ?? "mouse", a);
2508
+ }, l = this.lastPointerType === "pen" ? "pen" : this.lastPointerType === "touch" ? "touch" : null, c = o.composedPath().includes(r) ? a : () => this.onBackgroundTap(l ?? "mouse", a);
2484
2509
  l && ((p = this.tapGestures) != null && p.handleTap(o.clientX, l, c)) || c();
2485
- }), 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 Be(this.videoEl, {
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, {
2486
2511
  onLevelsChanged: this.onHlsLevelsChanged,
2487
2512
  onAudioTracksChanged: this.onStreamAudioTracks,
2488
2513
  onTextTracksFound: this.onStreamTextTracks,
@@ -2497,9 +2522,9 @@ class Ae extends HTMLElement {
2497
2522
  fatal: o.fatal,
2498
2523
  details: { url: o.url, httpStatus: o.httpStatus, reason: o.reason, engine: "hls.js" }
2499
2524
  })
2500
- }), this.errorScreen.setShouldShow(() => !this.sourceManager.isRecovering() && !this.tryNextSourceGroup()), this.controlBar = new qe(
2525
+ }), this.errorScreen.setShouldShow(() => !this.sourceManager.isRecovering() && !this.tryNextSourceGroup()), this.controlBar = new je(
2501
2526
  this.videoEl,
2502
- zt,
2527
+ Ot,
2503
2528
  {
2504
2529
  onRequestFullscreen: () => this.requestFullscreenCompat(),
2505
2530
  liveSyncPosition: () => {
@@ -2537,17 +2562,17 @@ class Ae extends HTMLElement {
2537
2562
  }
2538
2563
  },
2539
2564
  this.i18n
2540
- ), this.chromeEl.appendChild(this.controlBar.el), this.chromeEl.appendChild(this.controlBar.topEl), this.videoArea.appendChild(this.controlBar.volumePanel.unmuteBadge), this.captionRenderer = new R(this.videoEl, this.videoArea, this.controlBar.seekBar.el, this.i18n), this.videoArea.appendChild(this.captionRenderer.layerEl), this.keyboard = new Xe(
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(
2541
2566
  this,
2542
2567
  this.videoEl,
2543
2568
  () => this.isFullscreenActive() ? this.exitFullscreenCompat() : this.requestFullscreenCompat()
2544
- ), this.tooltip = new We(this.videoArea), this.contextMenu = new xt(this.videoArea), this.seekFeedback = new yt(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");
2545
2570
  }
2546
2571
  static get observedAttributes() {
2547
2572
  return ["src", "poster", "autoplay", "muted", "loop", "theme", "locale"];
2548
2573
  }
2549
2574
  connectedCallback() {
2550
- 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(() => {
2551
2576
  this.bootGraceTimer = null, this.bootResolved || (this.bootResolved = !0, this.syncFromAttributes());
2552
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) => {
2553
2578
  e && this.hideTimer && clearTimeout(this.hideTimer), e || this.scheduleAutoHide(), this.tooltip.recheckOcclusion();
@@ -2557,8 +2582,8 @@ class Ae extends HTMLElement {
2557
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"));
2558
2583
  }
2559
2584
  disconnectedCallback() {
2560
- var e, i, s, o, a, l, h, c, p, g, m, f, v, x, d, u, b, y, k, E, C, w, P, q, j, $, Q, K;
2561
- (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(), (s = this.statsPanel) == null || s.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, (g = this.rewardedUnlock) == null || g.destroy(), this.rewardedUnlock = null, (m = this.sponsorship) == null || m.destroy(), this.sponsorship = null, (f = this.adTriggers) == null || f.destroy(), this.adTriggers = null, (v = this.castController) == null || v.destroy(), this.castController = null, (x = this.inViewAutoplay) == null || x.destroy(), (d = this.unregisterSticky) == null || d.call(this), (u = this.playlistRunner) == null || u.destroy(), (b = this.hopeStory) == null || b.destroy(), (y = this.markProgress) == null || y.destroy(), (k = this.segments) == null || k.destroy(), (E = this.spriteThumbnails) == null || E.destroy(), (C = this.countdownScreen) == null || C.destroy(), (w = this.geoChecker) == null || w.destroy(), (P = this.redirectScreen) == null || P.destroy(), (q = this.qrResume) == null || q.destroy(), (j = this.pauseAd) == null || j.destroy(), this.pauseAd = null, ($ = this.dubbing) == null || $.destroy(), (Q = this.liveWallClock) == null || Q.destroy(), (K = this.daiController) == null || K.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;
2562
2587
  }
2563
2588
  /** Reklam/consent-farkında plugin'lerin (gesture/sticky/in-view-autoplay) ortak sorgusu. */
2564
2589
  isAdPlaying() {
@@ -2590,8 +2615,8 @@ class Ae extends HTMLElement {
2590
2615
  /** Hata ayıklama penceresini aç (sağ tık menüsündeki "Hata ayıklama" ile aynı). */
2591
2616
  async showDebugLog() {
2592
2617
  if (!this.debugPanel) {
2593
- const { installDebugPanel: e } = await import("./index-DCXX1ZJG.js");
2594
- 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 }));
2595
2620
  }
2596
2621
  this.debugPanel.show();
2597
2622
  }
@@ -2607,12 +2632,12 @@ class Ae extends HTMLElement {
2607
2632
  async toggleStats(e) {
2608
2633
  if (!this.statsPanel) {
2609
2634
  if (e === !1) return;
2610
- const { installStats: i } = await import("./index-DGtpFgHV.js");
2635
+ const { installStats: i } = await import("./statsPanel-DSClIwA3.js");
2611
2636
  this.statsPanel ?? (this.statsPanel = i({
2612
2637
  videoEl: this.videoEl,
2613
2638
  containerEl: this.videoArea,
2614
2639
  i18n: this.i18n,
2615
- version: N,
2640
+ version: I,
2616
2641
  getEngine: () => this.sourceManager.engine,
2617
2642
  getHls: () => this.sourceManager.hlsInstance
2618
2643
  }));
@@ -2638,7 +2663,7 @@ class Ae extends HTMLElement {
2638
2663
  this.controlBar.toggleTimeMode();
2639
2664
  }
2640
2665
  syncFromAttributes() {
2641
- var s;
2666
+ var r;
2642
2667
  const e = {
2643
2668
  src: this.getAttribute("src") ?? void 0,
2644
2669
  poster: this.getAttribute("poster") ?? void 0,
@@ -2649,7 +2674,7 @@ class Ae extends HTMLElement {
2649
2674
  locale: this.getAttribute("locale") ?? void 0
2650
2675
  }, i = JSON.stringify(e);
2651
2676
  if (this.bootResolved) {
2652
- if (((s = this.lastSynced) == null ? void 0 : s.options) === this._options && this.lastSynced.attrs === i) return;
2677
+ if (((r = this.lastSynced) == null ? void 0 : r.options) === this._options && this.lastSynced.attrs === i) return;
2653
2678
  this.lastSynced = { options: this._options, attrs: i };
2654
2679
  }
2655
2680
  this.applyOptions({ ...e, ...this._options });
@@ -2661,8 +2686,8 @@ class Ae extends HTMLElement {
2661
2686
  this.pendingPluginOptions = null;
2662
2687
  try {
2663
2688
  await this.applyPluginsAndPlayback(i);
2664
- } catch (s) {
2665
- console.error("[hope-player] options could not be applied:", s);
2689
+ } catch (r) {
2690
+ console.error("[hope-player] options could not be applied:", r);
2666
2691
  }
2667
2692
  }
2668
2693
  })().finally(() => {
@@ -2670,23 +2695,23 @@ class Ae extends HTMLElement {
2670
2695
  })), this.pluginApplyRun;
2671
2696
  }
2672
2697
  async applyOptions(e) {
2673
- var a, l, h, c, p, g, m, f, v, x, d, u, b, y, k, E, C, w, P;
2674
- 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 ?? ce, this.tapToPlay = e.tapToPlay ?? "auto", this.cursorHideDelayMs = e.cursorHideDelayMs === !1 ? null : e.cursorHideDelayMs ?? ue, this.cursorHideDelayMs === null && this.showCursor(), e.miniProgress && !this.miniProgress ? (this.miniProgress = new mt(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();
2675
- const i = e.keyboardSeekStep && e.keyboardSeekStep > 0 ? e.keyboardSeekStep : It;
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;
2676
2701
  this.keyboard.seekStep = i, this.controlBar.seekBar.keyboardStep = i;
2677
- const s = e.skipButtons === !0 ? {} : e.skipButtons || null;
2702
+ const r = e.skipButtons === !0 ? {} : e.skipButtons || null;
2678
2703
  this.controlBar.setSkipButtons(
2679
- s && s.back !== !1 ? s.back ?? ge : null,
2680
- s && s.forward !== !1 ? s.forward ?? ge : null
2704
+ r && r.back !== !1 ? r.back ?? ge : null,
2705
+ r && r.forward !== !1 ? r.forward ?? ge : null
2681
2706
  ), e.showRemainingTime !== void 0 && e.showRemainingTime !== this.appliedShowRemaining && (this.appliedShowRemaining = e.showRemainingTime, this.controlBar.setShowRemaining(e.showRemainingTime));
2682
- const o = Ht(e.aspectRatio);
2683
- 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", Lt(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(), (g = this.redirectScreen) == null || g.refreshLabels(), (m = this.qrResume) == null || m.refreshLabels(), (f = this.pauseAd) == null || f.refreshLabels(), (v = this.castController) == null || v.refreshLabels(), (x = this.dubbing) == null || x.refreshLabels(), this.onStreamAudioTracks(this.streamAudio.tracks, this.streamAudio.active), (d = this.statsPanel) == null || d.refreshLabels(), (u = this.debugPanel) == null || u.refreshLabels(), (b = this.liveWallClock) == null || b.refreshLabels(), (y = this.loopSection) == null || y.refreshLabels(), (k = this.audioStage) == null || k.refreshLabels(), (E = this.rewardedUnlock) == null || E.refreshLabels(), (C = this.markProgress) == null || C.refreshLabels(), (P = (w = this.unregisterSticky) == null ? void 0 : w.refreshLabels) == null || P.call(w), 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);
2684
2709
  }
2685
2710
  /** applyOptions'ın asenkron kısmı — yalnızca queuePluginApply üzerinden, sırayla çalışır. */
2686
2711
  async applyPluginsAndPlayback(e) {
2687
2712
  if (e.ads && !this.adsController) {
2688
- const s = e.ads === !0 ? {} : e.ads;
2689
- Pt(s) && !this.prerollGate.isArmed && this.prerollGate.arm(s.prerollTimeoutMs ?? U), Rt(), e.countdownScreen || this.installAdsOnce(e);
2713
+ const r = e.ads === !0 ? {} : e.ads;
2714
+ Bt(r) && !this.prerollGate.isArmed && this.prerollGate.arm(r.prerollTimeoutMs ?? j), Nt(), e.countdownScreen || this.installAdsOnce(e);
2690
2715
  }
2691
2716
  await this.applyAudioMode(e);
2692
2717
  const i = () => ({
@@ -2697,59 +2722,59 @@ class Ae extends HTMLElement {
2697
2722
  i18n: this.i18n
2698
2723
  });
2699
2724
  if (e.countdownScreen && !this.countdownScreen) {
2700
- const { installCountdownScreen: s } = await import("./index-rENB3n9O.js");
2701
- this.countdownScreen = s(i(), e.countdownScreen);
2725
+ const { installCountdownScreen: r } = await import("./countdownScreen-CI-u6jjA.js");
2726
+ this.countdownScreen = r(i(), e.countdownScreen);
2702
2727
  }
2703
2728
  if (e.geoChecker && !this.geoChecker) {
2704
- const { installGeoChecker: s } = await import("./index-BBmuCtKu.js");
2705
- this.geoChecker = s(i(), e.geoChecker);
2729
+ const { installGeoChecker: r } = await import("./geoChecker-BRtvHwI-.js");
2730
+ this.geoChecker = r(i(), e.geoChecker);
2706
2731
  }
2707
2732
  this.unblockChrome("boot"), this.countdownScreen && !this.countdownScreen.isComplete() ? (this.pendingPlaybackOptions = e, this.playbackInitRegistered || (this.playbackInitRegistered = !0, this.countdownScreen.onComplete(() => {
2708
- const s = this.pendingPlaybackOptions;
2709
- this.pendingPlaybackOptions = null, s && this.initPlayback(s);
2733
+ const r = this.pendingPlaybackOptions;
2734
+ this.pendingPlaybackOptions = null, r && this.initPlayback(r);
2710
2735
  }))) : await this.initPlayback(e);
2711
2736
  }
2712
2737
  async initPlayback(e) {
2713
- var c, p, g, m, f, v, x;
2738
+ var p, m, u, f, y, x, k, w;
2714
2739
  this.sourceManager.configure(e.hls), this.errorScreen.dismiss(), await this.applyRewardedUnlock(e);
2715
- const i = (c = e.sources) != null && c.length ? e.sources : e.src ? [{ src: e.src, label: this.i18n.autoQuality }] : [];
2716
- this.sourceGroups = Re(i, e.sourcePriority);
2717
- const s = (d) => this.sourceManager.isLoaded(d.src, d.type) && !this.isSourceLocked(d), o = this.sourceGroups.findIndex((d) => d.sources.some(s));
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));
2718
2743
  this.activeGroup = o !== -1 ? o : this.firstPlayableGroup();
2719
- const a = ((p = this.sourceGroups[this.activeGroup]) == null ? void 0 : p.sources) ?? [];
2744
+ const a = ((m = this.sourceGroups[this.activeGroup]) == null ? void 0 : m.sources) ?? [];
2720
2745
  this.currentSources = a, this.fallbackPending = !1;
2721
- const h = a.find(s) ?? this.pickInitialSource(a);
2746
+ const h = a.find(r) ?? this.pickInitialSource(a);
2722
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(() => {
2723
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) {
2724
- const d = e.gesture === !0 ? {} : e.gesture, { installGesture: u } = await import("./index-Ca8hocby.js");
2725
- this.gestureControls = u(
2749
+ const d = e.gesture === !0 ? {} : e.gesture, { installGesture: g } = await import("./gesture-BzPCgi87.js");
2750
+ this.gestureControls = g(
2726
2751
  { videoEl: this.videoEl, overlayContainerEl: this.videoArea, isAdActive: () => this.isAdPlaying() },
2727
2752
  d
2728
2753
  );
2729
2754
  }
2730
2755
  if (e.loopSection && !this.loopSection) {
2731
- const d = e.loopSection === !0 ? {} : e.loopSection, { installLoopSection: u } = await import("./index-f0vSgRIK.js");
2732
- this.loopSection = u(
2756
+ const d = e.loopSection === !0 ? {} : e.loopSection, { installLoopSection: g } = await import("./loopSection-CvF4l5uf.js");
2757
+ this.loopSection = g(
2733
2758
  {
2734
2759
  videoEl: this.videoEl,
2735
2760
  seekBarEl: this.controlBar.seekBar.el,
2736
2761
  markers: this.controlBar.seekBar,
2737
- addControlButton: (b, y, k) => this.controlBar.addButton(b, y, k),
2762
+ addControlButton: (b, E, C) => this.controlBar.addButton(b, E, C),
2738
2763
  i18n: this.i18n
2739
2764
  },
2740
2765
  d
2741
2766
  );
2742
2767
  }
2743
2768
  if (e.inViewAutoplay && !this.inViewAutoplay) {
2744
- const d = e.inViewAutoplay === !0 ? {} : e.inViewAutoplay, { installInViewAutoplay: u } = await import("./index-3QALpwsf.js");
2745
- this.inViewAutoplay = u(
2769
+ const d = e.inViewAutoplay === !0 ? {} : e.inViewAutoplay, { installInViewAutoplay: g } = await import("./inViewAutoplay-CRJe7GA4.js");
2770
+ this.inViewAutoplay = g(
2746
2771
  { videoEl: this.videoEl, observeEl: this, isAdActive: () => this.isAdPlaying() || this.casting },
2747
2772
  d
2748
2773
  );
2749
2774
  }
2750
2775
  if (e.sticky && !this.unregisterSticky) {
2751
- const d = e.sticky === !0 ? {} : e.sticky, { installSticky: u } = await import("./index-CDDke5rz.js");
2752
- this.unregisterSticky = u(
2776
+ const d = e.sticky === !0 ? {} : e.sticky, { installSticky: g } = await import("./sticky-D_eLCNFk.js");
2777
+ this.unregisterSticky = g(
2753
2778
  {
2754
2779
  key: this.instanceKey,
2755
2780
  videoEl: this.videoEl,
@@ -2763,19 +2788,19 @@ class Ae extends HTMLElement {
2763
2788
  );
2764
2789
  }
2765
2790
  if (e.playlist && !this.playlistRunner) {
2766
- const { installPlaylist: d } = await import("./index-D3Z7ZDLJ.js");
2791
+ const { installPlaylist: d } = await import("./playlist-CI3mRZjo.js");
2767
2792
  this.playlistRunner = d(
2768
2793
  {
2769
2794
  videoEl: this.videoEl,
2770
2795
  hostEl: this,
2771
2796
  panelEl: this.getOrCreatePanelContainer(),
2772
- loadSource: (u, b) => this.sourceManager.load(u, b),
2773
- setPoster: (u) => {
2774
- this.videoEl.poster = u;
2797
+ loadSource: (g, b) => this.sourceManager.load(g, b),
2798
+ setPoster: (g) => {
2799
+ this.videoEl.poster = g;
2775
2800
  },
2776
- requestFreshAd: (u) => {
2801
+ requestFreshAd: (g) => {
2777
2802
  var b;
2778
- return (b = this.adsController) == null ? void 0 : b.resetForNewItem(u);
2803
+ return (b = this.adsController) == null ? void 0 : b.resetForNewItem(g);
2779
2804
  },
2780
2805
  i18n: this.i18n
2781
2806
  },
@@ -2783,20 +2808,20 @@ class Ae extends HTMLElement {
2783
2808
  );
2784
2809
  }
2785
2810
  if (e.story && !this.hopeStory) {
2786
- const { installStory: d } = await import("./index-C3BQGcT3.js");
2811
+ const { installStory: d } = await import("./story-D5Got6-6.js");
2787
2812
  this.hopeStory = d(
2788
2813
  {
2789
2814
  videoEl: this.videoEl,
2790
2815
  hostEl: this,
2791
2816
  videoAreaEl: this.videoArea,
2792
2817
  playerBodyEls: [this.root.querySelector(".media-layer"), this.chromeEl, this.centerPlayButton],
2793
- loadSource: (u, b) => this.sourceManager.load(u, b),
2794
- setPoster: (u) => {
2795
- this.videoEl.poster = u;
2818
+ loadSource: (g, b) => this.sourceManager.load(g, b),
2819
+ setPoster: (g) => {
2820
+ this.videoEl.poster = g;
2796
2821
  },
2797
- requestFreshAd: (u) => {
2822
+ requestFreshAd: (g) => {
2798
2823
  var b;
2799
- return (b = this.adsController) == null ? void 0 : b.resetForNewItem(u);
2824
+ return (b = this.adsController) == null ? void 0 : b.resetForNewItem(g);
2800
2825
  },
2801
2826
  i18n: this.i18n
2802
2827
  },
@@ -2804,23 +2829,23 @@ class Ae extends HTMLElement {
2804
2829
  );
2805
2830
  }
2806
2831
  if (e.markers && !this.markProgress) {
2807
- const { installMarkers: d } = await import("./index-e00_M05B.js");
2832
+ const { installMarkers: d } = await import("./markers-DE4O8xbw.js");
2808
2833
  this.markProgress = d(
2809
2834
  {
2810
2835
  videoEl: this.videoEl,
2811
2836
  overlayContainerEl: this.videoArea,
2812
- addSeekBarMarker: (u, b) => this.controlBar.seekBar.addMarker(u, b),
2837
+ addSeekBarMarker: (g, b) => this.controlBar.seekBar.addMarker(g, b),
2813
2838
  i18n: this.i18n
2814
2839
  },
2815
2840
  e.markers
2816
2841
  );
2817
2842
  }
2818
- if ((g = e.segments) != null && g.length && !this.segments) {
2819
- const { installSegments: d } = await import("./index-CBX7bn-G.js");
2843
+ if ((u = e.segments) != null && u.length && !this.segments) {
2844
+ const { installSegments: d } = await import("./segments-C2HKU6XK.js");
2820
2845
  this.segments = d({ videoEl: this.videoEl, seekBar: this.controlBar.seekBar }, e.segments);
2821
2846
  }
2822
2847
  if (e.spriteThumbnails && !this.spriteThumbnails) {
2823
- const { installSpriteThumbnails: d } = await import("./index-BXSND_xN.js");
2848
+ const { installSpriteThumbnails: d } = await import("./spriteThumbnails-D0NQ5CCp.js");
2824
2849
  this.spriteThumbnails = d(
2825
2850
  {
2826
2851
  videoEl: this.videoEl,
@@ -2830,15 +2855,16 @@ class Ae extends HTMLElement {
2830
2855
  e.spriteThumbnails
2831
2856
  );
2832
2857
  }
2833
- if (e.redirectScreen && !this.redirectScreen) {
2834
- const { installRedirectScreen: d } = await import("./index-D6r-BGAV.js");
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");
2835
2861
  this.redirectScreen = d(
2836
- { videoEl: this.videoEl, overlayContainerEl: this.videoArea, isAdActive: () => this.isAdPlaying(), i18n: this.i18n },
2862
+ { hostEl: this, videoEl: this.videoEl, overlayContainerEl: this.videoArea, isAdActive: () => this.isAdPlaying(), i18n: this.i18n },
2837
2863
  e.redirectScreen
2838
2864
  );
2839
2865
  }
2840
2866
  if (e.qrResume && !this.qrResume) {
2841
- const { installQrResume: d } = await import("./index-DT8-oMPm.js");
2867
+ const { installQrResume: d } = await import("./qrResume-BNy8XCp_.js");
2842
2868
  this.qrResume = d({ videoEl: this.videoEl, overlayContainerEl: this.videoArea, i18n: this.i18n }, e.qrResume);
2843
2869
  }
2844
2870
  if (this.qrResume) {
@@ -2850,12 +2876,12 @@ class Ae extends HTMLElement {
2850
2876
  });
2851
2877
  }
2852
2878
  if (e.tapGestures && !this.tapGestures) {
2853
- const { installTapGestures: d } = await import("./index-C5oGMHF_.js");
2879
+ const { installTapGestures: d } = await import("./tapGestures-DrC42DiI.js");
2854
2880
  this.tapGestures = d(
2855
2881
  {
2856
2882
  areaEl: this.videoArea,
2857
- seekBy: (u) => {
2858
- this.controlBar.seekBar.el.style.pointerEvents !== "none" && (ve(this.videoEl, u), this.seekFeedback.show(u));
2883
+ seekBy: (g) => {
2884
+ this.controlBar.seekBar.el.style.pointerEvents !== "none" && (ye(this.videoEl, g), this.seekFeedback.show(g));
2859
2885
  },
2860
2886
  togglePlay: () => this.videoEl.paused ? void this.videoEl.play().catch(() => {
2861
2887
  }) : this.videoEl.pause(),
@@ -2868,63 +2894,63 @@ class Ae extends HTMLElement {
2868
2894
  );
2869
2895
  }
2870
2896
  if (this.tapGestures) {
2871
- const { DEFAULT_TAP_GESTURES: d } = await import("./index-C5oGMHF_.js");
2897
+ const { DEFAULT_TAP_GESTURES: d } = await import("./tapGestures-DrC42DiI.js");
2872
2898
  this.tapGestures.setGestures(e.tapGestures === !0 ? d : e.tapGestures || []);
2873
2899
  }
2874
- if ((m = e.pauseAd) != null && m.adUnitPath && !this.pauseAd) {
2875
- const { installPauseAd: d } = await import("./index-CDPrkLq0.js");
2900
+ if ((y = e.pauseAd) != null && y.adUnitPath && !this.pauseAd) {
2901
+ const { installPauseAd: d } = await import("./pauseAd-BQQe21X4.js");
2876
2902
  this.pauseAd = d(
2877
2903
  { videoEl: this.videoEl, hostEl: this, videoArea: this.videoArea, i18n: this.i18n, isBlocked: () => this.isChromeBlocked },
2878
2904
  e.pauseAd
2879
2905
  );
2880
2906
  }
2881
2907
  if (e.dubbing && !this.dubbing) {
2882
- const { installDubbing: d } = await import("./index-DXWK4EFa.js");
2908
+ const { installDubbing: d } = await import("./dubbing-kNMPpyHl.js");
2883
2909
  this.dubbing = d(
2884
2910
  {
2885
2911
  videoEl: this.videoEl,
2886
- loadSource: (u, b) => this.sourceManager.load(u, b),
2887
- registerSubmenu: (u) => this.controlBar.settingsMenu.registerSubmenu(u),
2888
- unregisterSubmenu: (u) => this.controlBar.settingsMenu.unregisterSubmenu(u),
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),
2889
2915
  i18n: this.i18n
2890
2916
  },
2891
2917
  e.dubbing
2892
2918
  );
2893
2919
  }
2894
2920
  if (e.liveWallClock && !this.liveWallClock) {
2895
- const d = e.liveWallClock === !0 ? {} : e.liveWallClock, { installLiveWallClock: u } = await import("./index-7IBf8Y-R.js");
2896
- this.liveWallClock = u(
2921
+ const d = e.liveWallClock === !0 ? {} : e.liveWallClock, { installLiveWallClock: g } = await import("./liveWallClock-ChUTtzLD.js");
2922
+ this.liveWallClock = g(
2897
2923
  {
2898
2924
  videoEl: this.videoEl,
2899
2925
  seekBarEl: this.controlBar.seekBar.el,
2900
2926
  addControlElement: (b) => this.controlBar.addElement(b),
2901
2927
  i18n: this.i18n,
2902
2928
  getPlayingDate: () => {
2903
- var E, C, w;
2904
- const b = (E = this.sourceManager.hlsInstance) == null ? void 0 : E.playingDate;
2929
+ var v, T, S;
2930
+ const b = (v = this.sourceManager.hlsInstance) == null ? void 0 : v.playingDate;
2905
2931
  if (b) return b;
2906
- const y = (w = (C = this.videoEl).getStartDate) == null ? void 0 : w.call(C), k = (y == null ? void 0 : y.getTime()) ?? NaN;
2907
- return Number.isFinite(k) && k > 0 ? new Date(k + this.videoEl.currentTime * 1e3) : null;
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;
2908
2934
  }
2909
2935
  },
2910
2936
  d
2911
2937
  ), this.controlBar.seekBar.liveHoverHandled = !0;
2912
2938
  }
2913
2939
  if (e.dai && !this.daiController) {
2914
- const { installDai: d } = await import("./index-Q8FMOHj0.js");
2940
+ const { installDai: d } = await import("./dai-B9Tth1Iv.js");
2915
2941
  this.daiController = await d(
2916
2942
  {
2917
2943
  videoEl: this.videoEl,
2918
2944
  hostEl: this,
2919
2945
  adUiEl: this.adLayerEl,
2920
- loadStreamUrl: (u) => this.sourceManager.load(u),
2946
+ loadStreamUrl: (g) => this.sourceManager.load(g),
2921
2947
  disableSeeking: () => this.disableSeeking(),
2922
2948
  enableSeeking: () => this.enableSeeking()
2923
2949
  },
2924
2950
  e.dai
2925
2951
  );
2926
2952
  }
2927
- (f = e.subtitles) != null && f.length ? this.optionTracks = tt(this.videoEl, e.subtitles) : (we(this.videoEl), this.optionTracks = []), this.rebuildCaptions(((x = (v = e.subtitles) == null ? void 0 : v.find((d) => d.default)) == null ? void 0 : x.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);
2928
2954
  }
2929
2955
  /** Altyazı menüsünü `options.subtitles` + yayın izlerinden kurar; `activeLabel` varsa onu seçer. */
2930
2956
  rebuildCaptions(e) {
@@ -2934,18 +2960,18 @@ class Ae extends HTMLElement {
2934
2960
  }
2935
2961
  const i = (o) => {
2936
2962
  var l;
2937
- const a = it(this.subtitleTracks, o);
2963
+ const a = rt(this.subtitleTracks, o);
2938
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);
2939
2965
  };
2940
2966
  this.selectCaption = i;
2941
- const s = e && this.subtitleTracks.some((o) => o.label === e) ? e : null;
2967
+ const r = e && this.subtitleTracks.some((o) => o.label === e) ? e : null;
2942
2968
  this.controlBar.setCaptions(
2943
2969
  [
2944
2970
  { label: this.i18n.captionsOff, onSelect: () => i(null) },
2945
2971
  ...this.subtitleTracks.map(({ label: o }) => ({ label: o, onSelect: () => i(o) }))
2946
2972
  ],
2947
- s ?? this.i18n.captionsOff
2948
- ), i(s);
2973
+ r ?? this.i18n.captionsOff
2974
+ ), i(r);
2949
2975
  }
2950
2976
  /**
2951
2977
  * Yayın izinin menü adı: manifestteki ad teknik/boşsa ("stream_5", "und", dil kodunun kendisi) dil kodundan
@@ -2961,13 +2987,13 @@ class Ae extends HTMLElement {
2961
2987
  return e || i;
2962
2988
  }
2963
2989
  /** Aynı adlı iz varsa (ör. options.subtitles'ta da "English") dil/sırayla ayırt edilir. */
2964
- uniqueLabel(e, i, s) {
2965
- const o = s.has(e) ? `${e} (${i})` : e;
2966
- return s.add(o), o;
2990
+ uniqueLabel(e, i, r) {
2991
+ const o = r.has(e) ? `${e} (${i})` : e;
2992
+ return r.add(o), o;
2967
2993
  }
2968
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). */
2969
2995
  buildCaptionAppearance() {
2970
- const e = ["small", "normal", "large"], i = (s, o, a, l) => s.map((h, c) => ({
2996
+ const e = ["small", "normal", "large"], i = (r, o, a, l) => r.map((h, c) => ({
2971
2997
  value: h,
2972
2998
  active: o() === h,
2973
2999
  ariaLabel: `${l} ${c + 1}`,
@@ -2975,23 +3001,23 @@ class Ae extends HTMLElement {
2975
3001
  }));
2976
3002
  return {
2977
3003
  sizeLabel: this.i18n.captionSize,
2978
- getSizeOptions: () => e.map((s) => ({
2979
- label: s === "small" ? this.i18n.captionSizeSmall : s === "large" ? this.i18n.captionSizeLarge : this.i18n.captionSizeNormal,
2980
- active: this.captionRenderer.getFontSize() === s,
2981
- onSelect: () => this.captionRenderer.setFontSize(s)
3004
+ getSizeOptions: () => e.map((r) => ({
3005
+ label: r === "small" ? this.i18n.captionSizeSmall : r === "large" ? this.i18n.captionSizeLarge : this.i18n.captionSizeNormal,
3006
+ active: this.captionRenderer.getFontSize() === r,
3007
+ onSelect: () => this.captionRenderer.setFontSize(r)
2982
3008
  })),
2983
3009
  bgColorLabel: this.i18n.captionBgColor,
2984
3010
  getBgColorOptions: () => i(
2985
- R.BG_COLOR_PRESETS,
3011
+ z.BG_COLOR_PRESETS,
2986
3012
  () => this.captionRenderer.getBgColor(),
2987
- (s) => this.captionRenderer.setBgColor(s),
3013
+ (r) => this.captionRenderer.setBgColor(r),
2988
3014
  this.i18n.captionBgColor
2989
3015
  ),
2990
3016
  textColorLabel: this.i18n.captionTextColor,
2991
3017
  getTextColorOptions: () => i(
2992
- R.TEXT_COLOR_PRESETS,
3018
+ z.TEXT_COLOR_PRESETS,
2993
3019
  () => this.captionRenderer.getTextColor(),
2994
- (s) => this.captionRenderer.setTextColor(s),
3020
+ (r) => this.captionRenderer.setTextColor(r),
2995
3021
  this.i18n.captionTextColor
2996
3022
  ),
2997
3023
  resetPositionLabel: this.i18n.captionResetPosition,
@@ -3016,18 +3042,18 @@ class Ae extends HTMLElement {
3016
3042
  pickInitialSource(e) {
3017
3043
  const i = e.find((o) => o.selected) ?? e[0];
3018
3044
  if (!i || !this.isSourceLocked(i)) return i;
3019
- const s = e.filter((o) => !this.isSourceLocked(o));
3020
- return s.length ? s.reduce((o, a) => (this.sourceHeight(a) ?? 0) > (this.sourceHeight(o) ?? 0) ? a : o) : i;
3045
+ const r = e.filter((o) => !this.isSourceLocked(o));
3046
+ return r.length ? r.reduce((o, a) => (this.sourceHeight(a) ?? 0) > (this.sourceHeight(o) ?? 0) ? a : o) : i;
3021
3047
  }
3022
3048
  renderSourceQualities() {
3023
3049
  const e = this.currentSources;
3024
3050
  e.length <= 1 || this.controlBar.setQualities(
3025
3051
  e.map((i) => {
3026
- const s = this.isSourceLocked(i);
3052
+ const r = this.isSourceLocked(i);
3027
3053
  return {
3028
3054
  label: i.label,
3029
- locked: s,
3030
- onSelect: s ? () => {
3055
+ locked: r,
3056
+ onSelect: r ? () => {
3031
3057
  var o;
3032
3058
  return (o = this.qualityGate) == null ? void 0 : o.requestUnlock();
3033
3059
  } : () => void this.switchQualitySource(i)
@@ -3044,8 +3070,8 @@ class Ae extends HTMLElement {
3044
3070
  for (const i of this.lastHlsLevels) this.qualityGate.isLocked(i.height) && e.push(i.height);
3045
3071
  else
3046
3072
  for (const i of this.currentSources) {
3047
- const s = this.sourceHeight(i);
3048
- this.currentSources.length > 1 && this.qualityGate.isLocked(s) && e.push(s ?? 0);
3073
+ const r = this.sourceHeight(i);
3074
+ this.currentSources.length > 1 && this.qualityGate.isLocked(r) && e.push(r ?? 0);
3049
3075
  }
3050
3076
  return e.length ? `${Math.max(...e)}p` : null;
3051
3077
  }
@@ -3055,7 +3081,7 @@ class Ae extends HTMLElement {
3055
3081
  if (this.lastHlsLevels.length > 1)
3056
3082
  this.onHlsLevelsChanged(this.lastHlsLevels, e ? -1 : this.lastHlsActive), e && this.sourceManager.setLevel(-1);
3057
3083
  else if (this.currentSources.length > 1) {
3058
- const s = 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 = s ?? (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);
3059
3085
  a && a.label !== this.activeSourceLabel ? this.switchQualitySource(a) : this.renderSourceQualities();
3060
3086
  }
3061
3087
  (i = this.rewardedUnlock) == null || i.onQualitiesChanged();
@@ -3069,8 +3095,8 @@ class Ae extends HTMLElement {
3069
3095
  if (this.rewardedUnlock)
3070
3096
  this.rewardedUnlock.update(i);
3071
3097
  else {
3072
- const { installRewardedUnlock: s } = await import("./index-BbRYOSvk.js");
3073
- this.rewardedUnlock ?? (this.rewardedUnlock = s(
3098
+ const { installRewardedUnlock: r } = await import("./rewardedUnlock-EyGMB9PK.js");
3099
+ this.rewardedUnlock ?? (this.rewardedUnlock = r(
3074
3100
  {
3075
3101
  hostEl: this,
3076
3102
  videoEl: this.videoEl,
@@ -3097,20 +3123,20 @@ class Ae extends HTMLElement {
3097
3123
  * yüklediği medya (playlist, hikâye, dublaj) çalıyorsa onun adresi.
3098
3124
  */
3099
3125
  contentKey() {
3100
- const e = this.sourceGroups.flatMap((s) => s.sources.map((o) => o.src)), i = this.sourceManager.currentSrc ?? "";
3126
+ const e = this.sourceGroups.flatMap((r) => r.sources.map((o) => o.src)), i = this.sourceManager.currentSrc ?? "";
3101
3127
  return !i || e.includes(i) ? e.join("|") : i;
3102
3128
  }
3103
3129
  async applyCast(e) {
3104
- var s;
3130
+ var r;
3105
3131
  const i = e.cast;
3106
3132
  if (!(i != null && i.chromecast) && !(i != null && i.airplay) && !(i != null && i.remotePlayback)) {
3107
- (s = this.castController) == null || s.destroy(), this.castController = null;
3133
+ (r = this.castController) == null || r.destroy(), this.castController = null;
3108
3134
  return;
3109
3135
  }
3110
3136
  if (this.castController)
3111
3137
  this.castController.update(i);
3112
3138
  else {
3113
- const { installCast: o } = await import("./index-Miba3PD_.js");
3139
+ const { installCast: o } = await import("./cast-DCAT2agI.js");
3114
3140
  this.castController ?? (this.castController = o(
3115
3141
  {
3116
3142
  hostEl: this,
@@ -3134,48 +3160,48 @@ class Ae extends HTMLElement {
3134
3160
  }
3135
3161
  /** TV'ye gönderilecek içerik: o an çalan kaynak (ya da `cast.source`), başlık / kapak, altyazılar, reklam tag'leri. */
3136
3162
  castMedia() {
3137
- var x, d, u, b;
3138
- const e = this._options, i = e.cast ?? {}, s = this.sourceManager.currentSrc;
3139
- if (!s) return null;
3140
- const o = (x = this.currentSources.find((y) => y.src === s)) == null ? void 0 : x.type, a = typeof i.source == "function" ? i.source({ src: s, type: o }) : i.source ?? { src: s, type: o }, l = typeof a == "string" ? { src: a, type: void 0 } : a, h = (y) => new URL(y, document.baseURI).href, c = fe({ src: l.src, type: l.type }), p = typeof e.audio == "object" ? e.audio : null, g = ((d = i.metadata) == null ? void 0 : d.image) ?? (p == null ? void 0 : p.cover) ?? e.poster, m = typeof e.ads == "object" ? e.ads : null, f = (y) => {
3141
- const k = Array.isArray(y) ? y[0] : y;
3142
- return k ? G(k) : void 0;
3143
- }, v = i.ads === !1 ? null : typeof i.ads == "object" ? {
3144
- vmap: i.ads.vmap ? G(i.ads.vmap) : void 0,
3145
- preroll: f(i.ads.preroll),
3146
- midroll: f(i.ads.midroll),
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),
3147
3173
  midrollIntervalSeconds: i.ads.midrollIntervalSeconds,
3148
- postroll: f(i.ads.postroll)
3149
- } : m ? {
3150
- vmap: m.adTagVmap ? G(m.adTagVmap) : void 0,
3151
- preroll: f(m.adTagPreroll),
3152
- midroll: f(m.adTagMidroll),
3153
- midrollIntervalSeconds: m.midrollIntervalSeconds,
3154
- postroll: f(m.adTagPostroll)
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)
3155
3181
  } : null;
3156
3182
  return {
3157
3183
  src: h(l.src),
3158
- contentType: l.type || Ft[c] || "video/mp4",
3184
+ contentType: l.type || Ht[c] || "video/mp4",
3159
3185
  live: this.videoEl.duration === 1 / 0,
3160
- title: ((u = i.metadata) == null ? void 0 : u.title) ?? (p == null ? void 0 : p.title),
3161
- subtitle: ((b = i.metadata) == null ? void 0 : b.subtitle) ?? (p == null ? void 0 : p.artist),
3162
- image: g ? h(g) : void 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,
3163
3189
  music: !!e.audio,
3164
- subtitles: (e.subtitles ?? []).map((y) => ({ src: h(y.src), label: y.label, lang: y.srclang, default: y.default })),
3165
- ads: v && (v.vmap || v.preroll || v.midroll || v.postroll) ? v : null
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
3166
3192
  };
3167
3193
  }
3168
3194
  async applyAdTriggers(e) {
3169
- var s;
3195
+ var r;
3170
3196
  const i = e.adTriggers;
3171
3197
  if (!(i != null && i.endpoint) && !(i != null && i.config)) {
3172
- (s = this.adTriggers) == null || s.destroy(), this.adTriggers = null;
3198
+ (r = this.adTriggers) == null || r.destroy(), this.adTriggers = null;
3173
3199
  return;
3174
3200
  }
3175
3201
  if (this.adTriggers)
3176
3202
  this.adTriggers.update(i);
3177
3203
  else {
3178
- const { installAdTriggers: o } = await import("./index-CWLyz1fp.js");
3204
+ const { installAdTriggers: o } = await import("./adTriggers-4SueRFgK.js");
3179
3205
  this.adTriggers ?? (this.adTriggers = o(
3180
3206
  {
3181
3207
  hostEl: this,
@@ -3193,16 +3219,16 @@ class Ae extends HTMLElement {
3193
3219
  }
3194
3220
  }
3195
3221
  async applySponsorship(e) {
3196
- var s;
3222
+ var r;
3197
3223
  const i = e.sponsorship;
3198
3224
  if (!(i != null && i.endpoint)) {
3199
- (s = this.sponsorship) == null || s.destroy(), this.sponsorship = null;
3225
+ (r = this.sponsorship) == null || r.destroy(), this.sponsorship = null;
3200
3226
  return;
3201
3227
  }
3202
3228
  if (this.sponsorship)
3203
3229
  this.sponsorship.update(i);
3204
3230
  else {
3205
- const { installSponsorship: o } = await import("./index-Ch3ep-eJ.js");
3231
+ const { installSponsorship: o } = await import("./sponsorship-DyFwGmEb.js");
3206
3232
  this.sponsorship ?? (this.sponsorship = o(
3207
3233
  {
3208
3234
  hostEl: this,
@@ -3218,21 +3244,21 @@ class Ae extends HTMLElement {
3218
3244
  /** Kalite değişirken oynatma konumunu ve play/pause durumunu korur. */
3219
3245
  async switchQualitySource(e) {
3220
3246
  this.activeSourceLabel = e.label, this.renderSourceQualities();
3221
- const i = this.videoEl.currentTime, s = !this.videoEl.paused;
3222
- await this.sourceManager.load(e.src, e.type), this.videoEl.currentTime = i, s && this.videoEl.play().catch(() => {
3247
+ const i = this.videoEl.currentTime, r = !this.videoEl.paused;
3248
+ await this.sourceManager.load(e.src, e.type), this.videoEl.currentTime = i, r && this.videoEl.play().catch(() => {
3223
3249
  }), this.dispatchEvent(new CustomEvent("hp:qualitychange", { detail: { label: e.label } }));
3224
3250
  }
3225
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). */
3226
3252
  firstPlayableGroup(e = 0) {
3227
3253
  var i;
3228
- for (let s = e; s < this.sourceGroups.length; s++) {
3229
- const o = this.sourceGroups[s];
3230
- if (!ze(o, this.videoEl)) {
3231
- if (s > e) {
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) {
3232
3258
  const a = this.sourceGroups[e].format;
3233
3259
  this.dispatchEvent(new CustomEvent("hp:sourcefallback", { detail: { from: a, to: o.format, code: 4, skipped: !0 } }));
3234
3260
  }
3235
- return s;
3261
+ return r;
3236
3262
  }
3237
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 } });
3238
3264
  }
@@ -3249,17 +3275,17 @@ class Ae extends HTMLElement {
3249
3275
  if (!e || this.sourceGroups.length < 2 || !e.sources.some((h) => h.src === this.sourceManager.currentSrc)) return !1;
3250
3276
  const i = ((l = this.videoEl.error) == null ? void 0 : l.code) ?? this.streamErrorCode;
3251
3277
  if (this.streamErrorCode = void 0, i === 1) return !1;
3252
- const s = this.firstPlayableGroup(this.activeGroup + 1);
3253
- if (s === -1) return !1;
3278
+ const r = this.firstPlayableGroup(this.activeGroup + 1);
3279
+ if (r === -1) return !1;
3254
3280
  this.fallbackPending = !0;
3255
3281
  const o = Number.isFinite(this.videoEl.duration) ? this.videoEl.currentTime : 0, a = !this.videoEl.paused || !!this._options.autoplay;
3256
3282
  return this.log.add({
3257
3283
  source: "player",
3258
- message: `Source "${e.format}" failed — falling back to "${this.sourceGroups[s].format}"`,
3284
+ message: `Source "${e.format}" failed — falling back to "${this.sourceGroups[r].format}"`,
3259
3285
  details: { code: i, src: this.sourceManager.currentSrc ?? void 0 }
3260
- }), this.dispatchEvent(new CustomEvent("hp:sourcefallback", { detail: { from: e.format, to: this.sourceGroups[s].format, code: i } })), queueMicrotask(() => void this.activateSourceGroup(s, o, a)), !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;
3261
3287
  }
3262
- async activateSourceGroup(e, i, s) {
3288
+ async activateSourceGroup(e, i, r) {
3263
3289
  var l;
3264
3290
  const o = this.sourceGroups[e];
3265
3291
  if (!o) return;
@@ -3271,12 +3297,12 @@ class Ae extends HTMLElement {
3271
3297
  } finally {
3272
3298
  this.fallbackPending = !1;
3273
3299
  }
3274
- this.renderSourceQualities(), (l = this.rewardedUnlock) == null || l.onQualitiesChanged(), s && this.videoEl.play().catch(() => {
3300
+ this.renderSourceQualities(), (l = this.rewardedUnlock) == null || l.onQualitiesChanged(), r && this.videoEl.play().catch(() => {
3275
3301
  });
3276
3302
  }
3277
3303
  /** Hata ekranındaki "Tekrar dene": birden fazla grup varsa en öncelikli gruptan baştan başla. */
3278
3304
  async retrySource() {
3279
- const e = this.sourceGroups.some((s) => s.sources.some((o) => o.src === this.sourceManager.currentSrc));
3305
+ const e = this.sourceGroups.some((r) => r.sources.some((o) => o.src === this.sourceManager.currentSrc));
3280
3306
  if (this.sourceGroups.length < 2 || !e) return this.sourceManager.reload();
3281
3307
  const i = Number.isFinite(this.videoEl.duration) ? this.videoEl.currentTime : 0;
3282
3308
  this.fallbackPending = !0, await this.activateSourceGroup(this.firstPlayableGroup(), i, !0);
@@ -3289,15 +3315,15 @@ class Ae extends HTMLElement {
3289
3315
  requestFullscreenCompat() {
3290
3316
  if (this.audioMode) return;
3291
3317
  const e = this, i = () => {
3292
- var s, o;
3293
- return (o = (s = this.iosVideo).webkitEnterFullscreen) == null ? void 0 : o.call(s);
3318
+ var r, o;
3319
+ return (o = (r = this.iosVideo).webkitEnterFullscreen) == null ? void 0 : o.call(r);
3294
3320
  };
3295
3321
  e.requestFullscreen ? e.requestFullscreen().catch(i) : e.webkitRequestFullscreen ? e.webkitRequestFullscreen() : i();
3296
3322
  }
3297
3323
  exitFullscreenCompat() {
3298
- var i, s;
3324
+ var i, r;
3299
3325
  if (this.iosVideo.webkitDisplayingFullscreen) {
3300
- (s = (i = this.iosVideo).webkitExitFullscreen) == null || s.call(i);
3326
+ (r = (i = this.iosVideo).webkitExitFullscreen) == null || r.call(i);
3301
3327
  return;
3302
3328
  }
3303
3329
  const e = document;
@@ -3335,20 +3361,20 @@ class Ae extends HTMLElement {
3335
3361
  * alanın ortasına alınır, sığmazsa küçülür (en az 40px).
3336
3362
  */
3337
3363
  layoutCenterPlay() {
3338
- const e = this.videoArea, i = e.getBoundingClientRect(), s = this.controlBar.seekBar.el.getBoundingClientRect(), o = () => {
3364
+ const e = this.videoArea, i = e.getBoundingClientRect(), r = this.controlBar.seekBar.el.getBoundingClientRect(), o = () => {
3339
3365
  e.removeAttribute("data-center-play-shifted"), e.style.removeProperty("--hp-center-play-size"), e.style.removeProperty("--hp-center-play-shift"), e.style.removeProperty("--hp-center-play-shift-x");
3340
3366
  };
3341
- if (!i.height || !s.height || !e.hasAttribute("data-compact")) return o();
3342
- const a = 64, l = s.top - i.top - 8;
3367
+ if (!i.height || !r.height || !e.hasAttribute("data-compact")) return o();
3368
+ const a = 64, l = r.top - i.top - 8;
3343
3369
  if (i.height / 2 + a / 2 <= l) return o();
3344
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);
3345
- let g = 0;
3346
- const m = this.controlBar.topEl.getBoundingClientRect();
3347
- if (m.width > 0 && c - h / 2 < m.bottom - i.top) {
3348
- const f = m.left - i.left - 8 - h / 2;
3349
- i.width / 2 > f && (g = Math.round(Math.max(h / 2 + 8, f) - i.width / 2));
3371
+ let m = 0;
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));
3350
3376
  }
3351
- e.setAttribute("data-center-play-shifted", ""), e.style.setProperty("--hp-center-play-shift-x", `${g}px`), e.style.setProperty("--hp-center-play-size", `${h}px`), e.style.setProperty("--hp-center-play-shift", `${p}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`);
3352
3378
  }
3353
3379
  /** Dar player'da dokunmatikte oynat/duraklat yerine kontrolleri göster/gizle (options.tapToPlay). */
3354
3380
  tapTogglesPlay(e) {
@@ -3367,8 +3393,8 @@ class Ae extends HTMLElement {
3367
3393
  }
3368
3394
  /** Chrome görünürlüğünün tek giriş noktası — altyazı da haberdar olur (kontroller gizlenince en alta iner). */
3369
3395
  setChromeOpacity(e) {
3370
- var i, s;
3371
- this.chromeEl.style.opacity = e, this.chromeVisible = e === "1", (i = this.videoArea) == null || i.toggleAttribute("data-chrome-hidden", !this.chromeVisible), (s = this.captionRenderer) == null || s.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();
3372
3398
  }
3373
3399
  /** İnce ilerleme çizgisi: yalnızca kontroller gizliyken; reklam/giriş ekranı (chrome bloklu) sırasında değil. */
3374
3400
  updateMiniProgress() {
@@ -3408,16 +3434,16 @@ class Ae extends HTMLElement {
3408
3434
  }
3409
3435
  /** options.audio: sahneyi kurar, günceller (konum / boyut / devir canlı değişebilir) ya da kaldırır. */
3410
3436
  async applyAudioMode(e) {
3411
- var s;
3437
+ var r;
3412
3438
  const i = e.audio ? e.audio === !0 ? {} : e.audio : null;
3413
3439
  if (this.audioMode = !!i, this.toggleAttribute("data-audio", !!i), this.controlBar.setAudioMode(!!i), this.toggleAttribute("data-audio-compact", (i == null ? void 0 : i.layout) === "compact"), !i) {
3414
- this.controlBar.setAudioBar(null), (s = this.audioStage) == null || s.destroy(), this.audioStage = null;
3440
+ this.controlBar.setAudioBar(null), (r = this.audioStage) == null || r.destroy(), this.audioStage = null;
3415
3441
  return;
3416
3442
  }
3417
3443
  if (this.hideTimer && clearTimeout(this.hideTimer), this.hideTimer = null, this.isChromeBlocked || this.showChrome(), this.audioStage)
3418
3444
  this.audioStage.update(i);
3419
3445
  else {
3420
- const { installAudioStage: o } = await import("./index-BeJNpAyx.js");
3446
+ const { installAudioStage: o } = await import("./audio-LkYgd5Wq.js");
3421
3447
  if (!this.audioMode) return;
3422
3448
  this.audioStage ?? (this.audioStage = o(
3423
3449
  {
@@ -3441,8 +3467,8 @@ class Ae extends HTMLElement {
3441
3467
  if (!this.adsInstall) {
3442
3468
  const i = e.ads === !0 ? {} : e.ads;
3443
3469
  this.adsInstall = (async () => {
3444
- const { installAds: s } = await import("./index-DITXYcHx.js");
3445
- this.adsController = await s(
3470
+ const { installAds: r } = await import("./ads-DPL7m9PV.js");
3471
+ this.adsController = await r(
3446
3472
  {
3447
3473
  videoEl: this.videoEl,
3448
3474
  hostEl: this,
@@ -3476,8 +3502,8 @@ class Ae extends HTMLElement {
3476
3502
  },
3477
3503
  i
3478
3504
  );
3479
- })().catch((s) => {
3480
- this.prerollGate.release(!0), this.adsInstall = null, this.dispatchEvent(new CustomEvent("hp:aderror", { detail: { message: String(s) } }));
3505
+ })().catch((r) => {
3506
+ this.prerollGate.release(!0), this.adsInstall = null, this.dispatchEvent(new CustomEvent("hp:aderror", { detail: { message: String(r) } }));
3481
3507
  });
3482
3508
  }
3483
3509
  return this.adsInstall;
@@ -3498,15 +3524,17 @@ class Ae extends HTMLElement {
3498
3524
  }
3499
3525
  }
3500
3526
  /** Paket sürümü (ör. "1.0.4"). */
3501
- r(Ae, "version", N);
3502
- typeof window < "u" && !customElements.get("hope-player") && customElements.define("hope-player", Ae);
3527
+ s(Le, "version", I);
3528
+ typeof window < "u" && !customElements.get("hope-player") && customElements.define("hope-player", Le);
3503
3529
  export {
3504
- N as H,
3505
- He as L,
3506
- Ae as a,
3507
- S as c,
3508
- T as f,
3509
- G as g,
3510
- B as s
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
3511
3539
  };
3512
- //# sourceMappingURL=index-DEv3YqLg.js.map
3540
+ //# sourceMappingURL=player-C886oKP-.js.map