@hopeplayer/core 1.6.0 → 1.7.0

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 (117) hide show
  1. package/dist/HopePlayerElement.d.ts +23 -0
  2. package/dist/HopePlayerElement.d.ts.map +1 -1
  3. package/dist/chunks/{adTriggers-BIAWe8o4.js → adTriggers-DVqgm92F.js} +94 -93
  4. package/dist/chunks/{adTriggers-BIAWe8o4.js.map → adTriggers-DVqgm92F.js.map} +1 -1
  5. package/dist/chunks/{ads-DlpHPpR9.js → ads-eSKyiH1o.js} +2 -2
  6. package/dist/chunks/{ads-DlpHPpR9.js.map → ads-eSKyiH1o.js.map} +1 -1
  7. package/dist/chunks/audioDescription-cpprKeB-.js +146 -0
  8. package/dist/chunks/audioDescription-cpprKeB-.js.map +1 -0
  9. package/dist/chunks/{cast-vHyi7oV_.js → cast-DEowHmqA.js} +29 -28
  10. package/dist/chunks/{cast-vHyi7oV_.js.map → cast-DEowHmqA.js.map} +1 -1
  11. package/dist/chunks/{docPip-wybMVP1H.js → docPip-Bh6BWPk-.js} +30 -20
  12. package/dist/chunks/docPip-Bh6BWPk-.js.map +1 -0
  13. package/dist/chunks/heatmap-Bz_EMQFk.js +117 -0
  14. package/dist/chunks/heatmap-Bz_EMQFk.js.map +1 -0
  15. package/dist/chunks/{history-CwqLXiZi.js → history-ZSdDDsRF.js} +35 -34
  16. package/dist/chunks/{history-CwqLXiZi.js.map → history-ZSdDDsRF.js.map} +1 -1
  17. package/dist/chunks/interactive-ClJC5Vyo.js +213 -0
  18. package/dist/chunks/interactive-ClJC5Vyo.js.map +1 -0
  19. package/dist/chunks/{markers-L69W3kj6.js → markers-D32rI-x-.js} +2 -2
  20. package/dist/chunks/{markers-L69W3kj6.js.map → markers-D32rI-x-.js.map} +1 -1
  21. package/dist/chunks/multiview-CL1WfJKt.js +295 -0
  22. package/dist/chunks/multiview-CL1WfJKt.js.map +1 -0
  23. package/dist/chunks/{pauseAd-BQQe21X4.js → pauseAd-DF7KGwUs.js} +32 -31
  24. package/dist/chunks/{pauseAd-BQQe21X4.js.map → pauseAd-DF7KGwUs.js.map} +1 -1
  25. package/dist/chunks/{player-D2_HRzot.js → player-B7mYS--8.js} +754 -682
  26. package/dist/chunks/player-B7mYS--8.js.map +1 -0
  27. package/dist/chunks/{playlist-CHfStNbQ.js → playlist-BkhIOfCy.js} +2 -2
  28. package/dist/chunks/{playlist-CHfStNbQ.js.map → playlist-BkhIOfCy.js.map} +1 -1
  29. package/dist/chunks/{pluginHost-cN2uGFeG.js → pluginHost-CXqkjNV1.js} +2 -2
  30. package/dist/chunks/{pluginHost-cN2uGFeG.js.map → pluginHost-CXqkjNV1.js.map} +1 -1
  31. package/dist/chunks/{redirectScreen-TIqLdvBY.js → redirectScreen-DgmjFVJH.js} +51 -39
  32. package/dist/chunks/redirectScreen-DgmjFVJH.js.map +1 -0
  33. package/dist/chunks/rewardedUnlock-BL97P5ht.js +265 -0
  34. package/dist/chunks/{rewardedUnlock-DUqYwXTr.js.map → rewardedUnlock-BL97P5ht.js.map} +1 -1
  35. package/dist/chunks/{segments-Ds-c1b5e.js → segments-CuQQEIAX.js} +2 -2
  36. package/dist/chunks/{segments-Ds-c1b5e.js.map → segments-CuQQEIAX.js.map} +1 -1
  37. package/dist/chunks/share-BdqQ8sGE.js +216 -0
  38. package/dist/chunks/share-BdqQ8sGE.js.map +1 -0
  39. package/dist/chunks/{skipSegments-ByNoF1qZ.js → skipSegments-BbepQ4Y6.js} +2 -2
  40. package/dist/chunks/{skipSegments-ByNoF1qZ.js.map → skipSegments-BbepQ4Y6.js.map} +1 -1
  41. package/dist/chunks/sponsorship-DoAZBbHE.js +241 -0
  42. package/dist/chunks/{sponsorship-BT21uwN5.js.map → sponsorship-DoAZBbHE.js.map} +1 -1
  43. package/dist/chunks/{spriteThumbnails-Cr9UmkM9.js → spriteThumbnails-BYg-DHx4.js} +2 -2
  44. package/dist/chunks/{spriteThumbnails-Cr9UmkM9.js.map → spriteThumbnails-BYg-DHx4.js.map} +1 -1
  45. package/dist/chunks/{story-CodA2dfn.js → story-DcBG6jUg.js} +2 -2
  46. package/dist/chunks/{story-CodA2dfn.js.map → story-DcBG6jUg.js.map} +1 -1
  47. package/dist/chunks/{transcript-LG7E9UYE.js → transcript-CHPQ6S6E.js} +33 -13
  48. package/dist/chunks/transcript-CHPQ6S6E.js.map +1 -0
  49. package/dist/controls/SeekBar.d.ts.map +1 -1
  50. package/dist/hls/SourceManager.d.ts +2 -0
  51. package/dist/hls/SourceManager.d.ts.map +1 -1
  52. package/dist/hope-player.js +3 -3
  53. package/dist/i18n/index.d.ts +9 -0
  54. package/dist/i18n/index.d.ts.map +1 -1
  55. package/dist/i18n/locales/en.d.ts +2 -2
  56. package/dist/i18n/locales/en.d.ts.map +1 -1
  57. package/dist/i18n/locales/tr.d.ts +2 -2
  58. package/dist/i18n/locales/tr.d.ts.map +1 -1
  59. package/dist/i18n/types.d.ts +27 -0
  60. package/dist/i18n/types.d.ts.map +1 -1
  61. package/dist/index.d.ts +1 -1
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/plugins/ad-triggers/index.d.ts.map +1 -1
  64. package/dist/plugins/audio-description/AudioDescription.d.ts +52 -0
  65. package/dist/plugins/audio-description/AudioDescription.d.ts.map +1 -0
  66. package/dist/plugins/audio-description/index.d.ts +6 -0
  67. package/dist/plugins/audio-description/index.d.ts.map +1 -0
  68. package/dist/plugins/audio-description/strings.d.ts +8 -0
  69. package/dist/plugins/audio-description/strings.d.ts.map +1 -0
  70. package/dist/plugins/cast/index.d.ts.map +1 -1
  71. package/dist/plugins/doc-pip/index.d.ts.map +1 -1
  72. package/dist/plugins/doc-pip/strings.d.ts +8 -0
  73. package/dist/plugins/doc-pip/strings.d.ts.map +1 -0
  74. package/dist/plugins/heatmap/Heatmap.d.ts +8 -0
  75. package/dist/plugins/heatmap/Heatmap.d.ts.map +1 -1
  76. package/dist/plugins/heatmap/index.d.ts.map +1 -1
  77. package/dist/plugins/heatmap/strings.d.ts +8 -0
  78. package/dist/plugins/heatmap/strings.d.ts.map +1 -0
  79. package/dist/plugins/history/index.d.ts.map +1 -1
  80. package/dist/plugins/interactive/index.d.ts.map +1 -1
  81. package/dist/plugins/interactive/strings.d.ts +8 -0
  82. package/dist/plugins/interactive/strings.d.ts.map +1 -0
  83. package/dist/plugins/multiview/Multiview.d.ts +92 -0
  84. package/dist/plugins/multiview/Multiview.d.ts.map +1 -0
  85. package/dist/plugins/multiview/index.d.ts +6 -0
  86. package/dist/plugins/multiview/index.d.ts.map +1 -0
  87. package/dist/plugins/multiview/strings.d.ts +8 -0
  88. package/dist/plugins/multiview/strings.d.ts.map +1 -0
  89. package/dist/plugins/pause-ad/index.d.ts.map +1 -1
  90. package/dist/plugins/redirect-screen/index.d.ts.map +1 -1
  91. package/dist/plugins/redirect-screen/strings.d.ts +8 -0
  92. package/dist/plugins/redirect-screen/strings.d.ts.map +1 -0
  93. package/dist/plugins/rewarded/index.d.ts.map +1 -1
  94. package/dist/plugins/share/Share.d.ts +45 -0
  95. package/dist/plugins/share/Share.d.ts.map +1 -0
  96. package/dist/plugins/share/index.d.ts +6 -0
  97. package/dist/plugins/share/index.d.ts.map +1 -0
  98. package/dist/plugins/share/strings.d.ts +8 -0
  99. package/dist/plugins/share/strings.d.ts.map +1 -0
  100. package/dist/plugins/skip-segments/index.d.ts.map +1 -1
  101. package/dist/plugins/sponsorship/index.d.ts.map +1 -1
  102. package/dist/plugins/transcript/index.d.ts.map +1 -1
  103. package/dist/plugins/transcript/strings.d.ts +8 -0
  104. package/dist/plugins/transcript/strings.d.ts.map +1 -0
  105. package/dist/types/index.d.ts +93 -0
  106. package/dist/types/index.d.ts.map +1 -1
  107. package/package.json +1 -1
  108. package/dist/chunks/docPip-wybMVP1H.js.map +0 -1
  109. package/dist/chunks/heatmap-Bb7neaYU.js +0 -92
  110. package/dist/chunks/heatmap-Bb7neaYU.js.map +0 -1
  111. package/dist/chunks/interactive-CgltIneu.js +0 -189
  112. package/dist/chunks/interactive-CgltIneu.js.map +0 -1
  113. package/dist/chunks/player-D2_HRzot.js.map +0 -1
  114. package/dist/chunks/redirectScreen-TIqLdvBY.js.map +0 -1
  115. package/dist/chunks/rewardedUnlock-DUqYwXTr.js +0 -264
  116. package/dist/chunks/sponsorship-BT21uwN5.js +0 -240
  117. package/dist/chunks/transcript-LG7E9UYE.js.map +0 -1
@@ -1,38 +1,38 @@
1
- var Ye = Object.defineProperty;
2
- var Ze = (n, t, e) => t in n ? Ye(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e;
3
- var a = (n, t, e) => Ze(n, typeof t != "symbol" ? t + "" : t, e);
4
- const de = '/*! 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-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-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\\/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-transcript: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(:is(:fullscreen,:-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(:is(:fullscreen,:-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(:is(:fullscreen,:-webkit-full-screen)){background:#000;border-radius:0}:host(:is(:fullscreen,:-webkit-full-screen)) .hp-root{height:100%}:host(:is(:fullscreen,:-webkit-full-screen)) .video-area{aspect-ratio:auto;background:#000;border-radius:0;width:100%;height:100%}:host(:is(:fullscreen,:-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-seek-marker{width:var(--hp-seek-marker-size,6px);height:var(--hp-seek-marker-size,6px);background:var(--hp-seek-marker-color,var(--hp-color-on-surface,#fff));pointer-events:none;z-index:1;border-radius:9999px;transition:scale .15s,opacity .15s;position:absolute;top:50%;translate:-50% -50%;box-shadow:0 0 0 1.5px #00000073,0 1px 4px #00000059}.hp-seekbar:hover .hp-seek-marker,.hp-seekbar:focus-visible .hp-seek-marker{scale:1.35}.hp-seek-marker[data-passed]{opacity:.6}.hp-seekbar .hp-seek-marker[data-hover]{opacity:1;scale:1.8}.hp-seek-time-label{text-overflow:ellipsis;vertical-align:top;max-width:220px;padding-bottom:1px;font-weight:600;line-height:1.4;display:inline-block;overflow:hidden}.hp-seek-marker.hp-seek-marker-loop{background:var(--hp-color-accent,#fff);opacity:1;border-radius:2px;width:3px;height:14px}.hp-seekbar:hover .hp-seek-marker-loop{scale:1 1.15}@media(prefers-reduced-motion:reduce){.hp-seek-marker{transition:none}}.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;line-height:1.4;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}@keyframes hp-redirect-in{0%{opacity:0;transform:translateY(10px)scale(.97)}}@keyframes hp-redirect-fade{0%{opacity:0}}.hp-skip-segment{z-index:23;color:#fff;letter-spacing:.01em;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0e0e12b8;border:1px solid #ffffff8c;border-radius:8px;align-items:center;gap:8px;padding:10px 16px;font:600 14px/1.2 system-ui,-apple-system,sans-serif;transition:opacity .25s,bottom .25s,background-color .15s;animation:.3s cubic-bezier(.2,.8,.2,1) hp-redirect-in;display:inline-flex;position:absolute;overflow:hidden;box-shadow:0 10px 28px -12px #000c}.hp-skip-segment:hover{color:#111;background:#ffffffeb}.hp-skip-segment:focus-visible{outline:2px solid var(--hp-color-accent,#fff);outline-offset:2px}.hp-skip-segment>*{position:relative}.hp-skip-segment-icon{font-size:16px}.hp-skip-segment[data-auto]:before{content:"";transform-origin:0;transform:scaleX(var(--hp-skip-progress,0));background:#ffffff38;transition:transform .25s linear;position:absolute;top:0;right:0;bottom:0;left:0}.hp-skip-segment[data-position=bottom-right]{bottom:76px;right:16px}.hp-skip-segment[data-position=bottom-left]{bottom:76px;left:16px}.hp-skip-segment[data-position=top-right]{top:16px;right:16px}.hp-skip-segment[data-position=top-left]{top:16px;left:16px}.video-area[data-chrome-hidden] .hp-skip-segment[data-position^=bottom]{bottom:16px}.video-area[data-chrome-hidden] .hp-skip-segment[data-faded]{opacity:0;pointer-events:none}.video-area[data-compact] .hp-skip-segment{padding:7px 12px;font-size:12px}.video-area[data-compact] .hp-skip-segment[data-position^=bottom]{bottom:56px}.video-area[data-compact][data-chrome-hidden] .hp-skip-segment[data-position^=bottom]{bottom:10px}@media(prefers-reduced-motion:reduce){.hp-skip-segment{animation:none}}.hp-quality-badge{background:var(--hp-quality-badge-bg,var(--hp-color-accent,#fff));color:var(--hp-quality-badge-color,var(--hp-color-on-accent,#0a0a0a));letter-spacing:.02em;pointer-events:none;border-radius:3px;padding:0 2px;font:800 8px/1.3 system-ui,-apple-system,sans-serif;position:absolute;top:1px;right:-5px;box-shadow:0 1px 3px #00000073}.hp-quality-badge[hidden]{display:none}.video-area[data-compact] .hp-quality-badge{font-size:7px;top:0}.hp-quality-badge[data-low]{color:#0a0a0a;background:#ffffffb3}.hp-chevron-forward{font-size:11px;display:inline-block;transform:rotate(180deg)}:host([data-large-controls]){--hp-ctrl-btn-size:48px;--hp-ctrl-icon-size:22px;--hp-seek-hit-h:30px;--hp-seek-track-h:8px;--hp-seek-track-h-hover:10px;--hp-seek-thumb-size:20px;--hp-caption-font-size:24px}:host([data-large-controls]) .video-area[data-compact]{--hp-caption-font-size:17px}:host([data-zoomed]) video{cursor:grab}:host([data-zoomed]) video:active{cursor:grabbing}.hp-shortcuts{z-index:40;background:#0000008c;place-items:center;padding:12px;animation:.2s hp-redirect-fade;display:grid;position:absolute;top:0;right:0;bottom:0;left:0}.hp-shortcuts-box{color:#fff;background:#0e0e12f0;border-radius:12px;width:min(420px,100%);max-height:100%;padding:14px 16px 16px;font:400 13px/1.4 system-ui,-apple-system,sans-serif;overflow-y:auto;box-shadow:0 18px 40px -14px #000000e6}.hp-shortcuts-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.hp-shortcuts-head h2{margin:0;font-size:15px;font-weight:700}.hp-shortcuts-close{color:#fff;cursor:pointer;background:#ffffff1f;border:0;border-radius:999px;place-items:center;width:30px;height:30px;padding:0;font-size:13px;display:grid}.hp-shortcuts-close:hover{background:#ffffff3d}.hp-shortcuts-close:focus-visible{outline:2px solid var(--hp-color-accent,#fff);outline-offset:2px}.hp-shortcuts-list{grid-template-columns:auto 1fr;align-items:center;gap:8px 14px;margin:0;display:grid}.hp-shortcuts-list dt{white-space:nowrap;flex-wrap:wrap;align-items:center;gap:4px;margin:0;display:flex}.hp-shortcuts-list dd{color:#ffffffd1;margin:0}.hp-shortcuts-list kbd{text-align:center;background:#ffffff14;border:1px solid #ffffff47;border-bottom-width:2px;border-radius:5px;min-width:22px;padding:2px 6px;font:600 11.5px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace}.video-area[data-compact] .hp-shortcuts-box{padding:10px 12px 12px;font-size:12px}@media(prefers-reduced-motion:reduce){.hp-shortcuts{animation:none}}.hp-history-notice{z-index:23;color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0e0e12d1;border-radius:999px;align-items:center;gap:12px;max-width:calc(100% - 32px);padding:8px 8px 8px 14px;font:500 13px/1.3 system-ui,-apple-system,sans-serif;transition:bottom .25s;animation:.3s cubic-bezier(.2,.8,.2,1) hp-redirect-in;display:inline-flex;position:absolute;bottom:76px;left:16px;box-shadow:0 10px 28px -12px #000c}.video-area[data-chrome-hidden] .hp-history-notice{bottom:16px}.hp-history-restart{background:var(--hp-color-accent,#fff);color:var(--hp-color-on-accent,#0a0a0a);cursor:pointer;border:0;border-radius:999px;flex-shrink:0;padding:6px 12px;font:600 12.5px/1.2 system-ui,-apple-system,sans-serif}.hp-history-restart:focus-visible{outline:2px solid var(--hp-color-accent,#fff);outline-offset:2px}.video-area[data-compact] .hp-history-notice{gap:8px;padding:6px 6px 6px 10px;font-size:11.5px;bottom:56px;left:8px}.video-area[data-compact][data-chrome-hidden] .hp-history-notice{bottom:10px}@media(prefers-reduced-motion:reduce){.hp-history-notice{animation:none}}.hp-plugin-layer{z-index:5;transition:opacity .2s;position:absolute}.hp-plugin-layer[data-above]{z-index:30}.hp-plugin-layer[hidden]{display:none}.hp-plugin-layer:not([data-interactive]){pointer-events:none}.hp-plugin-layer:not([data-interactive]) :is(button,a,input,select,textarea,[data-interactive]){pointer-events:auto}.hp-plugin-layer[data-position=fill]{top:0;right:0;bottom:0;left:0}.hp-plugin-layer[data-position=top]{top:12px;left:50%;transform:translate(-50%)}.hp-plugin-layer[data-position=bottom]{bottom:76px;left:50%;transform:translate(-50%)}.hp-plugin-layer[data-position=center]{top:50%;left:50%;transform:translate(-50%,-50%)}.hp-plugin-layer[data-position=top-left]{top:12px;left:12px}.hp-plugin-layer[data-position=top-right]{top:12px;right:12px}.hp-plugin-layer[data-position=bottom-left]{bottom:76px;left:12px}.hp-plugin-layer[data-position=bottom-right]{bottom:76px;right:12px}.video-area[data-chrome-hidden] .hp-plugin-layer:is([data-position=bottom],[data-position=bottom-left],[data-position=bottom-right]){bottom:12px}.video-area[data-compact] .hp-plugin-layer:is([data-position=bottom],[data-position=bottom-left],[data-position=bottom-right]){bottom:56px}.video-area[data-chrome-hidden] .hp-plugin-layer[data-autohide]{opacity:0;pointer-events:none}.video-area[data-chrome-hidden] .hp-plugin-layer[data-autohide] *{pointer-events:none}.hp-plugin-btn svg{width:var(--hp-ctrl-icon-size);height:var(--hp-ctrl-icon-size)}.hp-plugin-btn[aria-pressed=true]{color:var(--hp-color-accent,#fff);background:var(--hp-color-accent,#fff)}@supports (color:color-mix(in lab,red,red)){.hp-plugin-btn[aria-pressed=true]{background:color-mix(in srgb,var(--hp-color-accent,#fff) 18%,transparent)}}.hp-plugin-toast{z-index:35;color:#fff;opacity:0;pointer-events:none;background:#0e0e12d9;border-radius:999px;max-width:calc(100% - 32px);padding:8px 14px;font:500 13px/1.3 system-ui,-apple-system,sans-serif;transition:opacity .2s,transform .2s;position:absolute;top:16px;left:50%;transform:translate(-50%,-6px)}.hp-plugin-toast[data-visible]{opacity:1;transform:translate(-50%)}@media(prefers-reduced-motion:reduce){.hp-plugin-layer,.hp-plugin-toast{transition: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 ie(n) {
6
- return !!n && /MediaSinkAudio/i.test(n.message || "");
1
+ var rt = Object.defineProperty;
2
+ var at = (o, t, e) => t in o ? rt(o, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : o[t] = e;
3
+ var a = (o, t, e) => at(o, typeof t != "symbol" ? t + "" : t, e);
4
+ const ve = '/*! 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-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-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\\/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-share:before{content:""}.hp-icon-skip-back:before{content:""}.hp-icon-skip-forward:before{content:""}.hp-icon-transcript: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(:is(:fullscreen,:-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(:is(:fullscreen,:-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(:is(:fullscreen,:-webkit-full-screen)){background:#000;border-radius:0}:host(:is(:fullscreen,:-webkit-full-screen)) .hp-root{height:100%}:host(:is(:fullscreen,:-webkit-full-screen)) .video-area{aspect-ratio:auto;background:#000;border-radius:0;width:100%;height:100%}:host(:is(:fullscreen,:-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)}.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-seek-marker{width:var(--hp-seek-marker-size,6px);height:var(--hp-seek-marker-size,6px);background:var(--hp-seek-marker-color,var(--hp-color-on-surface,#fff));pointer-events:none;z-index:1;border-radius:9999px;transition:scale .15s,opacity .15s;position:absolute;top:50%;translate:-50% -50%;box-shadow:0 0 0 1.5px #00000073,0 1px 4px #00000059}.hp-seekbar:hover .hp-seek-marker,.hp-seekbar:focus-visible .hp-seek-marker{scale:1.35}.hp-seek-marker[data-passed]{opacity:.6}.hp-seekbar .hp-seek-marker[data-hover]{opacity:1;scale:1.8}.hp-seek-time-label{text-overflow:ellipsis;vertical-align:top;max-width:220px;padding-bottom:1px;font-weight:600;line-height:1.4;display:inline-block;overflow:hidden}.hp-seek-marker.hp-seek-marker-loop{background:var(--hp-color-accent,#fff);opacity:1;border-radius:2px;width:3px;height:14px}.hp-seekbar:hover .hp-seek-marker-loop{scale:1 1.15}@media(prefers-reduced-motion:reduce){.hp-seek-marker{transition:none}}.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;line-height:1.4;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}}@keyframes hp-redirect-in{0%{opacity:0;transform:translateY(10px)scale(.97)}}@keyframes hp-redirect-fade{0%{opacity:0}}.hp-quality-badge{background:var(--hp-quality-badge-bg,var(--hp-color-accent,#fff));color:var(--hp-quality-badge-color,var(--hp-color-on-accent,#0a0a0a));letter-spacing:.02em;pointer-events:none;border-radius:3px;padding:0 2px;font:800 8px/1.3 system-ui,-apple-system,sans-serif;position:absolute;top:1px;right:-5px;box-shadow:0 1px 3px #00000073}.hp-quality-badge[hidden]{display:none}.video-area[data-compact] .hp-quality-badge{font-size:7px;top:0}.hp-quality-badge[data-low]{color:#0a0a0a;background:#ffffffb3}.hp-chevron-forward{font-size:11px;display:inline-block;transform:rotate(180deg)}:host([data-large-controls]){--hp-ctrl-btn-size:48px;--hp-ctrl-icon-size:22px;--hp-seek-hit-h:30px;--hp-seek-track-h:8px;--hp-seek-track-h-hover:10px;--hp-seek-thumb-size:20px;--hp-caption-font-size:24px}:host([data-large-controls]) .video-area[data-compact]{--hp-caption-font-size:17px}:host([data-zoomed]) video{cursor:grab}:host([data-zoomed]) video:active{cursor:grabbing}.hp-shortcuts{z-index:40;background:#0000008c;place-items:center;padding:12px;animation:.2s hp-redirect-fade;display:grid;position:absolute;top:0;right:0;bottom:0;left:0}.hp-shortcuts-box{color:#fff;background:#0e0e12f0;border-radius:12px;width:min(420px,100%);max-height:100%;padding:14px 16px 16px;font:400 13px/1.4 system-ui,-apple-system,sans-serif;overflow-y:auto;box-shadow:0 18px 40px -14px #000000e6}.hp-shortcuts-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.hp-shortcuts-head h2{margin:0;font-size:15px;font-weight:700}.hp-shortcuts-close{color:#fff;cursor:pointer;background:#ffffff1f;border:0;border-radius:999px;place-items:center;width:30px;height:30px;padding:0;font-size:13px;display:grid}.hp-shortcuts-close:hover{background:#ffffff3d}.hp-shortcuts-close:focus-visible{outline:2px solid var(--hp-color-accent,#fff);outline-offset:2px}.hp-shortcuts-list{grid-template-columns:auto 1fr;align-items:center;gap:8px 14px;margin:0;display:grid}.hp-shortcuts-list dt{white-space:nowrap;flex-wrap:wrap;align-items:center;gap:4px;margin:0;display:flex}.hp-shortcuts-list dd{color:#ffffffd1;margin:0}.hp-shortcuts-list kbd{text-align:center;background:#ffffff14;border:1px solid #ffffff47;border-bottom-width:2px;border-radius:5px;min-width:22px;padding:2px 6px;font:600 11.5px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace}.video-area[data-compact] .hp-shortcuts-box{padding:10px 12px 12px;font-size:12px}@media(prefers-reduced-motion:reduce){.hp-shortcuts{animation:none}}.hp-plugin-layer{z-index:5;transition:opacity .2s;position:absolute}.hp-plugin-layer[data-above]{z-index:30}.hp-plugin-layer[hidden]{display:none}.hp-plugin-layer:not([data-interactive]){pointer-events:none}.hp-plugin-layer:not([data-interactive]) :is(button,a,input,select,textarea,[data-interactive]){pointer-events:auto}.hp-plugin-layer[data-position=fill]{top:0;right:0;bottom:0;left:0}.hp-plugin-layer[data-position=top]{top:12px;left:50%;transform:translate(-50%)}.hp-plugin-layer[data-position=bottom]{bottom:76px;left:50%;transform:translate(-50%)}.hp-plugin-layer[data-position=center]{top:50%;left:50%;transform:translate(-50%,-50%)}.hp-plugin-layer[data-position=top-left]{top:12px;left:12px}.hp-plugin-layer[data-position=top-right]{top:12px;right:12px}.hp-plugin-layer[data-position=bottom-left]{bottom:76px;left:12px}.hp-plugin-layer[data-position=bottom-right]{bottom:76px;right:12px}.video-area[data-chrome-hidden] .hp-plugin-layer:is([data-position=bottom],[data-position=bottom-left],[data-position=bottom-right]){bottom:12px}.video-area[data-compact] .hp-plugin-layer:is([data-position=bottom],[data-position=bottom-left],[data-position=bottom-right]){bottom:56px}.video-area[data-chrome-hidden] .hp-plugin-layer[data-autohide]{opacity:0;pointer-events:none}.video-area[data-chrome-hidden] .hp-plugin-layer[data-autohide] *{pointer-events:none}.hp-plugin-btn svg{width:var(--hp-ctrl-icon-size);height:var(--hp-ctrl-icon-size)}.hp-plugin-btn[aria-pressed=true]{color:var(--hp-color-accent,#fff);background:var(--hp-color-accent,#fff)}@supports (color:color-mix(in lab,red,red)){.hp-plugin-btn[aria-pressed=true]{background:color-mix(in srgb,var(--hp-color-accent,#fff) 18%,transparent)}}.hp-plugin-toast{z-index:35;color:#fff;opacity:0;pointer-events:none;background:#0e0e12d9;border-radius:999px;max-width:calc(100% - 32px);padding:8px 14px;font:500 13px/1.3 system-ui,-apple-system,sans-serif;transition:opacity .2s,transform .2s;position:absolute;top:16px;left:50%;transform:translate(-50%,-6px)}.hp-plugin-toast[data-visible]{opacity:1;transform:translate(-50%)}@media(prefers-reduced-motion:reduce){.hp-plugin-layer,.hp-plugin-toast{transition: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 oe(o) {
6
+ return !!o && /MediaSinkAudio/i.test(o.message || "");
7
7
  }
8
- function Je(n) {
9
- return !!n.error && !ie(n.error);
8
+ function nt(o) {
9
+ return !!o.error && !oe(o.error);
10
10
  }
11
- function ue() {
11
+ function ye() {
12
12
  try {
13
13
  return crypto.randomUUID();
14
14
  } catch {
15
15
  return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 10)}`;
16
16
  }
17
17
  }
18
- function me() {
18
+ function ke() {
19
19
  if (typeof navigator > "u") return !1;
20
- 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);
20
+ const o = navigator.userAgent, t = /iP(hone|od|ad)/.test(o) || navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1, e = /^((?!chrome|chromium|android|crios|fxios|edg|opr).)*safari/i.test(o);
21
21
  return t || e;
22
22
  }
23
- function $(n) {
24
- return !!n && Object.values(n).some((t) => !!(t != null && t.licenseUrl));
23
+ function j(o) {
24
+ return !!o && Object.values(o).some((t) => !!(t != null && t.licenseUrl));
25
25
  }
26
- function j() {
27
- const n = window;
28
- return typeof n.MediaSource < "u" || typeof n.ManagedMediaSource < "u";
26
+ function Y() {
27
+ const o = window;
28
+ return typeof o.MediaSource < "u" || typeof o.ManagedMediaSource < "u";
29
29
  }
30
- function De(n, t) {
30
+ function $e(o, t) {
31
31
  var i;
32
32
  const e = (i = t == null ? void 0 : t.split(";")[0]) == null ? void 0 : i.trim().toLowerCase();
33
- return e === "application/vnd.apple.mpegurl" || e === "application/x-mpegurl" || /\.m3u8(?:$|[?#])/i.test(n) ? "hls" : e === "application/dash+xml" || /\.mpd(?:$|[?#])/i.test(n) ? "dash" : e === "video/mp4" || /\.mp4(?:$|[?#])/i.test(n) ? "mp4" : "unknown";
33
+ return e === "application/vnd.apple.mpegurl" || e === "application/x-mpegurl" || /\.m3u8(?:$|[?#])/i.test(o) ? "hls" : e === "application/dash+xml" || /\.mpd(?:$|[?#])/i.test(o) ? "dash" : e === "video/mp4" || /\.mp4(?:$|[?#])/i.test(o) ? "mp4" : "unknown";
34
34
  }
35
- class et {
35
+ class ot {
36
36
  constructor(t, e) {
37
37
  a(this, "hls", null);
38
38
  a(this, "video");
@@ -52,7 +52,7 @@ class et {
52
52
  a(this, "qualityLimit");
53
53
  a(this, "cmcd", null);
54
54
  /** Her `load()`'da yenilenir. */
55
- a(this, "sid", ue());
55
+ a(this, "sid", ye());
56
56
  this.callbacks = e, this.video = t;
57
57
  }
58
58
  /** `options.hls` — sonraki `load()`'da uygulanır. */
@@ -61,22 +61,22 @@ class et {
61
61
  }
62
62
  /** Bu kaynak zaten yüklü ve hatasız mı — aynı kaynak için yeniden yükleme (başa sarma) gerekmez. */
63
63
  isLoaded(t, e) {
64
- return !!this.last && this.last.src === t && this.last.type === e && !Je(this.video) && this.video.readyState > 0;
64
+ return !!this.last && this.last.src === t && this.last.type === e && !nt(this.video) && this.video.readyState > 0;
65
65
  }
66
66
  /** O anki oynatma oturumu (CMCD `sid`). */
67
67
  get sessionId() {
68
68
  return this.sid;
69
69
  }
70
70
  async load(t, e) {
71
- var o, l;
72
- this.last = { src: t, type: e }, this.sid = ue(), this.destroy(), this.video.pause();
73
- const i = De(t, e);
71
+ var n, l;
72
+ this.last = { src: t, type: e }, this.sid = ye(), this.destroy(), this.video.pause();
73
+ const i = $e(t, e);
74
74
  if (this.callbacks.onLevelsChanged([], -1), this.callbacks.onAudioTracksChanged([], -1), this.streamTextTracks.clear(), this.callbacks.onTextTracksFound([]), i === "dash") {
75
75
  await this.attachDash(t);
76
76
  return;
77
77
  }
78
78
  if (i !== "hls") {
79
- if (this.engineInfo = { engine: "native" }, await this.prepareNativeDrm(), ((o = this.last) == null ? void 0 : o.src) !== t) return;
79
+ if (this.engineInfo = { engine: "native" }, await this.prepareNativeDrm(), ((n = this.last) == null ? void 0 : n.src) !== t) return;
80
80
  this.video.src = t;
81
81
  return;
82
82
  }
@@ -85,9 +85,9 @@ class et {
85
85
  await this.prepareNativeDrm(), this.loadNativeHls(t, "option");
86
86
  return;
87
87
  }
88
- if (s !== "hls.js" && r && (me() || !j())) {
88
+ if (s !== "hls.js" && r && (ke() || !Y())) {
89
89
  if (await this.prepareNativeDrm(), ((l = this.last) == null ? void 0 : l.src) !== t) return;
90
- this.loadNativeHls(t, me() ? "apple-native" : "no-mse");
90
+ this.loadNativeHls(t, ke() ? "apple-native" : "no-mse");
91
91
  return;
92
92
  }
93
93
  await this.attachHlsJs(t);
@@ -103,12 +103,12 @@ class et {
103
103
  /** Native oynatmada şifreli içerik için EME işleyicisi (kaynak atanmadan önce). */
104
104
  async prepareNativeDrm() {
105
105
  var e;
106
- if (!$(this.drm)) return;
106
+ if (!j(this.drm)) return;
107
107
  const { NativeEme: t } = await import("./NativeEme-CXosVcw8.js");
108
108
  (e = this.nativeEme) == null || e.destroy(), this.nativeEme = new t(this.video, this.drm, {
109
109
  onError: (i, s) => {
110
- var r, o;
111
- (o = (r = this.callbacks).onStreamError) == null || o.call(r, { type: "drm", details: i, fatal: !0, engine: "eme", reason: s }), this.callbacks.onFatalError("drm");
110
+ var r, n;
111
+ (n = (r = this.callbacks).onStreamError) == null || n.call(r, { type: "drm", details: i, fatal: !0, engine: "eme", reason: s }), this.callbacks.onFatalError("drm");
112
112
  },
113
113
  onLicense: (i) => {
114
114
  this.engineInfo = { ...this.engineInfo, drm: i };
@@ -117,25 +117,25 @@ class et {
117
117
  }
118
118
  async attachDash(t) {
119
119
  var i, s;
120
- if (!j()) {
120
+ if (!Y()) {
121
121
  this.engineInfo = { engine: "dash.js" }, this.video.removeAttribute("src"), this.video.load(), this.callbacks.onFatalError("unsupported");
122
122
  return;
123
123
  }
124
124
  const { DashEngine: e } = await import("./dash-CWjy-y7B.js");
125
125
  ((i = this.last) == null ? void 0 : i.src) === t && (this.engineInfo = { engine: "dash.js" }, this.dash = new e(this.video, t, { dash: this.dashOptions, drm: this.drm, autoplay: this.video.autoplay, fitPlayer: !!((s = this.qualityLimit) != null && s.fitPlayer), cmcd: this.cmcd ? { ...this.cmcd, sessionId: this.sid } : null }, {
126
- onLevels: (r, o) => this.callbacks.onLevelsChanged(r, o),
127
- onAudioTracks: (r, o) => this.callbacks.onAudioTracksChanged(r, o),
126
+ onLevels: (r, n) => this.callbacks.onLevelsChanged(r, n),
127
+ onAudioTracks: (r, n) => this.callbacks.onAudioTracksChanged(r, n),
128
128
  onFatal: (r) => this.callbacks.onFatalError(r),
129
129
  onError: (r) => {
130
- var o, l;
131
- return (l = (o = this.callbacks).onStreamError) == null ? void 0 : l.call(o, { type: "dash", details: `${r.code}: ${r.message}`, fatal: r.fatal, engine: "dash.js" });
130
+ var n, l;
131
+ return (l = (n = this.callbacks).onStreamError) == null ? void 0 : l.call(n, { type: "dash", details: `${r.code}: ${r.message}`, fatal: r.fatal, engine: "dash.js" });
132
132
  },
133
133
  onTextTracks: (r) => {
134
134
  this.streamTextTracks.clear();
135
- for (const o of r) this.streamTextTracks.set(o.id, o);
135
+ for (const n of r) this.streamTextTracks.set(n.id, n);
136
136
  this.callbacks.onTextTracksFound([...this.streamTextTracks.values()]);
137
137
  },
138
- onCues: (r, o) => this.callbacks.onCues(r, o),
138
+ onCues: (r, n) => this.callbacks.onCues(r, n),
139
139
  onDrm: (r) => {
140
140
  this.engineInfo = { ...this.engineInfo, drm: r };
141
141
  }
@@ -162,10 +162,10 @@ class et {
162
162
  * İlk metadata'dan önce kod 4 gelirse ve MSE varsa hls.js'e geç.
163
163
  */
164
164
  probeNativeHls(t) {
165
- if (!j() || this.engineInfo.reason === "hlsjs-failed" || this.engineInfo.reason === "option") return;
165
+ if (!Y() || this.engineInfo.reason === "hlsjs-failed" || this.engineInfo.reason === "option") return;
166
166
  const e = () => s(), i = () => {
167
- var o, l;
168
- const r = ((o = this.video.error) == null ? void 0 : o.code) === 4;
167
+ var n, l;
168
+ const r = ((n = this.video.error) == null ? void 0 : n.code) === 4;
169
169
  s(), r && ((l = this.nativeAudioCleanup) == null || l.call(this), this.attachHlsJs(t));
170
170
  }, s = () => {
171
171
  this.video.removeEventListener("loadedmetadata", e), this.video.removeEventListener("error", i), this.nativeHlsProbe = null;
@@ -177,7 +177,12 @@ class et {
177
177
  const t = this.video.audioTracks;
178
178
  if (!t) return;
179
179
  const e = () => {
180
- const i = Array.from(t, (s, r) => ({ index: r, label: s.label || s.language || `${r + 1}`, lang: s.language }));
180
+ const i = Array.from(t, (s, r) => ({
181
+ index: r,
182
+ label: s.label || s.language || `${r + 1}`,
183
+ lang: s.language,
184
+ description: s.kind === "description" || s.kind === "main-desc"
185
+ }));
181
186
  this.callbacks.onAudioTracksChanged(i, Array.from(t).findIndex((s) => s.enabled));
182
187
  };
183
188
  for (const i of ["addtrack", "removetrack", "change"]) t.addEventListener(i, e);
@@ -187,63 +192,68 @@ class et {
187
192
  };
188
193
  }
189
194
  async attachHlsJs(t) {
190
- var f, v;
191
- const e = this.hlsOptions.build === "light" && !$(this.drm) && !this.cmcd ? "light" : "full", { default: i } = e === "light" ? await import("./hlsLight-CCe_8eOw.js") : await import("./hls-DAtZkTUi.js");
192
- if (((f = this.last) == null ? void 0 : f.src) !== t) return;
195
+ var d, v;
196
+ const e = this.hlsOptions.build === "light" && !j(this.drm) && !this.cmcd ? "light" : "full", { default: i } = e === "light" ? await import("./hlsLight-CCe_8eOw.js") : await import("./hls-DAtZkTUi.js");
197
+ if (((d = this.last) == null ? void 0 : d.src) !== t) return;
193
198
  if (!i.isSupported()) {
194
199
  this.engineInfo = { engine: "native-hls", reason: "no-mse" }, this.video.src = t;
195
200
  return;
196
201
  }
197
- const s = $(this.drm) ? (await import("./keySystems-CNzjRq6e.js")).hlsDrmConfig(this.drm, this.hlsOptions.config ?? {}) : {};
202
+ const s = j(this.drm) ? (await import("./keySystems-CNzjRq6e.js")).hlsDrmConfig(this.drm, this.hlsOptions.config ?? {}) : {};
198
203
  if (((v = this.last) == null ? void 0 : v.src) !== t) return;
199
204
  const r = new i(this.buildHlsConfig(s));
200
205
  this.hls = r, this.engineInfo = { engine: "hls.js", build: e };
201
- let o = !1, l = !1;
202
- r.on(i.Events.ERROR, (m, d) => {
203
- var g, y, w, S, T, A;
206
+ let n = !1, l = !1;
207
+ r.on(i.Events.ERROR, (m, u) => {
208
+ var f, y, E, T, A, P;
204
209
  if (this.hls === r) {
205
- const E = d;
206
- (A = (T = this.callbacks).onStreamError) == null || A.call(T, {
210
+ const C = u;
211
+ (P = (A = this.callbacks).onStreamError) == null || P.call(A, {
207
212
  engine: "hls.js",
208
- type: String(d.type),
209
- details: String(d.details),
210
- fatal: !!d.fatal,
211
- url: E.url ?? ((g = E.frag) == null ? void 0 : g.url) ?? ((y = E.context) == null ? void 0 : y.url),
212
- httpStatus: (w = E.response) == null ? void 0 : w.code,
213
- reason: E.reason ?? ((S = E.error) == null ? void 0 : S.message)
213
+ type: String(u.type),
214
+ details: String(u.details),
215
+ fatal: !!u.fatal,
216
+ url: C.url ?? ((f = C.frag) == null ? void 0 : f.url) ?? ((y = C.context) == null ? void 0 : y.url),
217
+ httpStatus: (E = C.response) == null ? void 0 : E.code,
218
+ reason: C.reason ?? ((T = C.error) == null ? void 0 : T.message)
214
219
  });
215
220
  }
216
- if (!d.fatal || this.hls !== r) return;
217
- const x = [i.ErrorDetails.MANIFEST_LOAD_ERROR, i.ErrorDetails.MANIFEST_LOAD_TIMEOUT].includes(d.details);
218
- if (!o && x && this.video.canPlayType("application/vnd.apple.mpegurl") !== "") {
221
+ if (!u.fatal || this.hls !== r) return;
222
+ const w = [i.ErrorDetails.MANIFEST_LOAD_ERROR, i.ErrorDetails.MANIFEST_LOAD_TIMEOUT].includes(u.details);
223
+ if (!n && w && this.video.canPlayType("application/vnd.apple.mpegurl") !== "") {
219
224
  r.destroy(), this.hls = null, this.loadNativeHls(t, "hlsjs-failed");
220
225
  return;
221
226
  }
222
- if (d.type === i.ErrorTypes.MEDIA_ERROR && !l) {
227
+ if (u.type === i.ErrorTypes.MEDIA_ERROR && !l) {
223
228
  l = !0, r.recoverMediaError();
224
229
  return;
225
230
  }
226
231
  r.stopLoad();
227
- const k = d.type === i.ErrorTypes.KEY_SYSTEM_ERROR ? "drm" : d.type === i.ErrorTypes.NETWORK_ERROR ? "network" : "media";
232
+ const k = u.type === i.ErrorTypes.KEY_SYSTEM_ERROR ? "drm" : u.type === i.ErrorTypes.NETWORK_ERROR ? "network" : "media";
228
233
  this.callbacks.onFatalError(k);
229
234
  });
230
- const h = () => r.levels.map((m, d) => ({ index: d, height: m.height, bitrate: m.bitrate }));
235
+ const h = () => r.levels.map((m, u) => ({ index: u, height: m.height, bitrate: m.bitrate }));
231
236
  r.on(i.Events.MANIFEST_PARSED, () => {
232
- o = !0, this.callbacks.onLevelsChanged(h(), r.currentLevel);
233
- }), r.on(i.Events.LEVEL_SWITCHED, (m, d) => {
234
- this.callbacks.onLevelsChanged(h(), r.autoLevelEnabled ? -1 : d.level);
237
+ n = !0, this.callbacks.onLevelsChanged(h(), r.currentLevel);
238
+ }), r.on(i.Events.LEVEL_SWITCHED, (m, u) => {
239
+ this.callbacks.onLevelsChanged(h(), r.autoLevelEnabled ? -1 : u.level);
235
240
  });
236
- const c = () => r.audioTracks.map((m, d) => ({ index: d, label: m.name || m.lang || `${d + 1}`, lang: m.lang ?? "" }));
237
- r.on(i.Events.AUDIO_TRACKS_UPDATED, () => this.callbacks.onAudioTracksChanged(c(), r.audioTrack)), r.on(i.Events.AUDIO_TRACK_SWITCHED, (m, d) => this.callbacks.onAudioTracksChanged(c(), d.id)), r.on(i.Events.NON_NATIVE_TEXT_TRACKS_FOUND, (m, d) => {
238
- var x;
239
- for (const k of d.tracks) {
240
- const g = k.subtitleTrack, y = g ? `sub:${g.id}` : `cc:${k._id ?? k.label}`, w = k.kind === "captions" ? "captions" : "subtitles";
241
- this.streamTextTracks.set(y, { id: y, kind: w, label: k.label, lang: (g == null ? void 0 : g.lang) ?? ((x = k.closedCaptions) == null ? void 0 : x.lang) ?? "" });
241
+ const c = () => r.audioTracks.map((m, u) => ({
242
+ index: u,
243
+ label: m.name || m.lang || `${u + 1}`,
244
+ lang: m.lang ?? "",
245
+ description: /describes-video/.test(m.characteristics ?? "")
246
+ }));
247
+ r.on(i.Events.AUDIO_TRACKS_UPDATED, () => this.callbacks.onAudioTracksChanged(c(), r.audioTrack)), r.on(i.Events.AUDIO_TRACK_SWITCHED, (m, u) => this.callbacks.onAudioTracksChanged(c(), u.id)), r.on(i.Events.NON_NATIVE_TEXT_TRACKS_FOUND, (m, u) => {
248
+ var w;
249
+ for (const k of u.tracks) {
250
+ const f = k.subtitleTrack, y = f ? `sub:${f.id}` : `cc:${k._id ?? k.label}`, E = k.kind === "captions" ? "captions" : "subtitles";
251
+ this.streamTextTracks.set(y, { id: y, kind: E, label: k.label, lang: (f == null ? void 0 : f.lang) ?? ((w = k.closedCaptions) == null ? void 0 : w.lang) ?? "" });
242
252
  }
243
253
  this.callbacks.onTextTracksFound([...this.streamTextTracks.values()]);
244
- }), r.on(i.Events.CUES_PARSED, (m, d) => {
245
- const x = d.type === "subtitles" && d.subtitleTrack ? `sub:${d.subtitleTrack.id}` : `cc:${d.track}`;
246
- this.callbacks.onCues(x, d.cues);
254
+ }), r.on(i.Events.CUES_PARSED, (m, u) => {
255
+ const w = u.type === "subtitles" && u.subtitleTrack ? `sub:${u.subtitleTrack.id}` : `cc:${u.track}`;
256
+ this.callbacks.onCues(w, u.cues);
247
257
  }), r.attachMedia(this.video), r.loadSource(t);
248
258
  }
249
259
  buildHlsConfig(t) {
@@ -258,10 +268,10 @@ class et {
258
268
  ...t
259
269
  };
260
270
  if (this.hlsOptions.withCredentials) {
261
- const { xhrSetup: r, fetchSetup: o } = e;
271
+ const { xhrSetup: r, fetchSetup: n } = e;
262
272
  i.xhrSetup = (l, h, c) => (l.withCredentials = !0, r == null ? void 0 : r(l, h, c)), i.fetchSetup = (l, h) => {
263
273
  const c = { ...h, credentials: "include" };
264
- return o ? o(l, c) : new Request(l.url, c);
274
+ return n ? n(l, c) : new Request(l.url, c);
265
275
  };
266
276
  }
267
277
  return i;
@@ -317,7 +327,7 @@ class et {
317
327
  (t = this.nativeHlsProbe) == null || t.call(this), (e = this.nativeAudioCleanup) == null || e.call(this), this.hls && (this.hls.destroy(), this.hls = null), (i = this.dash) == null || i.destroy(), this.dash = null, (s = this.nativeEme) == null || s.destroy(), this.nativeEme = null;
318
328
  }
319
329
  }
320
- const Y = {
330
+ const ee = {
321
331
  mp4: "video/mp4",
322
332
  m4v: "video/mp4",
323
333
  webm: "video/webm",
@@ -330,60 +340,60 @@ const Y = {
330
340
  wav: "audio/wav",
331
341
  flac: "audio/flac"
332
342
  };
333
- function He(n) {
343
+ function We(o) {
334
344
  var s, r;
335
- const t = De(n.src, n.type);
345
+ const t = $e(o.src, o.type);
336
346
  if (t !== "unknown") return t;
337
- const e = (r = (s = n.type) == null ? void 0 : s.split(";")[0]) == null ? void 0 : r.trim().toLowerCase();
347
+ const e = (r = (s = o.type) == null ? void 0 : s.split(";")[0]) == null ? void 0 : r.trim().toLowerCase();
338
348
  if (e) {
339
- const o = Object.keys(Y).find((l) => Y[l] === e);
340
- if (o) return o;
349
+ const n = Object.keys(ee).find((l) => ee[l] === e);
350
+ if (n) return n;
341
351
  }
342
- const i = /\.([a-z0-9]{2,5})(?:$|[?#])/i.exec(n.src);
352
+ const i = /\.([a-z0-9]{2,5})(?:$|[?#])/i.exec(o.src);
343
353
  return i ? i[1].toLowerCase() : "other";
344
354
  }
345
- function tt(n, t) {
355
+ function lt(o, t) {
346
356
  const e = [];
347
- for (const s of n) {
348
- const r = He(s), o = e.find((l) => l.format === r);
349
- o ? o.sources.push(s) : e.push({ format: r, sources: [s] });
357
+ for (const s of o) {
358
+ const r = We(s), n = e.find((l) => l.format === r);
359
+ n ? n.sources.push(s) : e.push({ format: r, sources: [s] });
350
360
  }
351
361
  if (!(t != null && t.length)) return e;
352
362
  const i = (s) => {
353
- const r = t.findIndex((o) => o.toLowerCase() === s);
363
+ const r = t.findIndex((n) => n.toLowerCase() === s);
354
364
  return r === -1 ? t.length : r;
355
365
  };
356
366
  return e.sort((s, r) => i(s.format) - i(r.format));
357
367
  }
358
- function it(n, t) {
368
+ function ht(o, t) {
359
369
  var i;
360
- if (n.format === "dash") {
370
+ if (o.format === "dash") {
361
371
  const s = window;
362
372
  return typeof s.MediaSource > "u" && typeof s.ManagedMediaSource > "u";
363
373
  }
364
- if (n.format === "hls") {
374
+ if (o.format === "hls") {
365
375
  const s = window;
366
376
  return !(typeof s.MediaSource < "u" || typeof s.ManagedMediaSource < "u") && t.canPlayType("application/vnd.apple.mpegurl") === "";
367
377
  }
368
- const e = ((i = n.sources.find((s) => s.type)) == null ? void 0 : i.type) ?? Y[n.format];
378
+ const e = ((i = o.sources.find((s) => s.type)) == null ? void 0 : i.type) ?? ee[o.format];
369
379
  return !!e && t.canPlayType(e) === "";
370
380
  }
371
- function R(n) {
372
- if (!Number.isFinite(n) || n < 0) return "0:00";
373
- const t = Math.floor(n), e = Math.floor(t / 3600), i = Math.floor(t % 3600 / 60), s = t % 60, r = e > 0 ? String(i).padStart(2, "0") : String(i), o = String(s).padStart(2, "0");
374
- return e > 0 ? `${e}:${r}:${o}` : `${r}:${o}`;
381
+ function N(o) {
382
+ if (!Number.isFinite(o) || o < 0) return "0:00";
383
+ const t = Math.floor(o), e = Math.floor(t / 3600), i = Math.floor(t % 3600 / 60), s = t % 60, r = e > 0 ? String(i).padStart(2, "0") : String(i), n = String(s).padStart(2, "0");
384
+ return e > 0 ? `${e}:${r}:${n}` : `${r}:${n}`;
375
385
  }
376
- const ge = 0.05;
377
- function _(n, t) {
378
- const e = n.duration;
379
- return !Number.isFinite(e) || e <= ge * 2 ? t : Math.min(t, e - ge);
386
+ const we = 0.05;
387
+ function W(o, t) {
388
+ const e = o.duration;
389
+ return !Number.isFinite(e) || e <= we * 2 ? t : Math.min(t, e - we);
380
390
  }
381
- function qe(n, t) {
382
- 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;
383
- n.currentTime = _(n, Math.max(e, Math.min(i, n.currentTime + t)));
391
+ function Qe(o, t) {
392
+ const e = o.seekable.length ? o.seekable.start(0) : 0, i = Number.isFinite(o.duration) ? o.duration : o.seekable.length ? o.seekable.end(o.seekable.length - 1) : o.currentTime;
393
+ o.currentTime = W(o, Math.max(e, Math.min(i, o.currentTime + t)));
384
394
  }
385
- const st = 10, rt = 1, Ve = 15;
386
- class at {
395
+ const ct = 10, dt = 1, je = 15;
396
+ class pt {
387
397
  constructor(t, e) {
388
398
  a(this, "el");
389
399
  a(this, "trackEl");
@@ -416,15 +426,15 @@ class at {
416
426
  this.hoverTimeEl.removeAttribute("data-visible");
417
427
  return;
418
428
  }
419
- const s = this.markerAt(t.clientX), r = s ? Number(s.dataset.ratio) : i, o = e.start + r * (e.end - e.start), l = e.live ? `-${R(e.end - o)}` : R(o), h = (s == null ? void 0 : s.dataset.label) ?? null;
429
+ const s = this.markerAt(t.clientX), r = s ? Number(s.dataset.ratio) : i, n = e.start + r * (e.end - e.start), l = e.live ? `-${N(e.end - n)}` : N(n), h = (s == null ? void 0 : s.dataset.label) ?? null;
420
430
  if (h) {
421
431
  const v = document.createElement("span");
422
432
  v.className = "hp-seek-time-label", v.textContent = h, this.hoverTimeEl.replaceChildren(v, ` · ${l}`);
423
433
  } else
424
434
  this.hoverTimeEl.textContent = l;
425
435
  this.hoverTimeEl.setAttribute("data-visible", "");
426
- const c = this.hoverTimeEl.offsetWidth, f = Math.min(Math.max(this.layoutXAtClientX(t.clientX) - c / 2, 0), Math.max(this.trackWidth - c, 0));
427
- this.hoverTimeEl.style.transform = `translateX(${f}px)`;
436
+ const c = this.hoverTimeEl.offsetWidth, d = Math.min(Math.max(this.layoutXAtClientX(t.clientX) - c / 2, 0), Math.max(this.trackWidth - c, 0));
437
+ this.hoverTimeEl.style.transform = `translateX(${d}px)`;
428
438
  });
429
439
  a(this, "onHoverLeave", () => {
430
440
  for (const t of this.markerEls) t.removeAttribute("data-hover");
@@ -446,7 +456,7 @@ class at {
446
456
  a(this, "onKeyDown", (t) => {
447
457
  var i, s;
448
458
  const e = this.timeline();
449
- e && (t.key === "ArrowRight" ? (this.video.currentTime = _(this.video, 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()));
459
+ e && (t.key === "ArrowRight" ? (this.video.currentTime = W(this.video, 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()));
450
460
  });
451
461
  a(this, "startLoop", () => {
452
462
  if (this.rafId !== null) return;
@@ -469,14 +479,14 @@ class at {
469
479
  let r = 0;
470
480
  for (let l = 0; l < this.video.buffered.length; l++)
471
481
  this.video.buffered.start(l) <= this.video.currentTime && (r = Math.max(r, this.video.buffered.end(l)));
472
- const o = i(r);
482
+ const n = i(r);
473
483
  if (this.chapters.length)
474
484
  for (const l of this.chapters) {
475
- const h = l.end - l.start, c = (f) => h > 0 ? Math.min(1, Math.max(0, (f - l.start) / h)) : 0;
476
- l.playedEl.style.transform = `scaleX(${c(s)})`, l.bufferedEl.style.transform = `scaleX(${c(o)})`;
485
+ const h = l.end - l.start, c = (d) => h > 0 ? Math.min(1, Math.max(0, (d - l.start) / h)) : 0;
486
+ l.playedEl.style.transform = `scaleX(${c(s)})`, l.bufferedEl.style.transform = `scaleX(${c(n)})`;
477
487
  }
478
488
  else
479
- this.playedEl.style.transform = `scaleX(${s})`, this.bufferedEl.style.transform = `scaleX(${o})`;
489
+ this.playedEl.style.transform = `scaleX(${s})`, this.bufferedEl.style.transform = `scaleX(${n})`;
480
490
  for (const l of this.markerEls) l.toggleAttribute("data-passed", Number(l.dataset.ratio) <= s);
481
491
  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)));
482
492
  });
@@ -497,12 +507,12 @@ class at {
497
507
  if (t !== 1 / 0) return null;
498
508
  const { seekable: e } = this.video;
499
509
  if (!e.length) return null;
500
- const i = e.start(0), s = e.end(e.length - 1), r = (l = this.liveTarget) == null ? void 0 : l.call(this), o = r != null && r > i && r <= s ? r : s;
501
- return o - i >= st ? { start: i, end: o, live: !0 } : null;
510
+ const i = e.start(0), s = e.end(e.length - 1), r = (l = this.liveTarget) == null ? void 0 : l.call(this), n = r != null && r > i && r <= s ? r : s;
511
+ return n - i >= ct ? { start: i, end: n, live: !0 } : null;
502
512
  }
503
513
  /** Canlıda izleyici canlı konumda mı — kontrol çubuğundaki "● CANLI" rozetiyle aynı ölçü. */
504
514
  atLiveEdge(t) {
505
- return t.end - this.video.currentTime <= Ve;
515
+ return t.end - this.video.currentTime <= je;
506
516
  }
507
517
  /** Kendi zamanını gösteren plugin'ler (sprite/segments) varsayılan hover zamanını gizler — keyed set. */
508
518
  suppressHoverTime(t, e) {
@@ -516,8 +526,8 @@ class at {
516
526
  const e = this.layoutXAtClientX(t);
517
527
  if (!this.chapters.length) return this.trackWidth > 0 ? Math.min(1, Math.max(0, e / this.trackWidth)) : 0;
518
528
  for (let i = 0; i < this.chapters.length; i++) {
519
- const s = this.chapters[i], r = this.chapters[i + 1], o = r ? r.left : 1 / 0;
520
- if (e < o || !r) {
529
+ const s = this.chapters[i], r = this.chapters[i + 1], n = r ? r.left : 1 / 0;
530
+ if (e < n || !r) {
521
531
  const l = s.width > 0 ? Math.min(1, Math.max(0, (e - s.left) / s.width)) : 0;
522
532
  return s.start + l * (s.end - s.start);
523
533
  }
@@ -539,8 +549,8 @@ class at {
539
549
  s.className = "hp-chapter", s.setAttribute("part", "segment-band"), s.style.flex = `${Math.max(i.end - i.start, 0)} 1 0px`;
540
550
  const r = document.createElement("div");
541
551
  r.className = "hp-chapter-fill hp-chapter-buffered";
542
- const o = document.createElement("div");
543
- return o.className = "hp-chapter-fill hp-chapter-played", i.color && (o.style.background = i.color), s.append(r, o), e.appendChild(s), { ...i, el: s, bufferedEl: r, playedEl: o, left: 0, width: 0 };
552
+ const n = document.createElement("div");
553
+ return n.className = "hp-chapter-fill hp-chapter-played", i.color && (n.style.background = i.color), s.append(r, n), e.appendChild(s), { ...i, el: s, bufferedEl: r, playedEl: n, left: 0, width: 0 };
544
554
  }), this.trackEl.style.display = "none", this.trackEl.after(e), this.chaptersEl = e, this.measureChapters(), this.render(), this.chapters.map((i) => i.el);
545
555
  }
546
556
  clearChapters() {
@@ -572,7 +582,7 @@ class at {
572
582
  const e = this.timeline();
573
583
  if (!e) return;
574
584
  const i = e.start + t * (e.end - e.start);
575
- this.video.currentTime = e.live ? Math.min(i, e.end - rt) : _(this.video, i), this.render();
585
+ this.video.currentTime = e.live ? Math.min(i, e.end - dt) : W(this.video, i), this.render();
576
586
  }
577
587
  /** 0–1 arası oranda, çizginin ortasına bir işaret noktası ekler (markers, etkileşimli öğeler, A-B döngü). */
578
588
  addMarker(t, e = "", i) {
@@ -586,11 +596,11 @@ class at {
586
596
  }
587
597
  markerAt(t) {
588
598
  const e = this.layoutXAtClientX(t);
589
- let i = null, s = 8;
599
+ let i = null, s = 1 / 0;
590
600
  for (const r of this.markerEls) {
591
601
  if (!r.dataset.label || !r.isConnected) continue;
592
- const o = Math.abs(this.xAtRatio(Number(r.dataset.ratio)) - e);
593
- o <= s && (i = r, s = o);
602
+ const n = Math.abs(this.xAtRatio(Number(r.dataset.ratio)) - e), l = Math.max(8, Number(r.dataset.hitRatio ?? 0) * this.trackWidth);
603
+ n <= l && n < s && (i = r, s = n);
594
604
  }
595
605
  for (const r of this.markerEls) r.toggleAttribute("data-hover", r === i);
596
606
  return i;
@@ -606,15 +616,15 @@ class at {
606
616
  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();
607
617
  }
608
618
  }
609
- function z(n, t = "") {
619
+ function z(o, t = "") {
610
620
  const e = document.createElement("i");
611
- return e.className = `hp-icon hp-icon-${n}${t ? ` ${t}` : ""}`, e.setAttribute("aria-hidden", "true"), e;
621
+ return e.className = `hp-icon hp-icon-${o}${t ? ` ${t}` : ""}`, e.setAttribute("aria-hidden", "true"), e;
612
622
  }
613
- function F(n, t) {
614
- n.className = n.className.replace(/hp-icon-[\w-]+/, `hp-icon-${t}`);
623
+ function q(o, t) {
624
+ o.className = o.className.replace(/hp-icon-[\w-]+/, `hp-icon-${t}`);
615
625
  }
616
- const H = 0.05, ot = 150;
617
- class nt {
626
+ const K = 0.05, ut = 150;
627
+ class mt {
618
628
  constructor(t, e, i) {
619
629
  a(this, "el");
620
630
  /** Dokunmatikte ses butonu gizli; sessiz oynarken görünen "Sesi aç" rozeti (chrome dışında monte edilir, otomatik gizlenmez). */
@@ -635,15 +645,15 @@ class nt {
635
645
  a(this, "scheduleHide", () => {
636
646
  this.hideTimer && clearTimeout(this.hideTimer), this.hideTimer = setTimeout(() => {
637
647
  this.hideTimer = null, this.slider.style.opacity = "0", this.slider.style.pointerEvents = "none";
638
- }, ot);
648
+ }, ut);
639
649
  });
640
650
  a(this, "onWheel", (t) => {
641
651
  if (t.preventDefault(), this.adHooks.isAdActive()) {
642
652
  const s = this.adHooks.getVolume();
643
- this.adHooks.setVolume(Math.min(1, Math.max(0, s + (t.deltaY < 0 ? H : -H)))), this.render();
653
+ this.adHooks.setVolume(Math.min(1, Math.max(0, s + (t.deltaY < 0 ? K : -K)))), this.render();
644
654
  return;
645
655
  }
646
- const e = this.video.muted ? 0 : this.video.volume, i = Math.min(1, Math.max(0, e + (t.deltaY < 0 ? H : -H)));
656
+ const e = this.video.muted ? 0 : this.video.volume, i = Math.min(1, Math.max(0, e + (t.deltaY < 0 ? K : -K)));
647
657
  this.video.volume = i, this.video.muted = i === 0;
648
658
  });
649
659
  a(this, "onToggleMute", () => {
@@ -681,7 +691,7 @@ class nt {
681
691
  const e = t === 0 ? this.labels.unmute : this.labels.mute;
682
692
  this.button.setAttribute("aria-label", e);
683
693
  const i = this.adHooks.isAdActive() || !this.video.paused;
684
- this.unmuteBadge.toggleAttribute("data-visible", t === 0 && i), this.unmuteText.textContent = this.labels.unmute, t === 0 ? F(this.iconEl, "volume-muted") : t < 0.5 ? F(this.iconEl, "volume-low") : F(this.iconEl, "volume-high");
694
+ this.unmuteBadge.toggleAttribute("data-visible", t === 0 && i), this.unmuteText.textContent = this.labels.unmute, t === 0 ? q(this.iconEl, "volume-muted") : t < 0.5 ? q(this.iconEl, "volume-low") : q(this.iconEl, "volume-high");
685
695
  });
686
696
  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(z("volume-muted", "hp:text-base")), this.unmuteText = document.createElement("span"), this.unmuteText.textContent = e.unmute, this.unmuteBadge.appendChild(this.unmuteText), this.unmuteBadge.addEventListener("pointerdown", (r) => r.stopPropagation()), this.unmuteBadge.addEventListener("click", (r) => {
687
697
  r.stopPropagation(), this.unmute();
@@ -717,17 +727,17 @@ class nt {
717
727
  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();
718
728
  }
719
729
  }
720
- const lt = '<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>', W = 8, I = 8, fe = 100, q = 256;
721
- function ht(n) {
722
- return n.replace(/[&<>"']/g, (t) => `&#${t.charCodeAt(0)};`);
730
+ const gt = '<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>', X = 8, F = 8, xe = 100, G = 256;
731
+ function ft(o) {
732
+ return o.replace(/[&<>"']/g, (t) => `&#${t.charCodeAt(0)};`);
723
733
  }
724
- function pt(n, t) {
725
- if (!n || !t) return null;
726
- const e = Math.min(n, t), i = Math.max(n, t);
727
- return e >= 4e3 || i >= 7600 ? "8K" : e >= 2e3 || i >= 3800 ? "4K" : e >= 1400 || i >= 2500 ? "2K" : e >= 700 || i >= 1260 ? "HD" : String(ct.reduce((s, r) => Math.abs(r - e) < Math.abs(s - e) ? r : s));
734
+ function bt(o, t) {
735
+ if (!o || !t) return null;
736
+ const e = Math.min(o, t), i = Math.max(o, t);
737
+ return e >= 4e3 || i >= 7600 ? "8K" : e >= 2e3 || i >= 3800 ? "4K" : e >= 1400 || i >= 2500 ? "2K" : e >= 700 || i >= 1260 ? "HD" : String(vt.reduce((s, r) => Math.abs(r - e) < Math.abs(s - e) ? r : s));
728
738
  }
729
- const ct = [144, 240, 360, 480, 540, 576];
730
- class dt {
739
+ const vt = [144, 240, 360, 480, 540, 576];
740
+ class yt {
731
741
  constructor(t, e, i) {
732
742
  a(this, "el");
733
743
  a(this, "button");
@@ -761,7 +771,7 @@ class dt {
761
771
  * kısa kenar sayılır (1080×1920 → HD). Ses modu / görüntüsüz kaynakta rozet yok.
762
772
  */
763
773
  a(this, "updateBadge", () => {
764
- const t = this.badgeEnabled ? pt(this.video.videoWidth, this.video.videoHeight) : null;
774
+ const t = this.badgeEnabled ? bt(this.video.videoWidth, this.video.videoHeight) : null;
765
775
  this.badge.textContent = t ?? "", this.badge.hidden = !t, t ? this.badge.setAttribute("data-quality", t) : this.badge.removeAttribute("data-quality"), this.badge.toggleAttribute("data-low", !!t && /^\d+$/.test(t));
766
776
  });
767
777
  /**
@@ -779,12 +789,12 @@ class dt {
779
789
  }
780
790
  const e = t.getBoundingClientRect(), i = this.button.getBoundingClientRect(), s = this.el.getBoundingClientRect(), r = !!this.el.closest(".hp-top-bar");
781
791
  this.panel.toggleAttribute("data-drop", r), Object.assign(this.panel.style, { top: "", bottom: "", marginTop: "", marginBottom: "" });
782
- const o = this.panel.scrollHeight, l = (r ? e.bottom - i.bottom : i.top - e.top) - W - I;
783
- if (o <= l || l >= fe) {
784
- this.panel.style.maxHeight = `${Math.min(q, l)}px`;
792
+ const n = this.panel.scrollHeight, l = (r ? e.bottom - i.bottom : i.top - e.top) - X - F;
793
+ if (n <= l || l >= xe) {
794
+ this.panel.style.maxHeight = `${Math.min(G, l)}px`;
785
795
  return;
786
796
  }
787
- this.panel.style.maxHeight = `${Math.min(q, e.height - 2 * I)}px`, r ? Object.assign(this.panel.style, { top: `${e.top + I - s.top}px`, marginTop: "0" }) : Object.assign(this.panel.style, { bottom: `${s.bottom - (e.bottom - I)}px`, marginBottom: "0" });
797
+ this.panel.style.maxHeight = `${Math.min(G, e.height - 2 * F)}px`, r ? Object.assign(this.panel.style, { top: `${e.top + F - s.top}px`, marginTop: "0" }) : Object.assign(this.panel.style, { bottom: `${s.bottom - (e.bottom - F)}px`, marginBottom: "0" });
788
798
  });
789
799
  /** PiP penceresi gibi ek bir belgede de dışarı tıklayınca kapansın. */
790
800
  a(this, "onDocumentClick", (t) => {
@@ -886,8 +896,8 @@ class dt {
886
896
  fitToViewport() {
887
897
  const t = this.button.getBoundingClientRect();
888
898
  Object.assign(this.panel.style, { top: "", bottom: "", marginTop: "", marginBottom: "" });
889
- const e = this.panel.scrollHeight, i = t.top - W - I, s = window.innerHeight - t.bottom - W - I, r = i < Math.min(e, q) && s > i;
890
- this.panel.toggleAttribute("data-drop", r), this.panel.style.maxHeight = `${Math.max(fe, Math.min(q, r ? s : i))}px`;
899
+ const e = this.panel.scrollHeight, i = t.top - X - F, s = window.innerHeight - t.bottom - X - F, r = i < Math.min(e, G) && s > i;
900
+ this.panel.toggleAttribute("data-drop", r), this.panel.style.maxHeight = `${Math.max(xe, Math.min(G, r ? s : i))}px`;
891
901
  }
892
902
  /** Düzen değişince (ör. kompakt ↔ normal) açık menüyü kapat — eski konumunda asılı kalmasın. */
893
903
  closeMenu() {
@@ -964,7 +974,7 @@ class dt {
964
974
  })
965
975
  );
966
976
  for (const i of t.getItems()) {
967
- const s = i.children ? '<i class="hp-icon hp-icon-chevron-left hp-chevron-forward"></i>' : i.active ? '<i class="hp-icon hp-icon-check"></i>' : "", r = this.row(i.label, i.value !== void 0 ? ht(i.value) + (i.children ? s : "") : s, () => {
977
+ const s = i.children ? '<i class="hp-icon hp-icon-chevron-left hp-chevron-forward"></i>' : i.active ? '<i class="hp-icon hp-icon-check"></i>' : "", r = this.row(i.label, i.value !== void 0 ? ft(i.value) + (i.children ? s : "") : s, () => {
968
978
  if (i.children) {
969
979
  this.renderSubmenu(i.children(), [...e, t]);
970
980
  return;
@@ -986,7 +996,7 @@ class dt {
986
996
  renderQuality() {
987
997
  this.panel.innerHTML = "", this.panel.appendChild(this.backRow(this.labels.quality, () => this.renderMain()));
988
998
  for (const t of this.qualities) {
989
- const e = t.label === this.activeQualityLabel, i = this.row(t.label, t.locked ? lt : e ? '<i class="hp-icon hp-icon-check"></i>' : "", () => {
999
+ const e = t.label === this.activeQualityLabel, i = this.row(t.label, t.locked ? gt : e ? '<i class="hp-icon hp-icon-check"></i>' : "", () => {
990
1000
  t.onSelect(), this.close();
991
1001
  });
992
1002
  t.locked && i.setAttribute("data-locked", ""), this.panel.appendChild(i);
@@ -1021,17 +1031,17 @@ class dt {
1021
1031
  );
1022
1032
  const t = this.captionAppearance;
1023
1033
  if (!t) return;
1024
- const e = (o) => o ? `<span class="hp:inline-block hp:w-3 hp:h-3 hp:rounded-full hp:border hp:border-on-surface/30" style="background:${o}"></span>` : "";
1034
+ const e = (n) => n ? `<span class="hp:inline-block hp:w-3 hp:h-3 hp:rounded-full hp:border hp:border-on-surface/30" style="background:${n}"></span>` : "";
1025
1035
  this.panel.appendChild(
1026
- this.row(t.sizeLabel, ((i = t.getSizeOptions().find((o) => o.active)) == null ? void 0 : i.label) ?? "", () => {
1036
+ this.row(t.sizeLabel, ((i = t.getSizeOptions().find((n) => n.active)) == null ? void 0 : i.label) ?? "", () => {
1027
1037
  this.currentPanel = "captions-size", this.renderCaptionsSize();
1028
1038
  })
1029
1039
  ), this.panel.appendChild(
1030
- this.row(t.bgColorLabel, e((s = t.getBgColorOptions().find((o) => o.active)) == null ? void 0 : s.value), () => {
1040
+ this.row(t.bgColorLabel, e((s = t.getBgColorOptions().find((n) => n.active)) == null ? void 0 : s.value), () => {
1031
1041
  this.currentPanel = "captions-bg", this.renderCaptionColorPanel("bg");
1032
1042
  })
1033
1043
  ), this.panel.appendChild(
1034
- this.row(t.textColorLabel, e((r = t.getTextColorOptions().find((o) => o.active)) == null ? void 0 : r.value), () => {
1044
+ this.row(t.textColorLabel, e((r = t.getTextColorOptions().find((n) => n.active)) == null ? void 0 : r.value), () => {
1035
1045
  this.currentPanel = "captions-text", this.renderCaptionColorPanel("text");
1036
1046
  })
1037
1047
  ), this.panel.appendChild(
@@ -1059,10 +1069,10 @@ class dt {
1059
1069
  const s = document.createElement("div");
1060
1070
  s.className = "hp:flex hp:flex-wrap hp:gap-2 hp:px-3 hp:py-2";
1061
1071
  const r = t === "bg" ? e.getBgColorOptions() : e.getTextColorOptions();
1062
- for (const o of r) {
1072
+ for (const n of r) {
1063
1073
  const l = document.createElement("button");
1064
- l.type = "button", l.setAttribute("aria-label", o.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 = o.value, l.style.outline = o.active ? "2px solid currentColor" : "2px solid transparent", l.style.outlineOffset = "2px", l.addEventListener("click", () => {
1065
- o.onSelect(), this.render();
1074
+ l.type = "button", l.setAttribute("aria-label", n.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 = n.value, l.style.outline = n.active ? "2px solid currentColor" : "2px solid transparent", l.style.outlineOffset = "2px", l.addEventListener("click", () => {
1075
+ n.onSelect(), this.render();
1066
1076
  }), s.appendChild(l);
1067
1077
  }
1068
1078
  this.panel.appendChild(s);
@@ -1077,23 +1087,23 @@ class dt {
1077
1087
  this.panelObserver.disconnect(), this.quickObserver.disconnect();
1078
1088
  }
1079
1089
  }
1080
- const ut = 480, mt = 150, be = ["waiting", "seeking"], ve = ["playing", "canplay", "canplaythrough", "seeked", "pause", "error", "emptied"];
1081
- function ye(n, t) {
1082
- const { btn: e } = N("", `skip-${n}`);
1090
+ const kt = 480, wt = 150, Ee = ["waiting", "seeking"], Ce = ["playing", "canplay", "canplaythrough", "seeked", "pause", "error", "emptied"];
1091
+ function Se(o, t) {
1092
+ const { btn: e } = H("", `skip-${o}`);
1083
1093
  e.classList.add("hp-skip-btn"), e.setAttribute("part", t);
1084
1094
  const i = document.createElement("span");
1085
1095
  return i.className = "hp-skip-num", i.setAttribute("aria-hidden", "true"), e.appendChild(i), e.style.display = "none", { btn: e, num: i };
1086
1096
  }
1087
- function O(n, t) {
1088
- n.setAttribute("aria-label", t);
1097
+ function D(o, t) {
1098
+ o.setAttribute("aria-label", t);
1089
1099
  }
1090
- function N(n, t, e) {
1100
+ function H(o, t, e) {
1091
1101
  const i = document.createElement("button");
1092
- i.type = "button", O(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";
1102
+ i.type = "button", D(i, o), 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";
1093
1103
  const s = z(t, "hp:text-[length:var(--hp-ctrl-icon-size)]");
1094
1104
  return i.appendChild(s), { btn: i, icon: s };
1095
1105
  }
1096
- class gt {
1106
+ class xt {
1097
1107
  constructor(t, e, i, s) {
1098
1108
  a(this, "el");
1099
1109
  a(this, "seekBar");
@@ -1155,28 +1165,28 @@ class gt {
1155
1165
  a(this, "renderPlayState", () => {
1156
1166
  var e;
1157
1167
  const t = this.callbacks.isAdActive() ? this.callbacks.adIsPaused() : this.video.paused && !this.pendingPlay;
1158
- F(this.playIcon, t ? "play" : "pause"), O(this.playButton, t ? this.labels.play : this.labels.pause), (e = this.barMetaEl) == null || e.toggleAttribute("data-playing", !t && !this.callbacks.isAdActive());
1168
+ q(this.playIcon, t ? "play" : "pause"), D(this.playButton, t ? this.labels.play : this.labels.pause), (e = this.barMetaEl) == null || e.toggleAttribute("data-playing", !t && !this.callbacks.isAdActive());
1159
1169
  });
1160
1170
  a(this, "renderTime", () => {
1161
1171
  var s, r;
1162
1172
  const t = this.video.duration === 1 / 0;
1163
1173
  if (this.applySeekBarVisibility(), this.timeLabel.style.display = this.adMode || t ? "none" : "", this.liveBadge.style.display = !this.adMode && t ? "" : "none", !t) {
1164
- const o = this.video.duration, l = this.video.currentTime;
1174
+ const n = this.video.duration, l = this.video.currentTime;
1165
1175
  if (this.showRemaining) {
1166
- const h = Number.isFinite(o) ? Math.floor(o) : 0, c = Math.max(0, h - Math.floor(l));
1167
- this.timeLabel.textContent = `-${R(c)} / ${R(o)}`;
1176
+ const h = Number.isFinite(n) ? Math.floor(n) : 0, c = Math.max(0, h - Math.floor(l));
1177
+ this.timeLabel.textContent = `-${N(c)} / ${N(n)}`;
1168
1178
  } else
1169
- this.timeLabel.textContent = `${R(l)} / ${R(o)}`;
1179
+ this.timeLabel.textContent = `${N(l)} / ${N(n)}`;
1170
1180
  return;
1171
1181
  }
1172
- const e = ((r = (s = this.callbacks).liveSyncPosition) == null ? void 0 : r.call(s)) ?? this.liveEdge(), i = e !== null && e - this.video.currentTime > Ve;
1182
+ const e = ((r = (s = this.callbacks).liveSyncPosition) == null ? void 0 : r.call(s)) ?? this.liveEdge(), i = e !== null && e - this.video.currentTime > je;
1173
1183
  this.liveBadge.toggleAttribute("data-behind", i);
1174
1184
  });
1175
1185
  /** Buffer bekleniyor (oynarken takılma ya da buffer'lanmamış bir yere atlama). */
1176
1186
  a(this, "onLoadingStart", (t) => {
1177
1187
  t.type === "seeking" && this.video.readyState >= HTMLMediaElement.HAVE_FUTURE_DATA || this.loadingTimer || this.loadingReasons.has("media") || (this.loadingTimer = setTimeout(() => {
1178
1188
  this.loadingTimer = null, this.setLoading("media", !0);
1179
- }, mt));
1189
+ }, wt));
1180
1190
  });
1181
1191
  a(this, "onLoadingEnd", (t) => {
1182
1192
  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));
@@ -1187,32 +1197,32 @@ class gt {
1187
1197
  e === null && t == null || (this.video.currentTime = t ?? Math.max(0, e - 1), this.video.paused && this.video.play().catch(() => {
1188
1198
  }), this.renderTime());
1189
1199
  });
1190
- 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 at(t, s), this.seekBar.el.classList.add("hp:pointer-events-auto"), this.seekBar.liveTarget = () => {
1191
- var k, g;
1192
- return ((g = (k = this.callbacks).liveSyncPosition) == null ? void 0 : g.call(k)) ?? null;
1200
+ 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 pt(t, s), this.seekBar.el.classList.add("hp:pointer-events-auto"), this.seekBar.liveTarget = () => {
1201
+ var k, f;
1202
+ return ((f = (k = this.callbacks).liveSyncPosition) == null ? void 0 : f.call(k)) ?? null;
1193
1203
  }, this.el.appendChild(this.seekBar.el);
1194
1204
  const r = document.createElement("div");
1195
1205
  r.className = "hp:flex hp:items-center hp:gap-2", this.el.appendChild(r), this.bottomRow = r;
1196
- const o = document.createElement("div");
1197
- o.className = "hp-group hp-group-left hp:flex hp:items-center hp:gap-1 hp:px-1.5 hp:py-1 hp:shrink-0 hp:pointer-events-auto", r.appendChild(o), this.leftGroup = o;
1206
+ const n = document.createElement("div");
1207
+ n.className = "hp-group hp-group-left hp:flex hp:items-center hp:gap-1 hp:px-1.5 hp:py-1 hp:shrink-0 hp:pointer-events-auto", r.appendChild(n), this.leftGroup = n;
1198
1208
  const l = document.createElement("span");
1199
1209
  l.className = "hp-loading-ring", l.setAttribute("aria-hidden", "true");
1200
1210
  const h = document.createElement("span");
1201
- h.className = "hp-loading-ring-mask", h.appendChild(document.createElement("span")), l.appendChild(h), o.appendChild(l);
1202
- const c = N(s.play, "play", "K");
1203
- this.playButton = c.btn, this.playIcon = c.icon, this.playButton.setAttribute("part", "play-pause-button"), this.playButton.addEventListener("click", () => this.togglePlay()), o.appendChild(this.playButton), this.skipBack = ye("back", "skip-back-button"), this.skipBack.btn.addEventListener("click", () => this.skip(-(this.skipSeconds.back ?? 0))), this.skipForward = ye("forward", "skip-forward-button"), this.skipForward.btn.addEventListener("click", () => this.skip(this.skipSeconds.forward ?? 0)), o.append(this.skipBack.btn, this.skipForward.btn), this.volumePanel = new nt(t, s, i.adVolume), o.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), o.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);
1204
- const f = document.createElement("span");
1205
- f.className = "hp-live-dot", this.liveText = document.createElement("span"), this.liveText.textContent = s.live, this.liveBadge.append(f, this.liveText), this.liveBadge.style.display = "none", this.liveBadge.addEventListener("click", this.goToLive), o.appendChild(this.liveBadge), o.appendChild(this.adInfoEl);
1211
+ h.className = "hp-loading-ring-mask", h.appendChild(document.createElement("span")), l.appendChild(h), n.appendChild(l);
1212
+ const c = H(s.play, "play", "K");
1213
+ this.playButton = c.btn, this.playIcon = c.icon, this.playButton.setAttribute("part", "play-pause-button"), this.playButton.addEventListener("click", () => this.togglePlay()), n.appendChild(this.playButton), this.skipBack = Se("back", "skip-back-button"), this.skipBack.btn.addEventListener("click", () => this.skip(-(this.skipSeconds.back ?? 0))), this.skipForward = Se("forward", "skip-forward-button"), this.skipForward.btn.addEventListener("click", () => this.skip(this.skipSeconds.forward ?? 0)), n.append(this.skipBack.btn, this.skipForward.btn), this.volumePanel = new mt(t, s, i.adVolume), n.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), n.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);
1214
+ const d = document.createElement("span");
1215
+ d.className = "hp-live-dot", this.liveText = document.createElement("span"), this.liveText.textContent = s.live, this.liveBadge.append(d, this.liveText), this.liveBadge.style.display = "none", this.liveBadge.addEventListener("click", this.goToLive), n.appendChild(this.liveBadge), n.appendChild(this.adInfoEl);
1206
1216
  const v = document.createElement("div");
1207
1217
  v.className = "hp:flex-1 hp:min-w-0", r.appendChild(v), this.spacerEl = v;
1208
1218
  const m = document.createElement("div");
1209
- 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", r.appendChild(m), this.rightGroup = m, this.settingsMenu = new dt(t, e, s), m.appendChild(this.settingsMenu.el), this.extraButtonAnchor = this.settingsMenu.el, this.row = m;
1210
- const d = N(s.pip, "pip");
1211
- this.pipButton = d.btn, this.pipButton.addEventListener("click", () => this.togglePip()), m.appendChild(this.pipButton);
1212
- const x = N(s.fullscreenEnter, "fullscreen-enter", "F");
1213
- this.fullscreenButton = x.btn, this.fullscreenIcon = x.icon, this.fullscreenButton.addEventListener("click", () => this.toggleFullscreen()), m.appendChild(this.fullscreenButton), document.pictureInPictureEnabled || (this.pipButton.style.display = "none"), 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", r.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);
1214
- for (const k of be) t.addEventListener(k, this.onLoadingStart);
1215
- for (const k of ve) t.addEventListener(k, this.onLoadingEnd);
1219
+ 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", r.appendChild(m), this.rightGroup = m, this.settingsMenu = new yt(t, e, s), m.appendChild(this.settingsMenu.el), this.extraButtonAnchor = this.settingsMenu.el, this.row = m;
1220
+ const u = H(s.pip, "pip");
1221
+ this.pipButton = u.btn, this.pipButton.addEventListener("click", () => this.togglePip()), m.appendChild(this.pipButton);
1222
+ const w = H(s.fullscreenEnter, "fullscreen-enter", "F");
1223
+ this.fullscreenButton = w.btn, this.fullscreenIcon = w.icon, this.fullscreenButton.addEventListener("click", () => this.toggleFullscreen()), m.appendChild(this.fullscreenButton), document.pictureInPictureEnabled || (this.pipButton.style.display = "none"), 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", r.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);
1224
+ for (const k of Ee) t.addEventListener(k, this.onLoadingStart);
1225
+ for (const k of Ce) t.addEventListener(k, this.onLoadingEnd);
1216
1226
  this.renderPlayState(), this.renderTime();
1217
1227
  }
1218
1228
  /** 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. */
@@ -1220,7 +1230,7 @@ class gt {
1220
1230
  var i;
1221
1231
  const t = this.el.getBoundingClientRect().width;
1222
1232
  if (t === 0) return;
1223
- const e = !this.forceInline && t < ut;
1233
+ const e = !this.forceInline && t < kt;
1224
1234
  e !== this.compact && (this.compact = e, this.settingsMenu.closeMenu(), this.el.toggleAttribute("data-compact", e), (i = this.el.closest(".video-area")) == null || i.toggleAttribute("data-compact", e), e ? (this.fullscreenSlot.appendChild(this.fullscreenButton), this.applyButtonVisibility(), this.topEl.appendChild(this.rightGroup)) : (this.rightGroup.appendChild(this.fullscreenButton), this.bottomRow.insertBefore(this.rightGroup, this.fullscreenSlot), this.fullscreenSlot.style.display = "none"));
1225
1235
  }
1226
1236
  /**
@@ -1256,7 +1266,7 @@ class gt {
1256
1266
  this.fullscreenButton.style.display = t ? "" : "none", this.compact && (this.fullscreenSlot.style.display = t && !this.adMode ? "flex" : "none"), this.pipButton.style.display = this.showPipButton && !this.audioMode && (document.pictureInPictureEnabled || this.docPipAvailable) ? "" : "none";
1257
1267
  }
1258
1268
  setFullscreenState(t) {
1259
- F(this.fullscreenIcon, t ? "fullscreen-exit" : "fullscreen-enter"), O(this.fullscreenButton, t ? this.labels.fullscreenExit : this.labels.fullscreenEnter);
1269
+ q(this.fullscreenIcon, t ? "fullscreen-exit" : "fullscreen-enter"), D(this.fullscreenButton, t ? this.labels.fullscreenExit : this.labels.fullscreenEnter);
1260
1270
  }
1261
1271
  /** Dil sonradan değişince (`options.locale`/`labels`) statik (reaktif olarak yeniden render edilmeyen) etiketleri tazeler. */
1262
1272
  /** Geri/ileri sarma butonları — `null` süre o butonu gizler. */
@@ -1269,16 +1279,16 @@ class gt {
1269
1279
  }
1270
1280
  renderSkipButtons() {
1271
1281
  const t = (e, i, s) => {
1272
- 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), O(e.btn, s(i)));
1282
+ 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), D(e.btn, s(i)));
1273
1283
  };
1274
1284
  t(this.skipBack, this.skipSeconds.back, this.labels.skipBack), t(this.skipForward, this.skipSeconds.forward, this.labels.skipForward);
1275
1285
  }
1276
1286
  skip(t) {
1277
1287
  var e;
1278
- !t || !this.seekingEnabled || (qe(this.video, t), (e = this.onSkip) == null || e.call(this, t));
1288
+ !t || !this.seekingEnabled || (Qe(this.video, t), (e = this.onSkip) == null || e.call(this, t));
1279
1289
  }
1280
1290
  refreshLabels() {
1281
- this.renderPlayState(), this.renderSkipButtons(), O(this.pipButton, this.labels.pip), O(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();
1291
+ this.renderPlayState(), this.renderSkipButtons(), D(this.pipButton, this.labels.pip), D(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();
1282
1292
  }
1283
1293
  /** Reklam modu: seek bar, süre ve sağ grup gizlenir; oynat/duraklat + ses kalır. */
1284
1294
  setAdMode(t) {
@@ -1294,7 +1304,7 @@ class gt {
1294
1304
  this.adInfoEl.style.display = "none", this.adInfoEl.textContent = "";
1295
1305
  return;
1296
1306
  }
1297
- const e = t.total > 1 ? ` ${t.position}/${t.total}` : "", i = t.remaining >= 0 ? ` · ${R(Math.ceil(t.remaining))}` : "";
1307
+ const e = t.total > 1 ? ` ${t.position}/${t.total}` : "", i = t.remaining >= 0 ? ` · ${N(Math.ceil(t.remaining))}` : "";
1298
1308
  this.adInfoEl.textContent = `${this.labels.adLabel}${e}${i}`, this.adInfoEl.style.display = "";
1299
1309
  }
1300
1310
  /** `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. */
@@ -1309,7 +1319,7 @@ class gt {
1309
1319
  }
1310
1320
  /** Plugin'lerin (loop-section vb.) kontrol çubuğuna kendi butonlarını eklemesi için — ayarlar menüsünden önce yerleştirilir. */
1311
1321
  addButton(t, e, i) {
1312
- const { btn: s, icon: r } = N(t, e);
1322
+ const { btn: s, icon: r } = H(t, e);
1313
1323
  return s.addEventListener("click", i), this.row.insertBefore(s, this.extraButtonAnchor), { btn: s, icon: r };
1314
1324
  }
1315
1325
  toggleTimeMode() {
@@ -1388,16 +1398,16 @@ class gt {
1388
1398
  }
1389
1399
  destroy() {
1390
1400
  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);
1391
- for (const t of be) this.video.removeEventListener(t, this.onLoadingStart);
1392
- for (const t of ve) this.video.removeEventListener(t, this.onLoadingEnd);
1401
+ for (const t of Ee) this.video.removeEventListener(t, this.onLoadingStart);
1402
+ for (const t of Ce) this.video.removeEventListener(t, this.onLoadingEnd);
1393
1403
  this.loadingTimer && clearTimeout(this.loadingTimer), this.resizeObserver.disconnect(), this.topEl.remove(), this.seekBar.destroy(), this.settingsMenu.destroy();
1394
1404
  }
1395
1405
  }
1396
- const ft = 450, bt = 60, ke = 8, Q = 6, vt = /* @__PURE__ */ new Set(["seek-bar", "time-display"]);
1397
- function yt() {
1406
+ const Et = 450, Ct = 60, Te = 8, J = 6, St = /* @__PURE__ */ new Set(["seek-bar", "time-display"]);
1407
+ function Tt() {
1398
1408
  return typeof window.matchMedia != "function" || window.matchMedia("(hover: hover)").matches;
1399
1409
  }
1400
- class kt {
1410
+ class At {
1401
1411
  constructor(t) {
1402
1412
  a(this, "el");
1403
1413
  a(this, "labelEl");
@@ -1451,18 +1461,18 @@ class kt {
1451
1461
  const e = t, i = (r = e == null ? void 0 : e.closest) == null ? void 0 : r.call(e, 'button[aria-label], [role="slider"][aria-label]');
1452
1462
  if (!i) return null;
1453
1463
  const s = i.getAttribute("part");
1454
- return s && vt.has(s) || i.offsetParent === null && i !== document.activeElement ? null : i;
1464
+ return s && St.has(s) || i.offsetParent === null && i !== document.activeElement ? null : i;
1455
1465
  }
1456
1466
  scheduleShow(t) {
1457
1467
  this.hideTimer && (clearTimeout(this.hideTimer), this.hideTimer = null), this.showTimer && clearTimeout(this.showTimer), this.pendingTarget = t, this.showTimer = setTimeout(() => {
1458
1468
  this.showTimer = null, this.pendingTarget = null, this.show(t);
1459
- }, ft);
1469
+ }, Et);
1460
1470
  }
1461
1471
  scheduleHide() {
1462
- this.showTimer && (clearTimeout(this.showTimer), this.showTimer = null), this.pendingTarget = null, this.hideTimer && clearTimeout(this.hideTimer), this.hideTimer = setTimeout(() => this.hideNow(), bt);
1472
+ this.showTimer && (clearTimeout(this.showTimer), this.showTimer = null), this.pendingTarget = null, this.hideTimer && clearTimeout(this.hideTimer), this.hideTimer = setTimeout(() => this.hideNow(), Ct);
1463
1473
  }
1464
1474
  show(t) {
1465
- if (!yt()) return;
1475
+ if (!Tt()) return;
1466
1476
  const e = t.getAttribute("aria-label");
1467
1477
  if (!e) return;
1468
1478
  this.currentTarget = t, this.labelEl.textContent = e;
@@ -1474,15 +1484,15 @@ class kt {
1474
1484
  }
1475
1485
  position(t) {
1476
1486
  const e = this.mountEl.getBoundingClientRect(), i = t.getBoundingClientRect(), s = this.el.getBoundingClientRect();
1477
- let r = i.top - e.top - s.height - ke;
1478
- r < Q && (r = i.bottom - e.top + ke);
1479
- let o = i.left - e.left + i.width / 2 - s.width / 2;
1480
- const l = e.width - s.width - Q;
1481
- o = Math.max(Q, Math.min(o, l)), this.el.style.top = `${r}px`, this.el.style.left = `${o}px`;
1487
+ let r = i.top - e.top - s.height - Te;
1488
+ r < J && (r = i.bottom - e.top + Te);
1489
+ let n = i.left - e.left + i.width / 2 - s.width / 2;
1490
+ const l = e.width - s.width - J;
1491
+ n = Math.max(J, Math.min(n, l)), this.el.style.top = `${r}px`, this.el.style.left = `${n}px`;
1482
1492
  }
1483
1493
  }
1484
- const xt = 30, wt = 12;
1485
- class Et {
1494
+ const Pt = 30, Lt = 12;
1495
+ class Mt {
1486
1496
  constructor(t, e, i) {
1487
1497
  a(this, "host");
1488
1498
  a(this, "video");
@@ -1510,9 +1520,9 @@ class Et {
1510
1520
  const e = (i, s) => {
1511
1521
  this.frameCb = null;
1512
1522
  const r = s.mediaTime - this.lastMediaTime;
1513
- if (this.lastMediaTime = s.mediaTime, r > 1 / 121 && r < 1 / 7 && this.frameSamples.push(r), this.frameSamples.length >= wt) {
1514
- const o = [...this.frameSamples].sort((l, h) => l - h);
1515
- this.measuredFrame = o[0];
1523
+ if (this.lastMediaTime = s.mediaTime, r > 1 / 121 && r < 1 / 7 && this.frameSamples.push(r), this.frameSamples.length >= Lt) {
1524
+ const n = [...this.frameSamples].sort((l, h) => l - h);
1525
+ this.measuredFrame = n[0];
1516
1526
  return;
1517
1527
  }
1518
1528
  !t.paused && !t.ended && (this.frameCb = t.requestVideoFrameCallback(e));
@@ -1520,7 +1530,7 @@ class Et {
1520
1530
  this.frameCb = t.requestVideoFrameCallback(e);
1521
1531
  });
1522
1532
  a(this, "onKeyDown", (t) => {
1523
- var s, r, o;
1533
+ var s, r, n;
1524
1534
  if (t.defaultPrevented) return;
1525
1535
  const e = t.composedPath()[0];
1526
1536
  if ((t.key === " " || t.key === "Enter") && e instanceof HTMLButtonElement) return;
@@ -1536,11 +1546,11 @@ class Et {
1536
1546
  break;
1537
1547
  case "ArrowRight":
1538
1548
  case "l":
1539
- Number.isFinite(i) && (this.video.currentTime = _(this.video, Math.min(i, this.video.currentTime + this.seekStep)), (r = this.onSeek) == null || r.call(this, this.seekStep)), t.preventDefault();
1549
+ Number.isFinite(i) && (this.video.currentTime = W(this.video, Math.min(i, this.video.currentTime + this.seekStep)), (r = this.onSeek) == null || r.call(this, this.seekStep)), t.preventDefault();
1540
1550
  break;
1541
1551
  case "ArrowLeft":
1542
1552
  case "j":
1543
- this.video.currentTime = Math.max(0, this.video.currentTime - this.seekStep), (o = this.onSeek) == null || o.call(this, -this.seekStep), t.preventDefault();
1553
+ this.video.currentTime = Math.max(0, this.video.currentTime - this.seekStep), (n = this.onSeek) == null || n.call(this, -this.seekStep), t.preventDefault();
1544
1554
  break;
1545
1555
  case "ArrowUp":
1546
1556
  this.video.volume = Math.min(1, this.video.volume + 0.1), this.video.muted = !1, t.preventDefault();
@@ -1565,7 +1575,7 @@ class Et {
1565
1575
  }
1566
1576
  /** Bir karenin süresi (sn). */
1567
1577
  get frameDuration() {
1568
- return this.frameRate && this.frameRate > 0 ? 1 / this.frameRate : this.measuredFrame ?? 1 / xt;
1578
+ return this.frameRate && this.frameRate > 0 ? 1 / this.frameRate : this.measuredFrame ?? 1 / Pt;
1569
1579
  }
1570
1580
  /** Bir kare ileri / geri; oynuyorsa önce durdurur. */
1571
1581
  stepFrame(t) {
@@ -1579,7 +1589,7 @@ class Et {
1579
1589
  this.host.removeEventListener("keydown", this.onKeyDown), this.video.removeEventListener("playing", this.measure), this.video.removeEventListener("loadstart", this.resetFrame), this.frameCb !== null && ((e = (t = this.video).cancelVideoFrameCallback) == null || e.call(t, this.frameCb));
1580
1590
  }
1581
1591
  }
1582
- class Ct {
1592
+ class Bt {
1583
1593
  constructor(t) {
1584
1594
  a(this, "el");
1585
1595
  a(this, "video");
@@ -1591,8 +1601,8 @@ class Ct {
1591
1601
  this.video.removeEventListener("waiting", this.show), this.video.removeEventListener("playing", this.hide), this.video.removeEventListener("canplay", this.hide), this.video.removeEventListener("pause", this.hide);
1592
1602
  }
1593
1603
  }
1594
- const St = '<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>';
1595
- class Tt {
1604
+ const Rt = '<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>';
1605
+ class Ot {
1596
1606
  constructor(t, e) {
1597
1607
  a(this, "el");
1598
1608
  a(this, "video");
@@ -1608,13 +1618,13 @@ class Tt {
1608
1618
  /** showStreamError ile açılan hatanın kodu (video.error yokken). */
1609
1619
  a(this, "streamErrorCode", 0);
1610
1620
  a(this, "show", () => {
1611
- !this.video.getAttribute("src") && !this.video.querySelector("source") || ie(this.video.error) || this.shouldShow() && this.open();
1621
+ !this.video.getAttribute("src") && !this.video.querySelector("source") || oe(this.video.error) || this.shouldShow() && this.open();
1612
1622
  });
1613
1623
  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";
1614
1624
  const i = document.createElement("div");
1615
1625
  i.className = "hp-error-card";
1616
1626
  const s = document.createElement("div");
1617
- s.className = "hp-error-icon", s.appendChild(z("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 = St, this.retryText = document.createElement("span"), this.retryText.textContent = e.retry, this.retryBtn.appendChild(this.retryText), this.retryBtn.addEventListener("click", () => {
1627
+ s.className = "hp-error-icon", s.appendChild(z("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 = Rt, this.retryText = document.createElement("span"), this.retryText.textContent = e.retry, this.retryBtn.appendChild(this.retryText), this.retryBtn.addEventListener("click", () => {
1618
1628
  var r;
1619
1629
  this.dismiss(), (r = this.onRetry) == null || r.call(this);
1620
1630
  }), i.appendChild(this.retryBtn), this.el.appendChild(i), t.addEventListener("error", this.show);
@@ -1669,138 +1679,138 @@ class Tt {
1669
1679
  this.video.removeEventListener("error", this.show);
1670
1680
  }
1671
1681
  }
1672
- const Z = /* @__PURE__ */ new WeakMap(), Ke = /* @__PURE__ */ new WeakSet(), U = /* @__PURE__ */ new WeakMap(), se = /* @__PURE__ */ new WeakMap();
1673
- function fi(n) {
1674
- const t = se.get(n);
1682
+ const te = /* @__PURE__ */ new WeakMap(), Ye = /* @__PURE__ */ new WeakSet(), Q = /* @__PURE__ */ new WeakMap(), le = /* @__PURE__ */ new WeakMap();
1683
+ function Ei(o) {
1684
+ const t = le.get(o);
1675
1685
  if (t) return t;
1676
- const e = n.cues;
1686
+ const e = o.cues;
1677
1687
  return e ? Array.from(e, (i) => ({ start: i.startTime, end: i.endTime, text: i.text ?? "" })) : null;
1678
1688
  }
1679
- function At(n) {
1680
- return Ke.has(n);
1689
+ function It(o) {
1690
+ return Ye.has(o);
1681
1691
  }
1682
- function Ge(n, t, e, i, s) {
1683
- let r = Z.get(n);
1684
- r || Z.set(n, r = /* @__PURE__ */ new Map());
1685
- const o = `${t}\0${e}\0${i}\0${s}`;
1686
- let l = r.get(o);
1687
- return l || (l = n.addTextTrack(e, i, s), Ke.add(l), r.set(o, l)), l;
1692
+ function Xe(o, t, e, i, s) {
1693
+ let r = te.get(o);
1694
+ r || te.set(o, r = /* @__PURE__ */ new Map());
1695
+ const n = `${t}\0${e}\0${i}\0${s}`;
1696
+ let l = r.get(n);
1697
+ return l || (l = o.addTextTrack(e, i, s), Ye.add(l), r.set(n, l)), l;
1688
1698
  }
1689
- function _e(n, t) {
1690
- for (const [e, i] of Z.get(n) ?? [])
1699
+ function Je(o, t) {
1700
+ for (const [e, i] of te.get(o) ?? [])
1691
1701
  if (e.startsWith(`${t}\0`)) {
1692
- se.delete(i), i.mode = "hidden";
1702
+ le.delete(i), i.mode = "hidden";
1693
1703
  for (const s of Array.from(i.cues ?? [])) i.removeCue(s);
1694
1704
  i.mode = "disabled";
1695
1705
  }
1696
1706
  }
1697
- function Pt(n, t) {
1698
- Ue(n);
1699
- const e = U.get(n), i = [];
1707
+ function Nt(o, t) {
1708
+ Ze(o);
1709
+ const e = Q.get(o), i = [];
1700
1710
  for (const s of t) {
1701
- const r = Ge(n, "options", "subtitles", s.label, s.srclang);
1702
- r.mode = s.default ? "hidden" : "disabled", i.push({ label: s.label, track: r }), Mt(n, r, s.src, e);
1711
+ const r = Xe(o, "options", "subtitles", s.label, s.srclang);
1712
+ r.mode = s.default ? "hidden" : "disabled", i.push({ label: s.label, track: r }), Ft(o, r, s.src, e);
1703
1713
  }
1704
1714
  return i;
1705
1715
  }
1706
- function Ue(n) {
1707
- U.set(n, (U.get(n) ?? 0) + 1), _e(n, "options");
1716
+ function Ze(o) {
1717
+ Q.set(o, (Q.get(o) ?? 0) + 1), Je(o, "options");
1708
1718
  }
1709
- function Lt(n, t) {
1719
+ function zt(o, t) {
1710
1720
  let e = null;
1711
- for (const { label: i, track: s } of n) {
1721
+ for (const { label: i, track: s } of o) {
1712
1722
  const r = i === t;
1713
1723
  s.mode = r ? "hidden" : "disabled", r && (e = s);
1714
1724
  }
1715
1725
  return e;
1716
1726
  }
1717
- async function Mt(n, t, e, i) {
1727
+ async function Ft(o, t, e, i) {
1718
1728
  let s;
1719
1729
  try {
1720
- const o = await fetch(e);
1721
- if (!o.ok) throw new Error(`HTTP ${o.status}`);
1722
- s = await o.text();
1723
- } catch (o) {
1724
- console.warn("[HopePlayer] altyazı yüklenemedi:", e, o), n.dispatchEvent(new CustomEvent("hp-internal:subtitle-error", { detail: { src: e, message: String(o) } }));
1730
+ const n = await fetch(e);
1731
+ if (!n.ok) throw new Error(`HTTP ${n.status}`);
1732
+ s = await n.text();
1733
+ } catch (n) {
1734
+ console.warn("[HopePlayer] altyazı yüklenemedi:", e, n), o.dispatchEvent(new CustomEvent("hp-internal:subtitle-error", { detail: { src: e, message: String(n) } }));
1725
1735
  return;
1726
1736
  }
1727
- if (U.get(n) !== i || typeof VTTCue != "function") return;
1728
- const r = Rt(s);
1729
- se.set(t, r);
1730
- for (const o of r) {
1731
- const l = new VTTCue(o.start, o.end, o.text);
1732
- zt(l, o.settings), t.addCue(l);
1737
+ if (Q.get(o) !== i || typeof VTTCue != "function") return;
1738
+ const r = Ht(s);
1739
+ le.set(t, r);
1740
+ for (const n of r) {
1741
+ const l = new VTTCue(n.start, n.end, n.text);
1742
+ qt(l, n.settings), t.addCue(l);
1733
1743
  }
1734
- n.dispatchEvent(new CustomEvent("hp-internal:subtitle-loaded"));
1744
+ o.dispatchEvent(new CustomEvent("hp-internal:subtitle-loaded"));
1735
1745
  }
1736
- const xe = "(?:\\d+:)?\\d{1,2}:\\d{2}(?:[.,]\\d{1,3})?", Bt = new RegExp(`^(${xe})\\s+-->\\s+(${xe})(.*)$`);
1737
- function we(n) {
1738
- return n.replace(",", ".").split(":").reduce((t, e) => t * 60 + Number(e), 0);
1746
+ const Ae = "(?:\\d+:)?\\d{1,2}:\\d{2}(?:[.,]\\d{1,3})?", Dt = new RegExp(`^(${Ae})\\s+-->\\s+(${Ae})(.*)$`);
1747
+ function Pe(o) {
1748
+ return o.replace(",", ".").split(":").reduce((t, e) => t * 60 + Number(e), 0);
1739
1749
  }
1740
- function Rt(n) {
1741
- const t = [], e = n.replace(/^/, "").replace(/\r\n?/g, `
1750
+ function Ht(o) {
1751
+ const t = [], e = o.replace(/^/, "").replace(/\r\n?/g, `
1742
1752
  `).split(/\n{2,}/);
1743
1753
  for (const i of e) {
1744
1754
  const s = i.split(`
1745
1755
  `), r = s.findIndex((h) => h.includes("-->"));
1746
1756
  if (r < 0) continue;
1747
- const o = Bt.exec(s[r].trim());
1748
- if (!o) continue;
1757
+ const n = Dt.exec(s[r].trim());
1758
+ if (!n) continue;
1749
1759
  const l = s.slice(r + 1).join(`
1750
1760
  `);
1751
- l.trim() && t.push({ start: we(o[1]), end: we(o[2]), settings: o[3].trim(), text: l });
1761
+ l.trim() && t.push({ start: Pe(n[1]), end: Pe(n[2]), settings: n[3].trim(), text: l });
1752
1762
  }
1753
1763
  return t;
1754
1764
  }
1755
- function zt(n, t) {
1765
+ function qt(o, t) {
1756
1766
  for (const e of t.split(/\s+/)) {
1757
1767
  const [i, s] = e.split(":");
1758
1768
  if (!i || !s) continue;
1759
1769
  const [r] = s.split(",");
1760
1770
  try {
1761
- i === "align" ? n.align = r : i === "vertical" ? n.vertical = r : i === "size" ? n.size = parseFloat(r) : i === "position" ? n.position = parseFloat(r) : i === "line" && (n.snapToLines = !r.endsWith("%"), n.line = parseFloat(r));
1771
+ i === "align" ? o.align = r : i === "vertical" ? o.vertical = r : i === "size" ? o.size = parseFloat(r) : i === "position" ? o.position = parseFloat(r) : i === "line" && (o.snapToLines = !r.endsWith("%"), o.line = parseFloat(r));
1762
1772
  } catch {
1763
1773
  }
1764
1774
  }
1765
1775
  }
1766
- const K = 6, It = 20, Ot = 14, Nt = 6, Ft = 10, Dt = 3, $e = "hope-caption-row", je = "hope-caption-font-size", Ee = "hope-caption-bg-color", Ce = "hope-caption-text-color", Ht = {
1776
+ const U = 6, Vt = 20, Kt = 14, Gt = 6, _t = 10, Ut = 3, et = "hope-caption-row", tt = "hope-caption-font-size", Le = "hope-caption-bg-color", Me = "hope-caption-text-color", $t = {
1767
1777
  small: 0.78,
1768
1778
  normal: 1,
1769
1779
  large: 1.35
1770
- }, Se = [
1780
+ }, Be = [
1771
1781
  "rgba(0, 0, 0, 0.75)",
1772
1782
  "rgba(0, 0, 0, 0)",
1773
1783
  "rgba(255, 255, 255, 0.85)",
1774
1784
  "rgba(183, 28, 28, 0.8)",
1775
1785
  "rgba(13, 71, 161, 0.8)",
1776
1786
  "rgba(27, 94, 32, 0.8)"
1777
- ], Te = ["#ffffff", "#000000", "#ffeb3b", "#ff5252", "#18ffff", "#69f0ae"];
1778
- function qt() {
1787
+ ], Re = ["#ffffff", "#000000", "#ffeb3b", "#ff5252", "#18ffff", "#69f0ae"];
1788
+ function Wt() {
1779
1789
  try {
1780
- const n = window.localStorage.getItem($e), t = n === null ? 0 : Number(n);
1781
- return Number.isFinite(t) && t >= 0 && t < K ? t : 0;
1790
+ const o = window.localStorage.getItem(et), t = o === null ? 0 : Number(o);
1791
+ return Number.isFinite(t) && t >= 0 && t < U ? t : 0;
1782
1792
  } catch {
1783
1793
  return 0;
1784
1794
  }
1785
1795
  }
1786
- function Vt() {
1796
+ function Qt() {
1787
1797
  try {
1788
- const n = window.localStorage.getItem(je);
1789
- return n === "small" || n === "normal" || n === "large" ? n : "normal";
1798
+ const o = window.localStorage.getItem(tt);
1799
+ return o === "small" || o === "normal" || o === "large" ? o : "normal";
1790
1800
  } catch {
1791
1801
  return "normal";
1792
1802
  }
1793
1803
  }
1794
- function Ae(n, t) {
1804
+ function Oe(o, t) {
1795
1805
  const e = t[0] ?? "";
1796
1806
  try {
1797
- const i = window.localStorage.getItem(n);
1807
+ const i = window.localStorage.getItem(o);
1798
1808
  return i !== null && t.includes(i) ? i : e;
1799
1809
  } catch {
1800
1810
  return e;
1801
1811
  }
1802
1812
  }
1803
- class D {
1813
+ class V {
1804
1814
  constructor(t, e, i, s) {
1805
1815
  a(this, "layerEl");
1806
1816
  a(this, "bubbleEl");
@@ -1808,10 +1818,10 @@ class D {
1808
1818
  a(this, "seekBarEl");
1809
1819
  a(this, "labels");
1810
1820
  a(this, "activeTrack", null);
1811
- a(this, "fontSize", Vt());
1812
- a(this, "bgColor", Ae(Ee, Se));
1813
- a(this, "textColor", Ae(Ce, Te));
1814
- a(this, "rowIndex", qt());
1821
+ a(this, "fontSize", Qt());
1822
+ a(this, "bgColor", Oe(Le, Be));
1823
+ a(this, "textColor", Oe(Me, Re));
1824
+ a(this, "rowIndex", Wt());
1815
1825
  a(this, "dragging", !1);
1816
1826
  /** Kontrol çubuğu görünür mü — görünürken altyazı seek bar'ın üstünde, değilken en altta. */
1817
1827
  a(this, "chromeVisible", !0);
@@ -1840,7 +1850,7 @@ class D {
1840
1850
  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));
1841
1851
  });
1842
1852
  a(this, "onPointerMove", (t) => {
1843
- this.dragging && (this.pendingDeltaPx = t.clientY - this.dragStartClientY, Math.abs(this.pendingDeltaPx) > Dt && (this.dragMoved = !0), this.rafId === null && (this.rafId = requestAnimationFrame(this.applyPendingDrag)));
1853
+ this.dragging && (this.pendingDeltaPx = t.clientY - this.dragStartClientY, Math.abs(this.pendingDeltaPx) > Ut && (this.dragMoved = !0), this.rafId === null && (this.rafId = requestAnimationFrame(this.applyPendingDrag)));
1844
1854
  });
1845
1855
  a(this, "applyPendingDrag", () => {
1846
1856
  if (this.rafId = null, !this.dragging) return;
@@ -1849,8 +1859,8 @@ class D {
1849
1859
  });
1850
1860
  a(this, "onPointerUp", (t) => {
1851
1861
  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;
1852
- const { min: e, max: i } = this.bounds(), s = Math.min(i, Math.max(e, this.dragStartBottomPx - this.pendingDeltaPx)), r = i > e ? (s - e) / (i - e) : 0, o = Math.round(r * (K - 1));
1853
- this.setRowIndex(o, !0);
1862
+ const { min: e, max: i } = this.bounds(), s = Math.min(i, Math.max(e, this.dragStartBottomPx - this.pendingDeltaPx)), r = i > e ? (s - e) / (i - e) : 0, n = Math.round(r * (U - 1));
1863
+ this.setRowIndex(n, !0);
1854
1864
  });
1855
1865
  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();
1856
1866
  }
@@ -1864,7 +1874,7 @@ class D {
1864
1874
  setFontSize(t) {
1865
1875
  this.fontSize = t, this.applyFontSizeVar(), this.recomputePosition();
1866
1876
  try {
1867
- window.localStorage.setItem(je, t);
1877
+ window.localStorage.setItem(tt, t);
1868
1878
  } catch {
1869
1879
  }
1870
1880
  }
@@ -1874,7 +1884,7 @@ class D {
1874
1884
  setBgColor(t) {
1875
1885
  this.bgColor = t, this.bubbleEl.style.setProperty("--hp-caption-bg", t);
1876
1886
  try {
1877
- window.localStorage.setItem(Ee, t);
1887
+ window.localStorage.setItem(Le, t);
1878
1888
  } catch {
1879
1889
  }
1880
1890
  }
@@ -1884,7 +1894,7 @@ class D {
1884
1894
  setTextColor(t) {
1885
1895
  this.textColor = t, this.bubbleEl.style.setProperty("--hp-caption-text", t);
1886
1896
  try {
1887
- window.localStorage.setItem(Ce, t);
1897
+ window.localStorage.setItem(Me, t);
1888
1898
  } catch {
1889
1899
  }
1890
1900
  }
@@ -1897,14 +1907,14 @@ class D {
1897
1907
  this.labels = t, this.bubbleEl.setAttribute("aria-label", t.captionDragHandle);
1898
1908
  }
1899
1909
  applyFontSizeVar() {
1900
- this.bubbleEl.style.setProperty("--hp-caption-size-multiplier", String(Ht[this.fontSize]));
1910
+ this.bubbleEl.style.setProperty("--hp-caption-size-multiplier", String($t[this.fontSize]));
1901
1911
  }
1902
1912
  bounds() {
1903
- const t = this.videoArea.getBoundingClientRect(), e = this.seekBarEl.getBoundingClientRect(), s = (this.bubbleEl.getBoundingClientRect().height || 32) + It, r = Math.max(Ft, Math.round(t.height * 0.04)), o = this.chromeVisible && e.height > 0 ? Math.max(0, Math.round(t.bottom - e.top + (this.videoArea.hasAttribute("data-compact") ? Nt : Ot))) : r, l = Math.max(o, Math.round(t.height - s));
1904
- return { min: o, max: l };
1913
+ const t = this.videoArea.getBoundingClientRect(), e = this.seekBarEl.getBoundingClientRect(), s = (this.bubbleEl.getBoundingClientRect().height || 32) + Vt, r = Math.max(_t, Math.round(t.height * 0.04)), n = this.chromeVisible && e.height > 0 ? Math.max(0, Math.round(t.bottom - e.top + (this.videoArea.hasAttribute("data-compact") ? Gt : Kt))) : r, l = Math.max(n, Math.round(t.height - s));
1914
+ return { min: n, max: l };
1905
1915
  }
1906
1916
  pxForRow(t) {
1907
- const { min: e, max: i } = this.bounds(), s = t / (K - 1);
1917
+ const { min: e, max: i } = this.bounds(), s = t / (U - 1);
1908
1918
  return Math.round(e + s * (i - e));
1909
1919
  }
1910
1920
  /**
@@ -1923,11 +1933,11 @@ class D {
1923
1933
  }
1924
1934
  /** FLIP: bottom anında yazılır, yalnızca transform animasyonlanır — bottom'u animasyonlamak bırakınca zıplatıyordu. */
1925
1935
  setRowIndex(t, e) {
1926
- this.rowIndex = Math.min(K - 1, Math.max(0, t));
1936
+ this.rowIndex = Math.min(U - 1, Math.max(0, t));
1927
1937
  const i = this.pxForRow(this.rowIndex), s = this.visualBottomPx();
1928
1938
  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"));
1929
1939
  try {
1930
- window.localStorage.setItem($e, String(this.rowIndex));
1940
+ window.localStorage.setItem(et, String(this.rowIndex));
1931
1941
  } catch {
1932
1942
  }
1933
1943
  }
@@ -1943,8 +1953,8 @@ class D {
1943
1953
  this.activeTrack && this.activeTrack.removeEventListener("cuechange", this.onCueChange), this.resizeObserver.disconnect(), this.rafId !== null && cancelAnimationFrame(this.rafId), this.bubbleEl.removeEventListener("pointerdown", this.onPointerDown);
1944
1954
  }
1945
1955
  }
1946
- a(D, "BG_COLOR_PRESETS", Se), a(D, "TEXT_COLOR_PRESETS", Te);
1947
- class Kt {
1956
+ a(V, "BG_COLOR_PRESETS", Be), a(V, "TEXT_COLOR_PRESETS", Re);
1957
+ class jt {
1948
1958
  constructor(t) {
1949
1959
  a(this, "el");
1950
1960
  a(this, "bufferedEl");
@@ -1983,8 +1993,8 @@ class Kt {
1983
1993
  this.rafId !== null && cancelAnimationFrame(this.rafId), this.rafId = null;
1984
1994
  }
1985
1995
  }
1986
- const Gt = 1e3, _t = 800, Ut = '<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>';
1987
- class $t {
1996
+ const Yt = 1e3, Xt = 800, Jt = '<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>';
1997
+ class Zt {
1988
1998
  constructor(t) {
1989
1999
  a(this, "el");
1990
2000
  a(this, "valueEl");
@@ -1995,7 +2005,7 @@ class $t {
1995
2005
  a(this, "hideTimer", null);
1996
2006
  this.labels = t, this.el = document.createElement("div"), this.el.className = "hp-seek-fb", this.el.setAttribute("part", "seek-feedback");
1997
2007
  const e = document.createElement("span");
1998
- e.className = "hp-seek-fb-chevrons", e.innerHTML = Ut.repeat(3);
2008
+ e.className = "hp-seek-fb-chevrons", e.innerHTML = Jt.repeat(3);
1999
2009
  const i = document.createElement("span");
2000
2010
  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);
2001
2011
  }
@@ -2003,17 +2013,17 @@ class $t {
2003
2013
  show(t) {
2004
2014
  if (!t) return;
2005
2015
  const e = Date.now(), i = Math.sign(t) === Math.sign(this.total);
2006
- this.total = i && e - this.lastAt < Gt ? this.total + t : t, this.lastAt = e;
2016
+ this.total = i && e - this.lastAt < Yt ? this.total + t : t, this.lastAt = e;
2007
2017
  const s = Math.round(Math.abs(this.total) * 10) / 10, r = this.total > 0;
2008
2018
  this.el.dataset.side = r ? "forward" : "back", this.valueEl.textContent = `${r ? "+" : "−"}${s}`, this.unitEl.textContent = this.labels.secondsShort, this.liveEl.textContent = (r ? 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(() => {
2009
2019
  this.el.removeAttribute("data-visible"), this.total = 0;
2010
- }, _t);
2020
+ }, Xt);
2011
2021
  }
2012
2022
  destroy() {
2013
2023
  this.hideTimer && clearTimeout(this.hideTimer), this.el.remove();
2014
2024
  }
2015
2025
  }
2016
- class jt {
2026
+ class ei {
2017
2027
  constructor(t) {
2018
2028
  a(this, "el");
2019
2029
  a(this, "open", !1);
@@ -2040,29 +2050,29 @@ class jt {
2040
2050
  var v;
2041
2051
  this.el.replaceChildren(
2042
2052
  ...i.map((m) => {
2043
- const d = document.createElement(m.onSelect ? "button" : "div");
2044
- d.className = "hp-context-menu-item", m.onSelect ? (d.type = "button", d.setAttribute("role", "menuitem"), d.addEventListener("click", () => {
2053
+ const u = document.createElement(m.onSelect ? "button" : "div");
2054
+ u.className = "hp-context-menu-item", m.onSelect ? (u.type = "button", u.setAttribute("role", "menuitem"), u.addEventListener("click", () => {
2045
2055
  this.close(), m.onSelect();
2046
- })) : d.setAttribute("data-info", "");
2047
- const x = document.createElement("span");
2048
- if (x.textContent = m.label, d.appendChild(x), m.meta) {
2056
+ })) : u.setAttribute("data-info", "");
2057
+ const w = document.createElement("span");
2058
+ if (w.textContent = m.label, u.appendChild(w), m.meta) {
2049
2059
  const k = document.createElement("span");
2050
- k.className = "hp-context-menu-meta", k.textContent = m.meta, d.appendChild(k);
2060
+ k.className = "hp-context-menu-meta", k.textContent = m.meta, u.appendChild(k);
2051
2061
  }
2052
- return d;
2062
+ return u;
2053
2063
  })
2054
2064
  ), this.el.setAttribute("data-open", ""), this.open = !0;
2055
- const s = this.container.getBoundingClientRect(), { width: r, height: o } = this.el.getBoundingClientRect(), l = Math.max(4, Math.min(t - s.left, s.width - r - 4)), h = Math.max(4, Math.min(e - s.top, s.height - o - 4));
2065
+ const s = this.container.getBoundingClientRect(), { width: r, height: n } = this.el.getBoundingClientRect(), l = Math.max(4, Math.min(t - s.left, s.width - r - 4)), h = Math.max(4, Math.min(e - s.top, s.height - n - 4));
2056
2066
  this.el.style.left = `${l}px`, this.el.style.top = `${h}px`, (v = this.el.querySelector("button")) == null || v.focus({ preventScroll: !0 });
2057
- const c = this.doc = this.el.ownerDocument, f = c.defaultView ?? window;
2058
- c.addEventListener("pointerdown", this.onOutside, !0), c.addEventListener("keydown", this.onKeyDown, !0), f.addEventListener("blur", this.close), f.addEventListener("resize", this.close), f.addEventListener("scroll", this.close, !0);
2067
+ const c = this.doc = this.el.ownerDocument, d = c.defaultView ?? window;
2068
+ c.addEventListener("pointerdown", this.onOutside, !0), c.addEventListener("keydown", this.onKeyDown, !0), d.addEventListener("blur", this.close), d.addEventListener("resize", this.close), d.addEventListener("scroll", this.close, !0);
2059
2069
  }
2060
2070
  destroy() {
2061
2071
  this.close(), this.el.remove();
2062
2072
  }
2063
2073
  }
2064
- const Wt = 3e3, Pe = 200;
2065
- class Qt {
2074
+ const ti = 3e3, Ie = 200;
2075
+ class ii {
2066
2076
  constructor() {
2067
2077
  a(this, "list", []);
2068
2078
  /** Kayıt eklenince / temizlenince (açık panel canlı güncellenir). */
@@ -2074,11 +2084,11 @@ class Qt {
2074
2084
  add(t) {
2075
2085
  var s, r;
2076
2086
  const e = Date.now(), i = this.list[this.list.length - 1];
2077
- if (i && e - i.time < Wt && i.source === t.source && i.message === t.message && JSON.stringify(i.details ?? {}) === JSON.stringify(t.details ?? {})) {
2087
+ if (i && e - i.time < ti && i.source === t.source && i.message === t.message && JSON.stringify(i.details ?? {}) === JSON.stringify(t.details ?? {})) {
2078
2088
  i.count = (i.count ?? 1) + 1, i.time = e, (s = this.onChange) == null || s.call(this);
2079
2089
  return;
2080
2090
  }
2081
- this.list.push({ time: e, ...t }), this.list.length > Pe && this.list.splice(0, this.list.length - Pe), (r = this.onChange) == null || r.call(this);
2091
+ this.list.push({ time: e, ...t }), this.list.length > Ie && this.list.splice(0, this.list.length - Ie), (r = this.onChange) == null || r.call(this);
2082
2092
  }
2083
2093
  clear() {
2084
2094
  var t;
@@ -2093,40 +2103,40 @@ class Qt {
2093
2103
  `);
2094
2104
  }
2095
2105
  }
2096
- const Xt = '@font-face{font-family:hope-icons;src:url(data:font/woff2;base64,d09GMgABAAAAAAwEAAsAAAAAI8QAAAu3AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGYACFCAq3AK89ATYCJANYCy4ABCAFhC4HghcbDx8z0kvOKiMy1fKAJ+NvVGt2KHjZoCp2GUFNK1hg+PNMFWfuARguS/CiAtaBZZmST4xvhCOxh17nN9RAEVjQQ3N91QsMdGe401kkSCYLavmASB3rEwpYGES3IGwfudN/2Da44CTSqFqjCdp5w7RKisjXF/H336Z/dtl7sRjJLkSMsAspVJBN0jqbJUmN6UKE1gk1wyqa1MVSUf19omyas9c552HxkzAypu51N7ZciF7ySXo4oqLL6FzYH62llqlIU1QVLqwLzuRuN3C/DxgmhXQfuKcNoqokkMCsgIUCQldhKmzcG+N77Ld6h9kKzGAVsALOffF154IAwyrYIdp34FhJ975LRjtTSKC9BXFx3Xd3CTuts4qkpLhoIRq8+1XQu6SgfboOHPQf+/9M5jWISGPocZ26XpLg60Bw+nria1boP3Y1x4NtR0AKxMCygWn0XHnsE8Qht8wnhhWbcAS3nCAIbmICAi4a9uZARMQkpOf/wGvSoo3BktGhS48+A4aMcOSgBrRABiCsBOQQsAFBACIIQAwBSCAAKQSgAQFoQgBaEIA2BMBAACwEIIMAdCAAXQhADwLQhwAMIABDCMAIAuAgVCAHwMM+lgGvgvkT7EOg5GM/NiLVLfYc7XCE9PWNkxubkOgcl9il43hSappmNCJJJkkmUexgi5euP4la1l1GCUU0k3J/83769GUzZsz+cpVdTHK2apQht6SYLLGCEbdw2Wb7WVVnfDF7/X2ilz6wVibuRAb7xkeKX/5wLdiXvxzzxi9fBPu5detKxi83V6sv88bNmxlGpidW1U3cyBq52oBsLLqFuto2rurt5dhRL2O8dWGVqyoKjfoDTc2bfaPcUZfN4TItGSdr9UtWCwloqqa4i810YKvrnqZicWOgWc+mKUmlWpaxxUwVDwEPDQ+ZRqx68W6YtcXUGBkZOsj6aVQZ2RqoStggjWwpiwUagejiVDk5QkI9l5QBtHwCQoArBgSF+i0pqysMCgr1QnIxxml0RBRVxIC4Ebw+HSTP7dGi8Ce8ca4upBYH9PClKprKO4g0BvTUJP/GBz4Qv3NidhbbNL4DJbubRixBd7akfOGZU+XV0JGqZG5bsrP8edTRCg2sptz2nRCXLYvrJN7KPry/uEyGLDt1/YG37u0WnVlu4TJQb2Soc6dwlnfJXO+qUBu+CB0ceyAVQUSvLM28AiIILSAIoFTWIBbKuvLUe+RiR9xTn5J64z4okInQ3K5ccw6ZYuiueYrmkKECQkTqv/Ikxzwr0D1JSSxHBcaIprQyQQigkuIC8tL6JD6pT36K/7IchbfTjanzfZ7X9Sxbd4bndYtzMUkaU4piEzjONMViychIdzAbaSzKE5AKaY6SSNQHC5W8C4tM0zapNpxlhklLP5bG0mwrYrXXR6UvhnlLVD+N0MODd1HPWlK7WKWauXTCMnXclBUstY/AImqdTqfzdSwhL2jpbVS9iJ5MryJos6JSFf2PUZ//FVr4GMrfDXE03VCDYnUZ6efQRgX6hgy3aQjU2ZBW5ldNZWirKsz/8eh1iWSdRpeoilNVUvrgIFN/Z0SqUyxUamkbKtXu0qjVl03X0FBTc46uTZ6eDBo7T6W5EmrBTUqergG4stDB6cxwpVeYs+LOZ1nqmUSXqWqJ2fCpe7dWI2uWWPiODruPtzhbDhzYcsBi+TJOi7PWvMSyJOLMou2cqylo+3Sr5lrnV/VsGsZcCXTjq7v5m1y/JVrXqPNQpOXLvVjuFV1ahBmX6PVL3nKeCfTCXIFYLfk9YgGHMMe7PH6p2sVz168gLYejHLPcjKSj5M/NgLvptNkiqgKzvfyH1mKGFwPsfDyHkZHndwiIOVMXYo5vg0lkcnI5VyF5+iKkBXYYPXgjIrkZWNzu99/BKhtEDC96JEnIvyBCNC8KkuQRefqP/xIGCMk7Gasa/AkDhp70b/8l9FGFctA65m/o1w53Hrw15thiL8beYpbDMU1nVkd6oKOiX1JdiuFap0ntYjR9WI2bOsAg7eO2NDNI/fVaDCX0qMt8WjenqkETZh2zGD7uCO3qPprF3NVp5B4QVofyQdu2Cswp+DXz+hVuhT8giDzHYLlbjrUsLxZX+4PuoN/jFXnaiBVTSCCpRAeRAjYZQc3FcsxwVxIQE3kVXcHhqCA20rzo9RCH6pc1ZrVYfm1MkWm3ePvX2rdt2t3PQ4H2B11ml6Fc80aTXHrfcj9OQvBp2AXJ6bGzLMKsweFxSoLDQbdkObH2iXaerr8NoZilEUWzxYLRkfvU8eODoNdbk4CgwhRAEikIDpFFBpfKOYSWhVK3PrHPNlqorwOtQ0fuosKH7JOk17CI4F18X44oDybZMaJ8UWG/5rwQ9VGZXzJT3uc1+9UbPpeEPjGE8n3+YObidZPWvt6TFh04n3f+wKJJvX2tm2TE32K89CJEmQx620SjdZLekJJ6L/Uh0LreFGXM0+tDg6wBfR6pa4+MU5LpKNhgVsgZ1i5gKRzZ3z9aUcBSFFtQET3dI5GwhAU7y8gV8PycLEmXbLP5PxzI1Wh2NpPJDOcLaEpW9K4uIqOE8ji7VWati2pIKqthSoo+13l/QUifkoIbZpBVZz8ks9rjyoUxkYTdRVl0wXmDjEbvLtPwJH+w2ZIlzDat4T9J0nIkNxWVlvbqFQkHa2uD4UivXqWlRSa5QsG6QRDrZoOY08VXGpc9rq5jB4aHddPucWw19f0U+qU47c4e96NkQd2jD9f39VKudjdc/XfluroPJVgjtNQJxW1Em9ydHI5/i2igP+o1BmTQVBQKZC7BDEEpepL0Qsz+oW5d5d+rG7pXK3vtu/7hUd2Ckh/jHt2nFb9Cn/qatjr2aLsNk4FsXfXjssZXik8zg6IdWjJAPSg0rKEziILit0CUvpahuip9gdRDd3npXFLw8OIQDkOEqops1Sv6tSpb+Zp+Ne6NMvZUvlEp+48rtHxl+8ryFQMx/cdmlyEy/+txEdVt+pYqcmivodVHLDPl5YWt+es/TJ7iLIzm9k1HUsv4VzE36iycMvmD1MAazsszybC6P+/qP7BZ7cTVb5YMmMHf1XdsU++qXpuZrRbKCaM0hGjDAiY7aAgd8URwYYooIDzBzZsOLh85sv+Atm2bWSxxNNgNbxZ/aQb0Hzly+fpbVb55Un4qSabmS/N8VbcabcgA4DtasGE5HQG7zMoYMGTIG4um5beqx9AIKtTWB9JJJiCtAjT4EsDnLr4Sl+B0Cq4S3w5jayOmKIc9EFRWKYMBu4OicP4S7elI6VgxqAiKrC6kZcWQIiSyyUrrNoo1iDYPQh6baGDBCEp/AghqYv8CQOwH8ZOYABCL+fMAEPuI5t5VRF/vxUTFwseJkd5HieHeh4ku3mOJKu8nxMDNLSHcALEvxAtipcH9wUNmgdWhdADiAq/oOEkHIAYS2wc/6jYRAQIACAB+muNDj8TmvynUJAAAjOX21xrbin0hfhIrAUABn2IJgN+lQpPGfj5Dfg0wN9LeERDSAa9dPFA/Z8wMmNih8X1+HAoRE8fREc0zBi4OJQOwTGynQoplPjQwrALDUhb7t4y4Zh8lbYTjKQMiurwJMY73LBPbTyHF8y00cNwBw9g/kGWBXjp38K0y6ZcyYZAMjzzIH9HG5J4Ha8Gt+EQgwSC55Xd6yzzLLieP7iPIAJFdT15BtKGa9UU3y9e/9BB53KlYBzxNxIj6QjFBgZTWma/4B6Hac82d1TvzxGX5SYhzzsCAdPaXbTmPWivmOzGZc51gI+eAHAvZCPGJPMTe2gqIzKBKZHcLM9NY5iVDx5JReZcAUuh94hUpVqJUDTXVUltGVpk66qqnvgYaaiSnXF4FzUtDOobtVSxqPjIRRIN0kMx7GDvE/wu3zFqYPELOfqTFCjf5IGoUAPKwDeT6dMSv2UHJlg4wuB/2Mins99EP2tj9iTazRkVPdbbul6FpFJ5vZtkESWeWgTRK63a+DpxG8LWVenZOR95cHPKMk0E65ueoLuXODg==) format("woff2");font-weight:400;font-style:normal;font-display:block}', Le = "hope-player-icon-font";
2097
- function Yt() {
2098
- if (typeof document > "u" || document.getElementById(Le)) return;
2099
- const n = document.createElement("style");
2100
- n.id = Le, n.textContent = Xt, document.head.appendChild(n);
2106
+ const si = '@font-face{font-family:hope-icons;src:url(data:font/woff2;base64,d09GMgABAAAAAAw4AAsAAAAAJFwAAAvoAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGYACFFgq3fLAbATYCJANcCzAABCAFhC4Hgh8bhx8z0lFOCoxMtTjI5N5Z3L/ESmg8uxHii47BGMEq/rSs0sIVDhq6OKyN+Q2iolujx12ERXwNIoJqrf+yBhZmH4L+RB4ZDgiFPvXDHzsiYfsI9G5OM+naABoQpwM+IM+7uGvL46tIPkn5wVA5e0B7taa7Ce9+1MFeCowSSB1M513R2MQmtiAsCUu649upd7PfQHaBOm1IRSkJtFBBAhUjDa0zF6ieU2p3jp1oey7WE9XfJ0pVlP38nGmZhvSGasId64EzTf4/SH9zhJgepPQPUU0SSGBWwEIBoZswE/ZcjfE7htu/x1nBMnAjVoG++nkuApXZ5suWLl+7VdfZQ0bDmALtHUTF4+ypEobGIUBRUDw0hBrvfuOXeFlJLI3jWOE99v+NepxMmaPHtfH4suTDJA3Gh+0PzYw/LKxOANvOUCLH9I4Fxf3iiJvygJvukYoVUViLWy4EabDdJnFQtzdHyOQK5eG/8OoamiotHTp16dajV59+AwYNETW0aAfECGQOkVggSCAjgZwEChIoSaBGAnUSaJBAkwQqEmiRQAcJdJJAFwl0k0APCfSSQB8J9JPAAAkMkioYAsPOPmbiaaq/ab0P+QdeRKbUNPYQNmCAkB7t44NJCh3kCqt0njt1ZaqSUk4slUqOYhubgmT9SehcyBwlOAlyxtuE7e+fSxgYPrtUJ3lKpRXntBWgMjCZiSIzpoTgRi7bMDkUOmMe1HmFQuuNGanYKBBw9wOL7fdV4PZ3hO7vAX8///83Gfh9rONrmPX3OMXI9ATG8hoe0mpuK/CJoltIYa++LhX4eoLaEVl90TMBQa5au6VJvGkPvjDVVoeL5GTMmJU9qwUi0ISquLyaDuTp5mkCi4tAY2TTeFIpIUNkoKHiLuCu4S7TIKtevBtmYqAEhCRDB2T9JAwVcgIqDxskIXtkYKBBkOZD5dAWE+o5pQyg6RMRXBwYEBXqN6WsrjAoKtQLSR7hJNohikpiQNwIXh8egTF8JmIvLWmdRGpxANDDeiypyTQQQgRKWKXwLAQhEPvmhB9O52t8Bzy83TTIEvXN5v0dj1yACV1HayVlrrqo9vWooxYaYDXl3seEzNcsS3G8lH1Ym0+TKkw7dXoimPd2pTHKLXQGgZuGmjfEHK1FpnuHYazDEXh0jt2SQBBR8oUpNxClaQGnwZimAplbrSufIC3pMYJYT5DxEyTpJ35EIRrblfeKoO2xaN0r8b2CFv0QEa3/lY8zLJOC1uPix7GgHzOiIa3MaQ2maXCBZrQOtUPjUHbw0DrT/Wl/dz69bxQuUUwZHoRZsafRmJM6H9/f1zeXssUwJlPuTEbCwODgYmqKc02YMj1N06opGk1sb4/JjJJGo18u8d6DesTzVod88zFkqjZwBrRur0ZNO5ZGk5eVRa1wB8GRYR48vT0e2wfPufvUeiTqPLdfOGpKzwpMiEVYRCQ1zBeOaH4MqBfemFYF6xldptr8JaQ+v0y0SIYKX5hIrRdWWYT09hw8KhXpU2a4DUOkxoY0pNQPZWijV/9KpJSHPle9i6GMSvkn2PrwJ5GU9hEQhmgbRC9gEPNx00vuIEBHxzmiM3x6OJBaeerUdaATOLHh06UArizoZjbHWmJq1fFB5+M1qSrOoqpfolZ86tO7aGTHEg3TaNA3MBpz4cCBhQMWy5cxa8yd6iWaJSGnFm3nXEdO26eLqmudEtRsGoy54uzNNPV25Fy/xZnXqMdQSDI1diSycxYSIpmFszt4ew0jc7Yg2sg18Q4bZ6QhohmLzcE3WRj6+hVIcpiKEMvNSJryjtwyYM2dNpvDAOdsN/+htUjGcE52PoZGUMnwmzi59KkLEc3UwcRSaJGILhE3fREkge1GD0YJSW4ZWFz1++/ALOuCMoaz8TybfUEICYZjed7GMcQf/8VUIJJ3Mnod+BkGDD2J3/6LKcMS5UC535FxkBxuP3g5oqliO0L2YopGEU0PVkf6wp1fvzBVfsNJu0n1YjRtrMZN7aCbtlktjXNTR70mwx/0VaU95dUFdMABs7ZWDO93MLm6jVoxd3YauQfE1aF8oLJSjOgVfs3sDrFV7HCyHEPLkMgqQiTFcMVNDpfV5bDZOYZQIvEUARDgoQYsAuiEGD4XiZCMPhGnmNS+0v1oFBZESoLh7DZi0rR4jSkSia6NydNsFW//WnXdmq3tPBRQfdCitihqpG+k4aX3NfeDeAifhp7lzTY9RUFEKQw2M88aDEQhy4zST9QzRNo22GKKgDhBFbObjtzHdx8fsHK5NgxguAcHIEzAsgaOggpLgLkLLU18sw6Rwwo5VI4EuW1H7sLch2wLk0spiDEWpi1HlAwm6RHEG3zsful51teAx32JS9ifl+4P3PC5wOOGwYPv8wdqOrg3p7yhddKiA+eTzx9YNKm1oTwnNvgW46UXQVylkOsmKrWT5IqIqHuJDwHXteK4Mlkudw/SOuXJgshquDklYSQONqjFIhmlZxHv8e7v76s1UjhOGWt9+3vE6+ERq6dkIjF4fk4YFhmu0zk+HEiSSnfmCYWK80YCF2a96/IKcbYmSK8Vart8UgEen9EfIU8y31/glkdEoIxxQdnZDwm1+qAadow3ZHdWKmE8rxDSsN1lUp64DzpduITWRlf8JwlbDkWqrNLSlhavx9XZ6fJ4W1pKS7NUIrGYtRtQVBtTYioxWkwW/75Yx8cUcEZS6nA//+Ja/xLKlOCNWgz8vX2DZKeLr2SXPW7qogZ6hvUm9xi2qto/uX+JT1sTxv0oWdD16MP1fS2S1daM1X/Xrev6UIK0R27toagNX87FzGD4t3AK4qNcqoAKaa2JFSRhsiEwQi4Q2IFf/6FrXd3fqzPWrZa07Lv+4VHXgpIf4xKsp8W/3J/aVVsNe8jewy4PpLqaHpdlXyk+LRvk61aTCmxBoWEZWsGxL0kLiOt2GbyXZIgVyEFzeYkkAWtjuC4cBgfqaxMCXhGvAxIkr4lX495IIlvJmwD//uNydV8ZvtJ9xUB4/7EJRYjM/3qcN+A2cSvAe2ivQdFHJFQlJ3u0Kes/TJ5iNvmSwgxTAcl4VzHJZzZNmfyBT9d6kpNVQhTYn7H0H5g3PSgoLY8eMIO5K2+sSA1JrZhZNFFmCCZCSCgmMM5AAPcODwTnxnMsRAPcvOrg8pEj+w+orMzTaIKoxPHKi740A/qPHLl8/a36hnl8SpRAEJXCz2uov5W5IAMA3+GEDcvhiNhkauyAIUPemDSFH2s9hnphrrw+kO4yLily0eBLAD73bCixsGYzaylp2KEsVyIcN+idLkm9xOXUG3AcZS/RnkY8kuJcYhdHRbpJinOL3RwVLtFuwykFp7NBaNNxCgrUwOQnAEGH/38AgP8H9hObAIDf780DALYPy7evx9rtF2O1Cx/HRtof7Smu2z+IPfZ3o97+R+zM1t7A1gHtI/YCe7cp2wvjm9w/L3mO6B3yg8Vvr5LBJOIMGn77o74YrxgRbH7k70Pf7vz/rwIzcHfC/s7NttpH7Oe4Eg3PIoL/gXnE1f16c/9fgzZm1o4EhmMhQh1cZSTTHmhUj8+7Q4KJo7BM/YCBywO+F3QLw3EotUyAmspsqEyTu6+WfseciqIpDPxnjwHIdHkecgPe1S0MP4DSkI+hZsDPUNnu1wdqmRjFJ7mDb5FJ35cFg6QEwYN8F21MTjdzds6tWCeQYJCc85bzXi9vZtm1XebZlV4gA0R2rsu8gWhTNeurWbOOn/7SU+R5qFgHvP4iRtS7VsUCBVJYZ7bit1ZCtduaO3Nk0HLprglxzhkYkM7+sAPniq3ijY/JnOMEmznL5VhIQ4j35CJ7axsgMpN+EmndSqahro2XTA3z8wpeAkr0vhmOLPIoooxa1KMRzaiiFR3RGV3RHT3RG33RHwMxGEMxHCPqh05Jx3B4iIfUfGQiiAbpLJ73PJ6E+HvnlNkKk0fI6Y90lhWe8jVEjQJAHshAHvdHvG92Vi63dIYXuJ/3Q4vCaT/Vz+o43Cs9Ztao6LmeDALXeqZ1/xO2KDjfzLILkm7sciCN0rrdbi/gMoOvrdSbQxLy7m6bZ14M0iU/Rwr9hwEAAAA=) format("woff2");font-weight:400;font-style:normal;font-display:block}', Ne = "hope-player-icon-font";
2107
+ function ri() {
2108
+ if (typeof document > "u" || document.getElementById(Ne)) return;
2109
+ const o = document.createElement("style");
2110
+ o.id = Ne, o.textContent = si, document.head.appendChild(o);
2101
2111
  }
2102
- function bi(n) {
2103
- if (!n || typeof n.name != "string" || !/^[\w.:-]+$/.test(n.name))
2112
+ function Ci(o) {
2113
+ if (!o || typeof o.name != "string" || !/^[\w.:-]+$/.test(o.name))
2104
2114
  throw new TypeError('definePlugin: "name" is required (letters, digits, "-", "_", ".", ":")');
2105
- if (typeof n.setup != "function") throw new TypeError(`definePlugin(${n.name}): "setup" must be a function`);
2106
- return n;
2115
+ if (typeof o.setup != "function") throw new TypeError(`definePlugin(${o.name}): "setup" must be a function`);
2116
+ return o;
2107
2117
  }
2108
- const G = [], J = /* @__PURE__ */ new Set();
2109
- function Zt(n, t) {
2110
- const e = [n, t];
2111
- return G.push(e), Be(), () => {
2112
- const i = G.indexOf(e);
2113
- i >= 0 && (G.splice(i, 1), Be());
2118
+ const $ = [], ie = /* @__PURE__ */ new Set();
2119
+ function ai(o, t) {
2120
+ const e = [o, t];
2121
+ return $.push(e), Fe(), () => {
2122
+ const i = $.indexOf(e);
2123
+ i >= 0 && ($.splice(i, 1), Fe());
2114
2124
  };
2115
2125
  }
2116
- function Me() {
2117
- return G.slice();
2126
+ function ze() {
2127
+ return $.slice();
2118
2128
  }
2119
- function Jt(n) {
2120
- return J.add(n), () => J.delete(n);
2129
+ function ni(o) {
2130
+ return ie.add(o), () => ie.delete(o);
2121
2131
  }
2122
- function Be() {
2123
- for (const n of J)
2132
+ function Fe() {
2133
+ for (const o of ie)
2124
2134
  try {
2125
- n();
2135
+ o();
2126
2136
  } catch {
2127
2137
  }
2128
2138
  }
2129
- function ei() {
2139
+ function oi() {
2130
2140
  var i;
2131
2141
  const t = (i = window.adTaxonomy) == null ? void 0 : i.keyValues;
2132
2142
  if (!t || typeof t != "object") return "";
@@ -2135,30 +2145,30 @@ function ei() {
2135
2145
  r == null || r === "" || e.push(`${s}=${r}`);
2136
2146
  return e.join("&");
2137
2147
  }
2138
- function X(n, t = {}) {
2148
+ function Z(o, t = {}) {
2139
2149
  const e = encodeURIComponent(document.referrer || window.location.href), i = encodeURIComponent(window.location.href), s = Date.now();
2140
- let r = n;
2141
- const o = {
2150
+ let r = o;
2151
+ const n = {
2142
2152
  referrer_url: e,
2143
2153
  description_url: i,
2144
2154
  timestamp: s
2145
2155
  };
2146
- for (const [l, h] of Object.entries(o)) {
2156
+ for (const [l, h] of Object.entries(n)) {
2147
2157
  const c = `[${l}]`;
2148
2158
  if (r.includes(c))
2149
2159
  r = r.replace(c, String(h));
2150
2160
  else if (!new URLSearchParams(r.split("?")[1]).has(l)) {
2151
- const f = r.includes("?") ? "&" : "?";
2152
- r += `${f}${l}=${h}`;
2161
+ const d = r.includes("?") ? "&" : "?";
2162
+ r += `${d}${l}=${h}`;
2153
2163
  }
2154
2164
  }
2155
2165
  try {
2156
2166
  const l = new URL(r);
2157
- if (l.pathname.includes("/vmap/")) return n;
2167
+ if (l.pathname.includes("/vmap/")) return o;
2158
2168
  const c = [];
2159
2169
  t.includeRefreshCount && c.push(`adrefreshCount=${t.adRefreshCount ?? 0}`);
2160
- const f = ei();
2161
- if (f && c.push(f), c.length) {
2170
+ const d = oi();
2171
+ if (d && c.push(d), c.length) {
2162
2172
  const v = l.searchParams.get("cust_params");
2163
2173
  l.searchParams.set("cust_params", v ? `${v}&${c.join("&")}` : c.join("&"));
2164
2174
  }
@@ -2167,27 +2177,27 @@ function X(n, t = {}) {
2167
2177
  return r;
2168
2178
  }
2169
2179
  }
2170
- function ee(n) {
2180
+ function se(o) {
2171
2181
  const t = {};
2172
- if (!n) return t;
2173
- const e = typeof n == "string" ? [...new URLSearchParams(n.trim().replace(/^\?/, "")).entries()].map(([i, s]) => [i, s.split(",")]) : Object.entries(n);
2182
+ if (!o) return t;
2183
+ const e = typeof o == "string" ? [...new URLSearchParams(o.trim().replace(/^\?/, "")).entries()].map(([i, s]) => [i, s.split(",")]) : Object.entries(o);
2174
2184
  for (const [i, s] of e) {
2175
- const r = (Array.isArray(s) ? s : [s]).filter((o) => o != null && o !== "").map(String);
2185
+ const r = (Array.isArray(s) ? s : [s]).filter((n) => n != null && n !== "").map(String);
2176
2186
  i && r.length && (t[i] = r);
2177
2187
  }
2178
2188
  return t;
2179
2189
  }
2180
- function ti(n, t) {
2181
- const e = Object.entries(ee(t)).filter(([i]) => !i.startsWith("hb_")).map(([i, s]) => `${encodeURIComponent(i)}=${s.map(encodeURIComponent).join(",")}`);
2182
- if (!e.length) return n;
2190
+ function li(o, t) {
2191
+ const e = Object.entries(se(t)).filter(([i]) => !i.startsWith("hb_")).map(([i, s]) => `${encodeURIComponent(i)}=${s.map(encodeURIComponent).join(",")}`);
2192
+ if (!e.length) return o;
2183
2193
  try {
2184
- const i = new URL(n), s = new Set(e.map((o) => o.slice(0, o.indexOf("=")))), r = (i.searchParams.get("cust_params") ?? "").split("&").filter((o) => o && !s.has(o.split("=")[0]));
2194
+ const i = new URL(o), s = new Set(e.map((n) => n.slice(0, n.indexOf("=")))), r = (i.searchParams.get("cust_params") ?? "").split("&").filter((n) => n && !s.has(n.split("=")[0]));
2185
2195
  return i.searchParams.set("cust_params", [...r, ...e].join("&")), i.toString();
2186
2196
  } catch {
2187
- return n;
2197
+ return o;
2188
2198
  }
2189
2199
  }
2190
- const We = {
2200
+ const hi = {
2191
2201
  play: "Oynat",
2192
2202
  pause: "Duraklat",
2193
2203
  mute: "Sessize al",
@@ -2196,8 +2206,8 @@ const We = {
2196
2206
  seekBar: "Video konumu",
2197
2207
  settings: "Ayarlar",
2198
2208
  pip: "Resim içinde resim",
2199
- skipBack: (n) => `${n} saniye geri`,
2200
- skipForward: (n) => `${n} saniye ileri`,
2209
+ skipBack: (o) => `${o} saniye geri`,
2210
+ skipForward: (o) => `${o} saniye ileri`,
2201
2211
  secondsShort: "sn",
2202
2212
  audioTrack: "Ses",
2203
2213
  statsTitle: "İstatistikler",
@@ -2275,31 +2285,11 @@ const We = {
2275
2285
  geoUnknownCountry: "Ülke bilgisi bulunamadı.",
2276
2286
  redirectCancel: "İptal",
2277
2287
  redirectPlayNow: "Şimdi Oynat",
2278
- redirectCountdown: (n) => `Sıradaki video ${n} saniye içinde oynatılacak.`,
2288
+ redirectCountdown: (o) => `Sıradaki video ${o} saniye içinde oynatılacak.`,
2279
2289
  redirectNowPlaying: "Video oynatılıyor...",
2280
2290
  redirectUpNext: "Sıradaki",
2281
2291
  redirectCancelCard: "Sıradakini iptal et",
2282
- redirectSuggestions: "Önerilen videolar",
2283
- redirectReplay: "Tekrar izle",
2284
- redirectCloseSuggestions: "Önerileri kapat",
2285
- transcript: "Transkript",
2286
- transcriptSearch: "Transkriptte ara",
2287
- transcriptClose: "Transkripti kapat",
2288
- transcriptTrack: "Transkript dili",
2289
- transcriptEmpty: "Bu video için altyazı yok.",
2290
- transcriptNoResults: "Sonuç bulunamadı.",
2291
- transcriptWaiting: "Altyazılar yükleniyor…",
2292
- pipPlaying: "Resim içinde resim penceresinde oynatılıyor",
2293
- pipBack: "Buraya geri al",
2294
- interactivePoll: "Anket",
2295
- interactiveQuiz: "Soru",
2296
- interactiveCorrect: "Doğru!",
2297
- interactiveWrong: "Yanlış",
2298
- interactiveBuy: "Satın al",
2299
- interactiveGo: "Git",
2300
- interactiveSponsored: "Sponsorlu",
2301
- interactiveClose: "Kapat",
2302
- interactiveVotes: (n) => `%${n}`,
2292
+ audioDescriptionTag: "sesli betimleme",
2303
2293
  skipIntro: "İntroyu atla",
2304
2294
  skipRecap: "Özeti atla",
2305
2295
  skipCredits: "Jeneriği atla",
@@ -2325,7 +2315,7 @@ const We = {
2325
2315
  a11yZoomReset: "Yakınlaştırmayı sıfırla",
2326
2316
  a11yClose: "Kapat",
2327
2317
  a11yKeyPlay: "Oynat / duraklat",
2328
- a11yKeySeek: (n) => `${n} sn geri / ileri`,
2318
+ a11yKeySeek: (o) => `${o} sn geri / ileri`,
2329
2319
  a11yKeyVolume: "Sesi aç / kıs",
2330
2320
  a11yKeyMute: "Sesi kapat / aç",
2331
2321
  a11yKeyFullscreen: "Tam ekran",
@@ -2333,7 +2323,7 @@ const We = {
2333
2323
  a11yKeyZoom: "Yakınlaştır / uzaklaştır, sıfırla",
2334
2324
  a11yKeyPan: "Yakınlaştırılmış görüntüde gezin",
2335
2325
  a11yKeyShortcuts: "Bu listeyi aç / kapat",
2336
- historyResumed: (n) => `Kaldığınız yerden devam: ${n}`,
2326
+ historyResumed: (o) => `Kaldığınız yerden devam: ${o}`,
2337
2327
  historyRestart: "Baştan başla",
2338
2328
  qrResumeTitle: "Devam etmek için kodu telefonunuzla okutun",
2339
2329
  qrResumeDontShowAgain: "Bir daha gösterme",
@@ -2356,7 +2346,7 @@ const We = {
2356
2346
  playlistTitle: "Oynatma Listesi",
2357
2347
  playlistPrev: "Önceki",
2358
2348
  playlistNext: "Sonraki",
2359
- videoFallbackTitle: (n) => `Video ${n + 1}`,
2349
+ videoFallbackTitle: (o) => `Video ${o + 1}`,
2360
2350
  storyPrev: "Önceki video",
2361
2351
  storyNext: "Sonraki video",
2362
2352
  storyAllVideos: "Tüm videolar",
@@ -2364,7 +2354,7 @@ const We = {
2364
2354
  liveClock: "Canlı saat",
2365
2355
  live: "CANLI",
2366
2356
  goToLive: "Canlıya git"
2367
- }, ii = {
2357
+ }, ci = {
2368
2358
  play: "Play",
2369
2359
  pause: "Pause",
2370
2360
  mute: "Mute",
@@ -2373,8 +2363,8 @@ const We = {
2373
2363
  seekBar: "Seek",
2374
2364
  settings: "Settings",
2375
2365
  pip: "Picture-in-picture",
2376
- skipBack: (n) => `Back ${n} seconds`,
2377
- skipForward: (n) => `Forward ${n} seconds`,
2366
+ skipBack: (o) => `Back ${o} seconds`,
2367
+ skipForward: (o) => `Forward ${o} seconds`,
2378
2368
  secondsShort: "s",
2379
2369
  audioTrack: "Audio",
2380
2370
  statsTitle: "Stats",
@@ -2452,30 +2442,10 @@ const We = {
2452
2442
  geoUnknownCountry: "No country information found.",
2453
2443
  redirectCancel: "Cancel",
2454
2444
  redirectPlayNow: "Play now",
2455
- redirectCountdown: (n) => `Next video will play in ${n} seconds.`,
2445
+ redirectCountdown: (o) => `Next video will play in ${o} seconds.`,
2456
2446
  redirectUpNext: "Up next",
2457
2447
  redirectCancelCard: "Cancel up next",
2458
- redirectSuggestions: "Recommended videos",
2459
- redirectReplay: "Watch again",
2460
- redirectCloseSuggestions: "Close suggestions",
2461
- transcript: "Transcript",
2462
- transcriptSearch: "Search transcript",
2463
- transcriptClose: "Close transcript",
2464
- transcriptTrack: "Transcript language",
2465
- transcriptEmpty: "No captions for this video.",
2466
- transcriptNoResults: "No results.",
2467
- transcriptWaiting: "Loading captions…",
2468
- pipPlaying: "Playing in picture-in-picture",
2469
- pipBack: "Bring it back",
2470
- interactivePoll: "Poll",
2471
- interactiveQuiz: "Quiz",
2472
- interactiveCorrect: "Correct!",
2473
- interactiveWrong: "Wrong",
2474
- interactiveBuy: "Buy now",
2475
- interactiveGo: "Open",
2476
- interactiveSponsored: "Sponsored",
2477
- interactiveClose: "Close",
2478
- interactiveVotes: (n) => `${n}%`,
2448
+ audioDescriptionTag: "audio description",
2479
2449
  skipIntro: "Skip intro",
2480
2450
  skipRecap: "Skip recap",
2481
2451
  skipCredits: "Skip credits",
@@ -2501,7 +2471,7 @@ const We = {
2501
2471
  a11yZoomReset: "Reset zoom",
2502
2472
  a11yClose: "Close",
2503
2473
  a11yKeyPlay: "Play / pause",
2504
- a11yKeySeek: (n) => `Back / forward ${n} s`,
2474
+ a11yKeySeek: (o) => `Back / forward ${o} s`,
2505
2475
  a11yKeyVolume: "Volume up / down",
2506
2476
  a11yKeyMute: "Mute / unmute",
2507
2477
  a11yKeyFullscreen: "Fullscreen",
@@ -2509,7 +2479,7 @@ const We = {
2509
2479
  a11yKeyZoom: "Zoom in / out, reset",
2510
2480
  a11yKeyPan: "Move around the zoomed picture",
2511
2481
  a11yKeyShortcuts: "Open / close this list",
2512
- historyResumed: (n) => `Resumed at ${n}`,
2482
+ historyResumed: (o) => `Resumed at ${o}`,
2513
2483
  historyRestart: "Start over",
2514
2484
  redirectNowPlaying: "Now playing...",
2515
2485
  qrResumeTitle: "Scan to continue watching on your phone",
@@ -2533,7 +2503,7 @@ const We = {
2533
2503
  playlistTitle: "Playlist",
2534
2504
  playlistPrev: "Previous",
2535
2505
  playlistNext: "Next",
2536
- videoFallbackTitle: (n) => `Video ${n + 1}`,
2506
+ videoFallbackTitle: (o) => `Video ${o + 1}`,
2537
2507
  storyPrev: "Previous video",
2538
2508
  storyNext: "Next video",
2539
2509
  storyAllVideos: "All videos",
@@ -2541,19 +2511,29 @@ const We = {
2541
2511
  liveClock: "Live clock",
2542
2512
  live: "LIVE",
2543
2513
  goToLive: "Go to live"
2544
- }, si = { tr: We, en: ii };
2545
- function Qe(n, t) {
2546
- return { ...si[n ?? "tr"] ?? We, ...t };
2514
+ }, De = { tr: hi, en: ci }, re = [], ae = /* @__PURE__ */ new Set();
2515
+ function Si(o) {
2516
+ if (!re.includes(o)) {
2517
+ re.push(o);
2518
+ for (const t of ae) t();
2519
+ }
2520
+ }
2521
+ function di(o) {
2522
+ return ae.add(o), () => ae.delete(o);
2547
2523
  }
2548
- function ri(n, t, e) {
2549
- Object.assign(n, Qe(t, e));
2524
+ function it(o, t) {
2525
+ const e = o && De[o] ? o : "tr", i = De[e], s = Object.assign({}, ...re.map((r) => e === "en" ? r.en : r.tr));
2526
+ return { ...i, ...s, ...t };
2550
2527
  }
2551
- const te = 8e3;
2552
- function ai(n) {
2528
+ function He(o, t, e) {
2529
+ Object.assign(o, it(t, e));
2530
+ }
2531
+ const ne = 8e3;
2532
+ function pi(o) {
2553
2533
  var t;
2554
- return (t = n.live) != null && t.scte35 && !n.adTagPreroll && !n.adTagVmap ? !1 : !!(n.adTagPreroll || n.adTagVmap);
2534
+ return (t = o.live) != null && t.scte35 && !o.adTagPreroll && !o.adTagVmap ? !1 : !!(o.adTagPreroll || o.adTagVmap);
2555
2535
  }
2556
- class oi {
2536
+ class ui {
2557
2537
  constructor(t) {
2558
2538
  /** Kapı kurulu (preroll bekleniyor) mu. */
2559
2539
  a(this, "armed", !1);
@@ -2561,7 +2541,7 @@ class oi {
2561
2541
  a(this, "playIntent", !1);
2562
2542
  /** Kapının kendi pause() çağrısının ürettiği 'pause' olayı yutulsun. */
2563
2543
  a(this, "swallowNextPause", !1);
2564
- a(this, "timeoutMs", te);
2544
+ a(this, "timeoutMs", ne);
2565
2545
  a(this, "timer", null);
2566
2546
  /** İlk oynatma isteği (reklam plugin'i bekleyen preroll'u başlatır). */
2567
2547
  a(this, "onPlayIntent", null);
@@ -2587,7 +2567,7 @@ class oi {
2587
2567
  get hasPlayIntent() {
2588
2568
  return this.playIntent;
2589
2569
  }
2590
- arm(t = te) {
2570
+ arm(t = ne) {
2591
2571
  this.clearTimer(), this.armed = !0, this.playIntent = !1, this.timeoutMs = t;
2592
2572
  }
2593
2573
  /**
@@ -2624,24 +2604,24 @@ class oi {
2624
2604
  this.timer && clearTimeout(this.timer), this.timer = null;
2625
2605
  }
2626
2606
  }
2627
- const ni = [
2607
+ const mi = [
2628
2608
  "https://imasdk.googleapis.com",
2629
2609
  "https://pubads.g.doubleclick.net",
2630
2610
  "https://securepubads.g.doubleclick.net",
2631
2611
  "https://pagead2.googlesyndication.com"
2632
2612
  ];
2633
- let Re = !1;
2634
- function li() {
2635
- if (!(Re || typeof document > "u")) {
2636
- Re = !0;
2637
- for (const n of ni) {
2638
- if (document.head.querySelector(`link[rel="preconnect"][href="${n}"]`)) continue;
2613
+ let qe = !1;
2614
+ function gi() {
2615
+ if (!(qe || typeof document > "u")) {
2616
+ qe = !0;
2617
+ for (const o of mi) {
2618
+ if (document.head.querySelector(`link[rel="preconnect"][href="${o}"]`)) continue;
2639
2619
  const t = document.createElement("link");
2640
- t.rel = "preconnect", t.href = n, document.head.appendChild(t);
2620
+ t.rel = "preconnect", t.href = o, document.head.appendChild(t);
2641
2621
  }
2642
2622
  }
2643
2623
  }
2644
- const ze = [0.5, 0.75, 1, 1.25, 1.5, 2], Ie = 1200, hi = 3e3, Oe = 5e3, pi = 10, Ne = 10, ci = 5, Fe = "stream-audio", V = "1.6.0", di = {
2624
+ const Ve = [0.5, 0.75, 1, 1.25, 1.5, 2], Ke = 1200, fi = 3e3, Ge = 5e3, bi = 10, _e = 10, vi = 5, Ue = "stream-audio", _ = "1.7.0", yi = {
2645
2625
  hls: "application/x-mpegurl",
2646
2626
  mp4: "video/mp4",
2647
2627
  webm: "video/webm",
@@ -2651,7 +2631,7 @@ const ze = [0.5, 0.75, 1, 1.25, 1.5, 2], Ie = 1200, hi = 3e3, Oe = 5e3, pi = 10,
2651
2631
  ogg: "audio/ogg",
2652
2632
  wav: "audio/wav",
2653
2633
  flac: "audio/flac"
2654
- }, ui = (
2634
+ }, ki = (
2655
2635
  /* html */
2656
2636
  `
2657
2637
  <div class="video-area">
@@ -2662,13 +2642,13 @@ const ze = [0.5, 0.75, 1, 1.25, 1.5, 2], Ie = 1200, hi = 3e3, Oe = 5e3, pi = 10,
2662
2642
  </div>
2663
2643
  `
2664
2644
  );
2665
- function mi(n) {
2666
- if (typeof n == "number") return Number.isFinite(n) && n > 0 ? String(n) : null;
2667
- if (typeof n != "string") return null;
2668
- const t = n.trim().match(/^(\d+(?:\.\d+)?)\s*(?:[:/]\s*(\d+(?:\.\d+)?))?$/);
2645
+ function wi(o) {
2646
+ if (typeof o == "number") return Number.isFinite(o) && o > 0 ? String(o) : null;
2647
+ if (typeof o != "string") return null;
2648
+ const t = o.trim().match(/^(\d+(?:\.\d+)?)\s*(?:[:/]\s*(\d+(?:\.\d+)?))?$/);
2669
2649
  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];
2670
2650
  }
2671
- class Xe extends HTMLElement {
2651
+ class st extends HTMLElement {
2672
2652
  constructor() {
2673
2653
  super();
2674
2654
  a(this, "root");
@@ -2707,7 +2687,7 @@ class Xe extends HTMLElement {
2707
2687
  /** options.debug — sağ tık menüsündeki "Hata ayıklama" girişini açar. */
2708
2688
  a(this, "debugEnabled", !1);
2709
2689
  /** Player'ın tüm hataları (medya, yayın, reklam, altyazı) — her zaman tutulur; bkz. `errorLog`. */
2710
- a(this, "log", new Qt());
2690
+ a(this, "log", new ii());
2711
2691
  /** Son basılan işaretçi türü — sağ tık menüsü yalnızca fareyle (dokunmatikte uzun basma gesture'a ait). */
2712
2692
  a(this, "lastPointerType", "mouse");
2713
2693
  /** options.tapGestures kuruluysa (plugins/tap-gestures). */
@@ -2759,6 +2739,12 @@ class Xe extends HTMLElement {
2759
2739
  a(this, "docPipOptions", null);
2760
2740
  a(this, "interactive", null);
2761
2741
  a(this, "interactiveKey", "");
2742
+ a(this, "multiview", null);
2743
+ a(this, "multiviewKey", "");
2744
+ a(this, "share", null);
2745
+ a(this, "shareKey", "");
2746
+ a(this, "audioDescription", null);
2747
+ a(this, "audioDescriptionKey", "");
2762
2748
  /** Eklentileri çalıştıran taraf — yalnızca bir eklenti kullanılınca indirilir (plugin-api/PluginHost). */
2763
2749
  a(this, "pluginHost", null);
2764
2750
  /** Seçenekler uygulanırken eklenti senkronu bitince çözülür (reklam tag dönüşümü bekler). */
@@ -2768,6 +2754,9 @@ class Xe extends HTMLElement {
2768
2754
  /** `player.use()` ile çalışırken eklenenler. */
2769
2755
  a(this, "runtimePlugins", []);
2770
2756
  a(this, "offGlobalPlugins", null);
2757
+ a(this, "localeLabels");
2758
+ /** Eklenti metinleri yüklenince sözlük tamamlanır (eklentiler ana pakete metin taşımaz). */
2759
+ a(this, "offLocaleStrings", null);
2771
2760
  a(this, "accessibility", null);
2772
2761
  a(this, "accessibilityKey", "");
2773
2762
  a(this, "playbackHistory", null);
@@ -2826,19 +2815,19 @@ class Xe extends HTMLElement {
2826
2815
  a(this, "hideTimer", null);
2827
2816
  a(this, "cursorTimer", null);
2828
2817
  /** null = imleç hiç gizlenmez (options.cursorHideDelayMs: false). */
2829
- a(this, "cursorHideDelayMs", Oe);
2818
+ a(this, "cursorHideDelayMs", Ge);
2830
2819
  /** Fare kontrollerin (buton/seek bar) üzerinde mi — üzerindeyken otomatik gizlenmez; videonun üstünde hareketsizse gizlenir. */
2831
2820
  a(this, "pointerOverControls", !1);
2832
2821
  /** Kalite menüsünde şu an HLS seviyeleri mi var (kaynak değişince temizlemek için). */
2833
2822
  a(this, "hlsQualitiesShown", !1);
2834
2823
  /** Son uygulanan options.showRemainingTime — bkz. applyOptions. */
2835
2824
  a(this, "appliedShowRemaining");
2836
- a(this, "autoHideDelayMs", Ie);
2825
+ a(this, "autoHideDelayMs", Ke);
2837
2826
  a(this, "tapCandidate", !1);
2838
2827
  a(this, "tapStartX", 0);
2839
2828
  a(this, "tapStartY", 0);
2840
2829
  /** Tüm UI'ın paylaştığı tek, mutable sözlük — dil değişince referans değil alanlar güncellenir. */
2841
- a(this, "i18n", Qe("tr"));
2830
+ a(this, "i18n", it("tr"));
2842
2831
  /** IMA SDK'nın kendi ad-UI dili (skip butonu/sayaç metni) de aynı dili takip etsin diye — bkz. plugins/ads/AdsController. */
2843
2832
  a(this, "localeCode", "tr");
2844
2833
  a(this, "onMediaError", () => {
@@ -2849,7 +2838,7 @@ class Xe extends HTMLElement {
2849
2838
  source: "media",
2850
2839
  message: e.message || i[e.code] || `MediaError ${e.code}`,
2851
2840
  // Ses aygıtı yok (Firefox): video sessiz oynamaya devam ediyor — kayda düşer ama ölümcül değil.
2852
- fatal: !ie(e),
2841
+ fatal: !oe(e),
2853
2842
  details: { code: e.code, name: i[e.code], src: s && !s.startsWith("blob:") ? s : s ? `MediaSource (${this.sourceManager.engine.engine})` : void 0 }
2854
2843
  });
2855
2844
  });
@@ -2864,7 +2853,7 @@ class Xe extends HTMLElement {
2864
2853
  a(this, "onContextMenu", (e) => {
2865
2854
  const i = this.contextMenuConfig;
2866
2855
  !i || this.lastPointerType !== "mouse" || (e.preventDefault(), this.contextMenu.show(e.clientX, e.clientY, [
2867
- { label: "HopeCorePlayer", meta: `v${V}` },
2856
+ { label: "HopeCorePlayer", meta: `v${_}` },
2868
2857
  ...i.stats ? [{ label: this.i18n.statsTitle, onSelect: () => void this.toggleStats(!0) }] : [],
2869
2858
  // Yalnızca debug açıkken ve kayıtlı bir hata varsa.
2870
2859
  ...this.debugEnabled && this.log.entries.length ? [{ label: this.i18n.debugTitle, meta: String(this.log.entries.length), onSelect: () => void this.showDebugLog() }] : []
@@ -2873,22 +2862,22 @@ class Xe extends HTMLElement {
2873
2862
  a(this, "onStreamTextTracks", (e) => {
2874
2863
  const i = this.streamTracks.filter((s) => s.id.startsWith("native:"));
2875
2864
  if (!e.length)
2876
- _e(this.videoEl, "stream"), this.streamCueKeys.clear(), this.streamTracks = i;
2865
+ Je(this.videoEl, "stream"), this.streamCueKeys.clear(), this.streamTracks = i;
2877
2866
  else {
2878
2867
  const s = new Set([...this.optionTracks, ...i].map((r) => r.label));
2879
2868
  this.streamTracks = [
2880
2869
  ...i,
2881
2870
  ...e.map((r) => {
2882
- const o = this.uniqueLabel(this.streamTrackLabel(r.label, r.lang) || r.id, r.kind === "captions" ? "CC" : r.lang || r.kind, s);
2883
- return { id: r.id, label: o, track: Ge(this.videoEl, "stream", r.kind, o, r.lang) };
2871
+ const n = this.uniqueLabel(this.streamTrackLabel(r.label, r.lang) || r.id, r.kind === "captions" ? "CC" : r.lang || r.kind, s);
2872
+ return { id: r.id, label: n, track: Xe(this.videoEl, "stream", r.kind, n, r.lang) };
2884
2873
  })
2885
2874
  ];
2886
2875
  }
2887
2876
  this.rebuildCaptions(this.activeCaptionLabel);
2888
2877
  });
2889
2878
  a(this, "onStreamCues", (e, i) => {
2890
- var o;
2891
- const s = (o = this.streamTracks.find((l) => l.id === e)) == null ? void 0 : o.track;
2879
+ var n;
2880
+ const s = (n = this.streamTracks.find((l) => l.id === e)) == null ? void 0 : n.track;
2892
2881
  if (!s) return;
2893
2882
  let r = this.streamCueKeys.get(s);
2894
2883
  r || this.streamCueKeys.set(s, r = /* @__PURE__ */ new Set());
@@ -2900,60 +2889,64 @@ class Xe extends HTMLElement {
2900
2889
  /** Tarayıcının kendi (native HLS) altyazı izleri — bizim havuz izlerimiz ve metadata izleri hariç. */
2901
2890
  a(this, "onNativeTextTracksChanged", () => {
2902
2891
  if (this.sourceManager.engine.engine === "dash.js") return;
2903
- const e = Array.from(this.videoEl.textTracks).filter((o) => (o.kind === "subtitles" || o.kind === "captions") && !At(o)), i = this.streamTracks.some((o) => o.id.startsWith("native:"));
2892
+ const e = Array.from(this.videoEl.textTracks).filter((n) => (n.kind === "subtitles" || n.kind === "captions") && !It(n)), i = this.streamTracks.some((n) => n.id.startsWith("native:"));
2904
2893
  if (!e.length && !i) return;
2905
- const s = this.streamTracks.filter((o) => !o.id.startsWith("native:")), r = new Set([...this.optionTracks, ...s].map((o) => o.label));
2894
+ const s = this.streamTracks.filter((n) => !n.id.startsWith("native:")), r = new Set([...this.optionTracks, ...s].map((n) => n.label));
2906
2895
  this.streamTracks = [
2907
2896
  ...s,
2908
- ...e.map((o, l) => ({
2897
+ ...e.map((n, l) => ({
2909
2898
  id: `native:${l}`,
2910
- label: this.uniqueLabel(o.label || o.language || `${this.i18n.captions} ${l + 1}`, o.language || String(l + 1), r),
2911
- track: o
2899
+ label: this.uniqueLabel(n.label || n.language || `${this.i18n.captions} ${l + 1}`, n.language || String(l + 1), r),
2900
+ track: n
2912
2901
  }))
2913
2902
  ], this.rebuildCaptions(this.activeCaptionLabel);
2914
2903
  });
2915
2904
  /** Yayında birden fazla ses izi varsa ayarlarda "Ses" alt menüsü (HLS alternatif ses / Safari audioTracks). */
2916
2905
  a(this, "onStreamAudioTracks", (e, i) => {
2906
+ var h;
2917
2907
  this.streamAudio = { tracks: e, active: i };
2918
- const s = this.controlBar.settingsMenu, r = /* @__PURE__ */ new Set(), o = new Map(e.map((l) => [l.index, this.uniqueLabel(this.streamTrackLabel(l.label, l.lang), String(l.index + 1), r)]));
2919
- if (e.length <= 1) {
2920
- s.unregisterSubmenu(Fe);
2908
+ const s = this.controlBar.settingsMenu, r = /* @__PURE__ */ new Set(), n = (c) => {
2909
+ const d = this.streamTrackLabel(c.label, c.lang);
2910
+ return c.description && !/betimleme|description|\bAD\b/i.test(d) ? `${d} (${this.i18n.audioDescriptionTag})` : d;
2911
+ }, l = new Map(e.map((c) => [c.index, this.uniqueLabel(n(c), String(c.index + 1), r)]));
2912
+ if ((h = this.audioDescription) == null || h.onStreamTracks(), e.length <= 1) {
2913
+ s.unregisterSubmenu(Ue);
2921
2914
  return;
2922
2915
  }
2923
2916
  s.registerSubmenu({
2924
- key: Fe,
2917
+ key: Ue,
2925
2918
  title: this.i18n.audioTrack,
2926
- getValueLabel: () => o.get(i) ?? "",
2927
- getItems: () => e.map((l) => ({ label: o.get(l.index), active: l.index === i, onSelect: () => this.sourceManager.setAudioTrack(l.index) }))
2919
+ getValueLabel: () => l.get(i) ?? "",
2920
+ getItems: () => e.map((c) => ({ label: l.get(c.index), active: c.index === i, onSelect: () => this.sourceManager.setAudioTrack(c.index) }))
2928
2921
  });
2929
2922
  });
2930
2923
  /** Playlist panelinin monte edileceği, .video-area'nın ALTINDAKİ (shadow root içi) kapsayıcı — ilk ihtiyaçta oluşturulur. */
2931
2924
  a(this, "panelContainer", null);
2932
2925
  a(this, "onHlsLevelsChanged", (e, i) => {
2933
- var x, k;
2926
+ var w, k;
2934
2927
  if (this.lastHlsLevels = e, this.lastHlsActive = i, e.length === 0 && this.hlsQualitiesShown) {
2935
2928
  this.hlsQualitiesShown = !1, this.controlBar.setQualities([], "");
2936
2929
  return;
2937
2930
  }
2938
2931
  if (e.length <= 1) return;
2939
2932
  this.hlsQualitiesShown = !0;
2940
- const s = (g) => `${g.height}p`, r = this.qualityGate, o = (g) => !!(r != null && r.isLocked(g.height)), l = (x = this._options.qualityLimit) == null ? void 0 : x.max, h = e.reduce((g, y) => y.height < g.height ? y : g), c = l ? e.filter((g) => g.height <= l) : e;
2933
+ const s = (f) => `${f.height}p`, r = this.qualityGate, n = (f) => !!(r != null && r.isLocked(f.height)), l = (w = this._options.qualityLimit) == null ? void 0 : w.max, h = e.reduce((f, y) => y.height < f.height ? y : f), c = l ? e.filter((f) => f.height <= l) : e;
2941
2934
  c.length || c.push(h);
2942
- const f = this.dataSaverHeight(), v = c.filter((g) => !o(g));
2935
+ const d = this.dataSaverHeight(), v = c.filter((f) => !n(f));
2943
2936
  let m = r ? v.length ? v : [h] : c;
2944
- if (f) {
2945
- const g = m.filter((y) => y.height <= f);
2946
- m = g.length ? g : [m.reduce((y, w) => w.height < y.height ? w : y)];
2937
+ if (d) {
2938
+ const f = m.filter((y) => y.height <= d);
2939
+ m = f.length ? f : [m.reduce((y, E) => E.height < y.height ? E : y)];
2947
2940
  }
2948
- const d = !!r || !!f || c.length < e.length;
2949
- this.sourceManager.setMaxLevel(d ? m.reduce((g, y) => y.height > g.height ? y : g).index : -1), this.controlBar.setQualities(
2941
+ const u = !!r || !!d || c.length < e.length;
2942
+ this.sourceManager.setMaxLevel(u ? m.reduce((f, y) => y.height > f.height ? y : f).index : -1), this.controlBar.setQualities(
2950
2943
  [
2951
2944
  { label: this.i18n.autoQuality, onSelect: () => this.sourceManager.setLevel(-1) },
2952
2945
  // Yüksekten düşüğe (hls.js artan sıralıyor) — l.index hls.js'teki gerçek seviye numarası, sıradan bağımsız.
2953
- ...[...c].sort((g, y) => y.height - g.height).map((g) => ({
2954
- label: s(g),
2955
- locked: o(g),
2956
- onSelect: o(g) ? () => r == null ? void 0 : r.requestUnlock() : () => this.sourceManager.setLevel(g.index)
2946
+ ...[...c].sort((f, y) => y.height - f.height).map((f) => ({
2947
+ label: s(f),
2948
+ locked: n(f),
2949
+ onSelect: n(f) ? () => r == null ? void 0 : r.requestUnlock() : () => this.sourceManager.setLevel(f.index)
2957
2950
  }))
2958
2951
  ],
2959
2952
  i === -1 || !e[i] ? this.i18n.autoQuality : s(e[i])
@@ -2993,15 +2986,15 @@ class Xe extends HTMLElement {
2993
2986
  if (!i && Date.now() - this.lastTouchEndAt < 800) return;
2994
2987
  i && (this.lastTouchEndAt = Date.now());
2995
2988
  const s = i ? e.changedTouches[0] : e;
2996
- if (s && Math.hypot(s.clientX - this.tapStartX, s.clientY - this.tapStartY) > pi) {
2989
+ if (s && Math.hypot(s.clientX - this.tapStartX, s.clientY - this.tapStartY) > bi) {
2997
2990
  i && !this.isChromeBlocked && this.scheduleAutoHide();
2998
2991
  return;
2999
2992
  }
3000
- const r = i ? "touch" : this.lastPointerType, o = () => this.onBackgroundTap(r, () => {
2993
+ const r = i ? "touch" : this.lastPointerType, n = () => this.onBackgroundTap(r, () => {
3001
2994
  this.videoEl.paused ? this.videoEl.play().catch(() => {
3002
2995
  }) : this.videoEl.pause();
3003
2996
  });
3004
- s && ((h = this.tapGestures) != null && h.handleTap(s.clientX, r === "pen" ? "pen" : r, o)) || o();
2997
+ s && ((h = this.tapGestures) != null && h.handleTap(s.clientX, r === "pen" ? "pen" : r, n)) || n();
3005
2998
  });
3006
2999
  a(this, "onVideoPressCancel", () => {
3007
3000
  this.tapCandidate = !1;
@@ -3019,34 +3012,34 @@ class Xe extends HTMLElement {
3019
3012
  a(this, "scheduleAutoHide", () => {
3020
3013
  this.showChrome(), this.hideTimer && clearTimeout(this.hideTimer), !(this.videoEl.paused || this.loadingActive) && (this.audioMode || (this.hideTimer = setTimeout(() => {
3021
3014
  this.audioMode || this.videoEl.paused || this.loadingActive || this.pointerOverControls || this.controlBar.settingsMenu.isOpen || this.setChromeOpacity("0");
3022
- }, this.lastPointerType === "mouse" ? this.autoHideDelayMs : Math.max(this.autoHideDelayMs, hi))));
3015
+ }, this.lastPointerType === "mouse" ? this.autoHideDelayMs : Math.max(this.autoHideDelayMs, fi))));
3023
3016
  });
3024
- Yt(), this.root = this.attachShadow({ mode: "open" });
3017
+ ri(), this.root = this.attachShadow({ mode: "open" });
3025
3018
  const e = document.createElement("style");
3026
- e.textContent = de, this.root.appendChild(e);
3019
+ e.textContent = ve, this.root.appendChild(e);
3027
3020
  const i = document.createElement("div");
3028
- i.className = "hp-root", i.innerHTML = ui, 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 oi(this.videoEl), this.prerollGate.onWaitChange = (r) => this.onPrerollWaitChange(r), this.videoEl.addEventListener("error", this.onMediaError), this.videoEl.addEventListener("hp-internal:subtitle-error", this.onSubtitleError);
3021
+ i.className = "hp-root", i.innerHTML = ki, 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 ui(this.videoEl), this.prerollGate.onWaitChange = (r) => this.onPrerollWaitChange(r), this.videoEl.addEventListener("error", this.onMediaError), this.videoEl.addEventListener("hp-internal:subtitle-error", this.onSubtitleError);
3029
3022
  for (const r of ["enterpictureinpicture", "leavepictureinpicture"])
3030
3023
  this.videoEl.addEventListener(
3031
3024
  r,
3032
3025
  () => this.dispatchEvent(new CustomEvent("hp:pip", { detail: { state: r === "enterpictureinpicture" ? "enter" : "exit", mode: "native" } }))
3033
3026
  );
3034
- this.loadingSpinner = new Ct(this.videoEl), this.root.querySelector(".media-layer").appendChild(this.loadingSpinner.el), this.errorScreen = new Tt(this.videoEl, this.i18n), this.errorScreen.setOnRetry(() => void this.retrySource()), this.errorScreen.setOnShown(({ code: r, message: o }) => this.dispatchEvent(new CustomEvent("hp:error", { detail: { message: o, code: r } }))), 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";
3027
+ this.loadingSpinner = new Bt(this.videoEl), this.root.querySelector(".media-layer").appendChild(this.loadingSpinner.el), this.errorScreen = new Ot(this.videoEl, this.i18n), this.errorScreen.setOnRetry(() => void this.retrySource()), this.errorScreen.setOnShown(({ code: r, message: n }) => this.dispatchEvent(new CustomEvent("hp:error", { detail: { message: n, code: r } }))), 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";
3035
3028
  const s = document.createElement("span");
3036
3029
  s.className = "hp-chip hp:flex hp:items-center hp:justify-center hp:w-16 hp:h-16", s.style.borderRadius = "9999px", s.appendChild(z("play", "hp:text-2xl")), this.centerPlayButton.appendChild(s), this.centerPlayButton.addEventListener("click", (r) => {
3037
- var f;
3038
- const o = () => {
3030
+ var d;
3031
+ const n = () => {
3039
3032
  this.videoEl.paused && this.videoEl.play();
3040
- }, l = this.lastPointerType === "pen" ? "pen" : this.lastPointerType === "touch" ? "touch" : null, c = r.composedPath().includes(s) ? o : () => this.onBackgroundTap(l ?? "mouse", o);
3041
- l && ((f = this.tapGestures) != null && f.handleTap(r.clientX, l, c)) || c();
3042
- }), 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 et(this.videoEl, {
3033
+ }, l = this.lastPointerType === "pen" ? "pen" : this.lastPointerType === "touch" ? "touch" : null, c = r.composedPath().includes(s) ? n : () => this.onBackgroundTap(l ?? "mouse", n);
3034
+ l && ((d = this.tapGestures) != null && d.handleTap(r.clientX, l, c)) || c();
3035
+ }), 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 ot(this.videoEl, {
3043
3036
  onLevelsChanged: this.onHlsLevelsChanged,
3044
3037
  onAudioTracksChanged: this.onStreamAudioTracks,
3045
3038
  onTextTracksFound: this.onStreamTextTracks,
3046
3039
  onCues: this.onStreamCues,
3047
3040
  onFatalError: (r) => {
3048
- const o = r === "drm" ? 5 : r === "unsupported" ? 4 : r === "network" ? 2 : 3;
3049
- this.streamErrorCode = o, this.errorScreen.showStreamError(o);
3041
+ const n = r === "drm" ? 5 : r === "unsupported" ? 4 : r === "network" ? 2 : 3;
3042
+ this.streamErrorCode = n, this.errorScreen.showStreamError(n);
3050
3043
  },
3051
3044
  onStreamError: (r) => this.log.add({
3052
3045
  source: "stream",
@@ -3054,9 +3047,9 @@ class Xe extends HTMLElement {
3054
3047
  fatal: r.fatal,
3055
3048
  details: { url: r.url, httpStatus: r.httpStatus, reason: r.reason, engine: r.engine ?? "hls.js" }
3056
3049
  })
3057
- }), this.errorScreen.setShouldShow(() => !this.sourceManager.isRecovering() && !this.tryNextSourceGroup()), this.controlBar = new gt(
3050
+ }), this.errorScreen.setShouldShow(() => !this.sourceManager.isRecovering() && !this.tryNextSourceGroup()), this.controlBar = new xt(
3058
3051
  this.videoEl,
3059
- ze,
3052
+ Ve,
3060
3053
  {
3061
3054
  onRequestFullscreen: () => this.requestFullscreenCompat(),
3062
3055
  liveSyncPosition: () => {
@@ -3085,8 +3078,8 @@ class Xe extends HTMLElement {
3085
3078
  return ((r = this.adsController) == null ? void 0 : r.getAdVolume()) ?? 1;
3086
3079
  },
3087
3080
  setVolume: (r) => {
3088
- var o;
3089
- return (o = this.adsController) == null ? void 0 : o.setAdVolume(r);
3081
+ var n;
3082
+ return (n = this.adsController) == null ? void 0 : n.setAdVolume(r);
3090
3083
  },
3091
3084
  toggleMute: () => {
3092
3085
  var r;
@@ -3095,17 +3088,17 @@ class Xe extends HTMLElement {
3095
3088
  }
3096
3089
  },
3097
3090
  this.i18n
3098
- ), this.chromeEl.appendChild(this.controlBar.el), this.chromeEl.appendChild(this.controlBar.topEl), this.videoArea.appendChild(this.controlBar.volumePanel.unmuteBadge), this.captionRenderer = new D(this.videoEl, this.videoArea, this.controlBar.seekBar.el, this.i18n), this.videoArea.appendChild(this.captionRenderer.layerEl), this.keyboard = new Et(
3091
+ ), this.chromeEl.appendChild(this.controlBar.el), this.chromeEl.appendChild(this.controlBar.topEl), this.videoArea.appendChild(this.controlBar.volumePanel.unmuteBadge), this.captionRenderer = new V(this.videoEl, this.videoArea, this.controlBar.seekBar.el, this.i18n), this.videoArea.appendChild(this.captionRenderer.layerEl), this.keyboard = new Mt(
3099
3092
  this,
3100
3093
  this.videoEl,
3101
3094
  () => this.isFullscreenActive() ? this.exitFullscreenCompat() : this.requestFullscreenCompat()
3102
- ), this.tooltip = new kt(this.videoArea), this.contextMenu = new jt(this.videoArea), this.seekFeedback = new $t(this.i18n), this.videoArea.appendChild(this.seekFeedback.el), this.controlBar.onSkip = (r) => this.seekFeedback.show(r), this.keyboard.onSeek = (r) => this.seekFeedback.show(r), this.keyboard.interceptTogglePlay = () => this.cancelPrerollWait(), this.controlBar.seekBar.onKeyboardSeek = (r) => this.seekFeedback.show(r), this.blockChrome("boot");
3095
+ ), this.tooltip = new At(this.videoArea), this.contextMenu = new ei(this.videoArea), this.seekFeedback = new Zt(this.i18n), this.videoArea.appendChild(this.seekFeedback.el), this.controlBar.onSkip = (r) => this.seekFeedback.show(r), this.keyboard.onSeek = (r) => this.seekFeedback.show(r), this.keyboard.interceptTogglePlay = () => this.cancelPrerollWait(), this.controlBar.seekBar.onKeyboardSeek = (r) => this.seekFeedback.show(r), this.blockChrome("boot");
3103
3096
  }
3104
3097
  static get observedAttributes() {
3105
3098
  return ["src", "poster", "autoplay", "muted", "loop", "theme", "locale"];
3106
3099
  }
3107
3100
  connectedCallback() {
3108
- this.offGlobalPlugins ?? (this.offGlobalPlugins = Jt(() => void this.syncPlugins())), this.hasAttribute("tabindex") || (this.tabIndex = 0), this.syncFromAttributes(), this.bootResolved || (this.bootGraceTimer = setTimeout(() => {
3101
+ this.offGlobalPlugins ?? (this.offGlobalPlugins = ni(() => void this.syncPlugins())), this.offLocaleStrings ?? (this.offLocaleStrings = di(() => He(this.i18n, this.localeCode, this.localeLabels))), this.hasAttribute("tabindex") || (this.tabIndex = 0), this.syncFromAttributes(), this.bootResolved || (this.bootGraceTimer = setTimeout(() => {
3109
3102
  this.bootGraceTimer = null, this.bootResolved || (this.bootResolved = !0, this.syncFromAttributes());
3110
3103
  }, 80)), this.videoEl.addEventListener("play", this.onPlay), this.videoEl.addEventListener("pause", this.onPause), this.videoEl.addEventListener("ended", this.onEnded), this.videoEl.addEventListener("ratechange", this.onRateChange), 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) => {
3111
3104
  e && this.hideTimer && clearTimeout(this.hideTimer), e || this.scheduleAutoHide(), this.tooltip.recheckOcclusion();
@@ -3117,8 +3110,8 @@ class Xe extends HTMLElement {
3117
3110
  });
3118
3111
  }
3119
3112
  disconnectedCallback() {
3120
- var e, i, s, r, o, l, h, c, f, v, m, d, x, k, g, y, w, S, T, A, E, p, u, b, C, P, M, L, B, re, ae, oe, ne, le, he, pe, ce;
3121
- (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.videoEl.removeEventListener("ended", this.onEnded), this.videoEl.removeEventListener("ratechange", this.onRateChange), 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(), (r = this.debugPanel) == null || r.destroy(), this.videoEl.removeEventListener("error", this.onMediaError), this.videoEl.removeEventListener("hp-internal:subtitle-error", this.onSubtitleError), (o = this.tapGestures) == null || o.destroy(), this.sourceManager.destroy(), (l = this.adsController) == null || l.destroy(), (h = this.gestureControls) == null || h.destroy(), (c = this.loopSection) == null || c.destroy(), (f = this.audioStage) == null || f.destroy(), this.audioStage = null, (v = this.rewardedUnlock) == null || v.destroy(), this.rewardedUnlock = null, (m = this.sponsorship) == null || m.destroy(), this.sponsorship = null, (d = this.adTriggers) == null || d.destroy(), this.adTriggers = null, (x = this.castController) == null || x.destroy(), this.castController = null, (k = this.inViewAutoplay) == null || k.destroy(), (g = this.unregisterSticky) == null || g.call(this), (y = this.playlistRunner) == null || y.destroy(), (w = this.hopeStory) == null || w.destroy(), (S = this.markProgress) == null || S.destroy(), (T = this.segments) == null || T.destroy(), (A = this.spriteThumbnails) == null || A.destroy(), (E = this.countdownScreen) == null || E.destroy(), (p = this.geoChecker) == null || p.destroy(), (u = this.redirectScreen) == null || u.destroy(), (b = this.transcript) == null || b.destroy(), (C = this.heatmap) == null || C.destroy(), (P = this.docPip) == null || P.destroy(), (M = this.interactive) == null || M.destroy(), (L = this.pluginHost) == null || L.destroy(), this.pluginHost = null, (B = this.offGlobalPlugins) == null || B.call(this), this.offGlobalPlugins = null, (re = this.accessibility) == null || re.destroy(), this.accessibility = null, this.accessibilityKey = "", (ae = this.playbackHistory) == null || ae.destroy(), this.playbackHistory = null, this.historyKey = "", (oe = this.qoeTracker) == null || oe.destroy(), this.qoeTracker = null, this.analyticsKey = "", (ne = this.qrResume) == null || ne.destroy(), (le = this.pauseAd) == null || le.destroy(), this.pauseAd = null, (he = this.dubbing) == null || he.destroy(), (pe = this.liveWallClock) == null || pe.destroy(), (ce = this.daiController) == null || ce.destroy(), this.prerollGate.release(!1), this.hideTimer && clearTimeout(this.hideTimer), this.bootGraceTimer && clearTimeout(this.bootGraceTimer), this.lastSynced = null;
3113
+ var e, i, s, r, n, l, h, c, d, v, m, u, w, k, f, y, E, T, A, P, C, x, B, L, p, g, b, S, M, O, R, I, he, ce, de, pe, ue, me, ge, fe, be;
3114
+ (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.videoEl.removeEventListener("ended", this.onEnded), this.videoEl.removeEventListener("ratechange", this.onRateChange), 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(), (r = this.debugPanel) == null || r.destroy(), this.videoEl.removeEventListener("error", this.onMediaError), this.videoEl.removeEventListener("hp-internal:subtitle-error", this.onSubtitleError), (n = this.tapGestures) == null || n.destroy(), this.sourceManager.destroy(), (l = this.adsController) == null || l.destroy(), (h = this.gestureControls) == null || h.destroy(), (c = this.loopSection) == null || c.destroy(), (d = this.audioStage) == null || d.destroy(), this.audioStage = null, (v = this.rewardedUnlock) == null || v.destroy(), this.rewardedUnlock = null, (m = this.sponsorship) == null || m.destroy(), this.sponsorship = null, (u = this.adTriggers) == null || u.destroy(), this.adTriggers = null, (w = this.castController) == null || w.destroy(), this.castController = null, (k = this.inViewAutoplay) == null || k.destroy(), (f = this.unregisterSticky) == null || f.call(this), (y = this.playlistRunner) == null || y.destroy(), (E = this.hopeStory) == null || E.destroy(), (T = this.markProgress) == null || T.destroy(), (A = this.segments) == null || A.destroy(), (P = this.spriteThumbnails) == null || P.destroy(), (C = this.countdownScreen) == null || C.destroy(), (x = this.geoChecker) == null || x.destroy(), (B = this.redirectScreen) == null || B.destroy(), (L = this.transcript) == null || L.destroy(), (p = this.heatmap) == null || p.destroy(), (g = this.docPip) == null || g.destroy(), (b = this.interactive) == null || b.destroy(), (S = this.multiview) == null || S.destroy(), (M = this.share) == null || M.destroy(), (O = this.audioDescription) == null || O.destroy(), (R = this.pluginHost) == null || R.destroy(), this.pluginHost = null, (I = this.offGlobalPlugins) == null || I.call(this), this.offGlobalPlugins = null, (he = this.offLocaleStrings) == null || he.call(this), this.offLocaleStrings = null, (ce = this.accessibility) == null || ce.destroy(), this.accessibility = null, this.accessibilityKey = "", (de = this.playbackHistory) == null || de.destroy(), this.playbackHistory = null, this.historyKey = "", (pe = this.qoeTracker) == null || pe.destroy(), this.qoeTracker = null, this.analyticsKey = "", (ue = this.qrResume) == null || ue.destroy(), (me = this.pauseAd) == null || me.destroy(), this.pauseAd = null, (ge = this.dubbing) == null || ge.destroy(), (fe = this.liveWallClock) == null || fe.destroy(), (be = this.daiController) == null || be.destroy(), this.prerollGate.release(!1), this.hideTimer && clearTimeout(this.hideTimer), this.bootGraceTimer && clearTimeout(this.bootGraceTimer), this.lastSynced = null;
3122
3115
  }
3123
3116
  /** Reklam/consent-farkında plugin'lerin (gesture/sticky/in-view-autoplay) ortak sorgusu. */
3124
3117
  isAdPlaying() {
@@ -3177,7 +3170,7 @@ class Xe extends HTMLElement {
3177
3170
  async showDebugLog() {
3178
3171
  if (!this.debugPanel) {
3179
3172
  const { installDebugPanel: e } = await import("./debugPanel-Bnc_7GOn.js");
3180
- this.debugPanel ?? (this.debugPanel = e({ containerEl: this.videoArea, i18n: this.i18n, log: this.log, version: V }));
3173
+ this.debugPanel ?? (this.debugPanel = e({ containerEl: this.videoArea, i18n: this.i18n, log: this.log, version: _ }));
3181
3174
  }
3182
3175
  this.debugPanel.show();
3183
3176
  }
@@ -3198,7 +3191,7 @@ class Xe extends HTMLElement {
3198
3191
  videoEl: this.videoEl,
3199
3192
  containerEl: this.videoArea,
3200
3193
  i18n: this.i18n,
3201
- version: V,
3194
+ version: _,
3202
3195
  getEngine: () => this.sourceManager.engine,
3203
3196
  getHls: () => this.sourceManager.hlsInstance
3204
3197
  }));
@@ -3222,7 +3215,7 @@ class Xe extends HTMLElement {
3222
3215
  }
3223
3216
  /** Eklentiyi sayfadaki tüm player'lara ekler. */
3224
3217
  static use(e, i) {
3225
- return Zt(e, i);
3218
+ return ai(e, i);
3226
3219
  }
3227
3220
  async syncPlugins() {
3228
3221
  try {
@@ -3236,16 +3229,16 @@ class Xe extends HTMLElement {
3236
3229
  this.pluginsSettled = new Promise((i) => this.settlePlugins = i), e();
3237
3230
  }
3238
3231
  async adTagTransform(e, i) {
3239
- var r, o;
3240
- return (!!((r = this._options.plugins) != null && r.length) || this.runtimePlugins.length > 0 || Me().length > 0) && await Promise.race([this.pluginsSettled, new Promise((l) => setTimeout(l, 2e3))]), ((o = this.pluginHost) == null ? void 0 : o.transformAdTag(e, i)) ?? e;
3232
+ var r, n;
3233
+ return (!!((r = this._options.plugins) != null && r.length) || this.runtimePlugins.length > 0 || ze().length > 0) && await Promise.race([this.pluginsSettled, new Promise((l) => setTimeout(l, 2e3))]), ((n = this.pluginHost) == null ? void 0 : n.transformAdTag(e, i)) ?? e;
3241
3234
  }
3242
3235
  async doSyncPlugins() {
3243
3236
  var r;
3244
- const e = this._options, i = (r = e.skipSegments) != null && r.length ? [[() => import("./skipSegments-ByNoF1qZ.js").then((o) => o.skipSegmentsPlugin), e.skipSegments]] : [], s = [...Me(), ...e.plugins ?? [], ...this.runtimePlugins];
3237
+ const e = this._options, i = (r = e.skipSegments) != null && r.length ? [[() => import("./skipSegments-BbepQ4Y6.js").then((n) => n.skipSegmentsPlugin), e.skipSegments]] : [], s = [...ze(), ...e.plugins ?? [], ...this.runtimePlugins];
3245
3238
  if (!(!i.length && !s.length && !this.pluginHost)) {
3246
3239
  if (!this.pluginHost) {
3247
- const { PluginHost: o } = await import("./pluginHost-cN2uGFeG.js");
3248
- this.pluginHost ?? (this.pluginHost = new o({
3240
+ const { PluginHost: n } = await import("./pluginHost-CXqkjNV1.js");
3241
+ this.pluginHost ?? (this.pluginHost = new n({
3249
3242
  element: this,
3250
3243
  video: this.videoEl,
3251
3244
  videoArea: this.videoArea,
@@ -3317,23 +3310,23 @@ class Xe extends HTMLElement {
3317
3310
  })), this.pluginApplyRun;
3318
3311
  }
3319
3312
  async applyOptions(e) {
3320
- var o, l, h, c, f, v, m, d, x, k, g, y, w, S, T, A, E, p, u, b, C, P, M, L, B;
3321
- this.markPluginsPending(), 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 ?? Ie, this.tapToPlay = e.tapToPlay ?? "auto", this.cursorHideDelayMs = e.cursorHideDelayMs === !1 ? null : e.cursorHideDelayMs ?? Oe, this.cursorHideDelayMs === null && this.showCursor(), this.controlBar.settingsMenu.setQualityBadgeEnabled(e.qualityBadge !== !1), this.controlBar.settingsMenu.setPlaybackRates(e.playbackRates ?? ze), this.controlBar.setLiveSeekBar(e.liveSeekBar !== !1), this.controlBar.setButtonsVisible({ pip: e.pipButton !== !1, fullscreen: e.fullscreenButton !== !1 }), this.docPipOptions = e.documentPip && "documentPictureInPicture" in window ? e.documentPip === !0 ? {} : e.documentPip : null, this.controlBar.setDocPip(this.docPipOptions !== null, ((o = this.docPip) == null ? void 0 : o.active) ?? !1), e.miniProgress && !this.miniProgress ? (this.miniProgress = new Kt(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 || (l = this.debugPanel) == null || l.hide(), this.contextMenuConfig = e.contextMenu === !1 ? null : { stats: typeof e.contextMenu == "object" && e.contextMenu.stats === !0 }, this.contextMenuConfig || this.contextMenu.close();
3322
- const i = e.keyboardSeekStep && e.keyboardSeekStep > 0 ? e.keyboardSeekStep : ci;
3313
+ var n, l, h, c, d, v, m, u, w, k, f, y, E, T, A, P, C, x, B, L, p, g, b, S, M, O, R, I;
3314
+ this.markPluginsPending(), 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 ?? Ke, this.tapToPlay = e.tapToPlay ?? "auto", this.cursorHideDelayMs = e.cursorHideDelayMs === !1 ? null : e.cursorHideDelayMs ?? Ge, this.cursorHideDelayMs === null && this.showCursor(), this.controlBar.settingsMenu.setQualityBadgeEnabled(e.qualityBadge !== !1), this.controlBar.settingsMenu.setPlaybackRates(e.playbackRates ?? Ve), this.controlBar.setLiveSeekBar(e.liveSeekBar !== !1), this.controlBar.setButtonsVisible({ pip: e.pipButton !== !1, fullscreen: e.fullscreenButton !== !1 }), this.docPipOptions = e.documentPip && "documentPictureInPicture" in window ? e.documentPip === !0 ? {} : e.documentPip : null, this.controlBar.setDocPip(this.docPipOptions !== null, ((n = this.docPip) == null ? void 0 : n.active) ?? !1), e.miniProgress && !this.miniProgress ? (this.miniProgress = new jt(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 || (l = this.debugPanel) == null || l.hide(), this.contextMenuConfig = e.contextMenu === !1 ? null : { stats: typeof e.contextMenu == "object" && e.contextMenu.stats === !0 }, this.contextMenuConfig || this.contextMenu.close();
3315
+ const i = e.keyboardSeekStep && e.keyboardSeekStep > 0 ? e.keyboardSeekStep : vi;
3323
3316
  this.keyboard.seekStep = i, this.keyboard.frameRate = e.frameRate && e.frameRate > 0 ? e.frameRate : null, this.controlBar.seekBar.keyboardStep = i;
3324
3317
  const s = e.skipButtons === !0 ? {} : e.skipButtons || null;
3325
3318
  this.controlBar.setSkipButtons(
3326
- s && s.back !== !1 ? s.back ?? Ne : null,
3327
- s && s.forward !== !1 ? s.forward ?? Ne : null
3319
+ s && s.back !== !1 ? s.back ?? _e : null,
3320
+ s && s.forward !== !1 ? s.forward ?? _e : null
3328
3321
  ), e.showRemainingTime !== void 0 && e.showRemainingTime !== this.appliedShowRemaining && (this.appliedShowRemaining = e.showRemainingTime, this.controlBar.setShowRemaining(e.showRemainingTime));
3329
- const r = mi(e.aspectRatio);
3330
- r ? this.style.setProperty("--hp-aspect-ratio", r) : this.style.removeProperty("--hp-aspect-ratio"), e.theme ? this.setAttribute("data-theme", e.theme) : this.removeAttribute("data-theme"), this.localeCode = e.locale ?? "tr", ri(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(), (h = this.playlistRunner) == null || h.refreshLabels(), (c = this.hopeStory) == null || c.refreshLabels(), (f = this.countdownScreen) == null || f.refreshLabels(), (v = this.geoChecker) == null || v.refreshLabels(), (m = this.redirectScreen) == null || m.refreshLabels(), (d = this.transcript) == null || d.refreshLabels(), (x = this.interactive) == null || x.refreshLabels(), (k = this.pluginHost) == null || k.refreshLabels(), (g = this.accessibility) == null || g.refreshLabels(), (y = this.playbackHistory) == null || y.refreshLabels(), (w = this.qrResume) == null || w.refreshLabels(), (S = this.pauseAd) == null || S.refreshLabels(), (T = this.castController) == null || T.refreshLabels(), (A = this.dubbing) == null || A.refreshLabels(), this.onStreamAudioTracks(this.streamAudio.tracks, this.streamAudio.active), (E = this.statsPanel) == null || E.refreshLabels(), (p = this.debugPanel) == null || p.refreshLabels(), (u = this.liveWallClock) == null || u.refreshLabels(), (b = this.loopSection) == null || b.refreshLabels(), (C = this.audioStage) == null || C.refreshLabels(), (P = this.rewardedUnlock) == null || P.refreshLabels(), (M = this.markProgress) == null || M.refreshLabels(), (B = (L = this.unregisterSticky) == null ? void 0 : L.refreshLabels) == null || B.call(L), this.bootResolved && await this.queuePluginApply(e);
3322
+ const r = wi(e.aspectRatio);
3323
+ r ? this.style.setProperty("--hp-aspect-ratio", r) : this.style.removeProperty("--hp-aspect-ratio"), e.theme ? this.setAttribute("data-theme", e.theme) : this.removeAttribute("data-theme"), this.localeCode = e.locale ?? "tr", this.localeLabels = e.labels, He(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(), (h = this.playlistRunner) == null || h.refreshLabels(), (c = this.hopeStory) == null || c.refreshLabels(), (d = this.countdownScreen) == null || d.refreshLabels(), (v = this.geoChecker) == null || v.refreshLabels(), (m = this.redirectScreen) == null || m.refreshLabels(), (u = this.transcript) == null || u.refreshLabels(), (w = this.interactive) == null || w.refreshLabels(), (k = this.multiview) == null || k.refreshLabels(), (f = this.share) == null || f.refreshLabels(), (y = this.audioDescription) == null || y.refreshLabels(), (E = this.pluginHost) == null || E.refreshLabels(), (T = this.accessibility) == null || T.refreshLabels(), (A = this.playbackHistory) == null || A.refreshLabels(), (P = this.qrResume) == null || P.refreshLabels(), (C = this.pauseAd) == null || C.refreshLabels(), (x = this.castController) == null || x.refreshLabels(), (B = this.dubbing) == null || B.refreshLabels(), this.onStreamAudioTracks(this.streamAudio.tracks, this.streamAudio.active), (L = this.statsPanel) == null || L.refreshLabels(), (p = this.debugPanel) == null || p.refreshLabels(), (g = this.liveWallClock) == null || g.refreshLabels(), (b = this.loopSection) == null || b.refreshLabels(), (S = this.audioStage) == null || S.refreshLabels(), (M = this.rewardedUnlock) == null || M.refreshLabels(), (O = this.markProgress) == null || O.refreshLabels(), (I = (R = this.unregisterSticky) == null ? void 0 : R.refreshLabels) == null || I.call(R), this.bootResolved && await this.queuePluginApply(e);
3331
3324
  }
3332
3325
  /** applyOptions'ın asenkron kısmı — yalnızca queuePluginApply üzerinden, sırayla çalışır. */
3333
3326
  async applyPluginsAndPlayback(e) {
3334
3327
  if (e.ads && !this.adsController) {
3335
3328
  const s = e.ads === !0 ? {} : e.ads;
3336
- ai(s) && !this.prerollGate.isArmed && this.prerollGate.arm(s.prerollTimeoutMs ?? te), li(), e.countdownScreen || this.installAdsOnce(e);
3329
+ pi(s) && !this.prerollGate.isArmed && this.prerollGate.arm(s.prerollTimeoutMs ?? ne), gi(), e.countdownScreen || this.installAdsOnce(e);
3337
3330
  }
3338
3331
  await this.applyAudioMode(e);
3339
3332
  const i = () => ({
@@ -3357,40 +3350,40 @@ class Xe extends HTMLElement {
3357
3350
  }))) : await this.initPlayback(e);
3358
3351
  }
3359
3352
  async initPlayback(e) {
3360
- var d, x, k, g, y, w, S, T, A, E;
3353
+ var w, k, f, y, E, T, A, P, C, x, B, L;
3361
3354
  const i = e.cmcd ? { ...e.cmcd === !0 ? {} : e.cmcd } : null;
3362
3355
  i && !i.contentId && e.id && (i.contentId = e.id), this.sourceManager.configure(e.hls, { dash: e.dash, drm: e.drm, qualityLimit: e.qualityLimit, cmcd: i }), await this.applyAnalytics(e), this.errorScreen.dismiss(), await this.applyRewardedUnlock(e);
3363
- const s = (d = e.sources) != null && d.length ? e.sources : e.src ? [{ src: e.src, label: this.i18n.autoQuality }] : [];
3364
- this.sourceGroups = tt(s, e.sourcePriority);
3365
- const r = (p) => this.sourceManager.isLoaded(p.src, p.type) && !this.isSourceLocked(p), o = this.sourceGroups.findIndex((p) => p.sources.some(r));
3366
- this.activeGroup = o !== -1 ? o : this.firstPlayableGroup();
3367
- const l = this.limitSources(((x = this.sourceGroups[this.activeGroup]) == null ? void 0 : x.sources) ?? []);
3368
- this.currentSources = l, this.fallbackPending = !1;
3369
- const c = l.find(r) ?? this.pickInitialSource(l);
3370
- if (c && !this.sourceManager.isLoaded(c.src, c.type) && (l.length <= 1 && (this.controlBar.setQualities([], ""), this.hlsQualitiesShown = !1), await this.sourceManager.load(c.src, c.type), e.autoplay && this.videoEl.play().catch(() => {
3371
- })), c && (this.activeSourceLabel = c.label), this.renderSourceQualities(), await this.installAdsOnce(e), await this.applySponsorship(e), await this.applyAdTriggers(e), await this.applyCast(e), e.gesture && !this.gestureControls) {
3372
- const p = e.gesture === !0 ? {} : e.gesture, { installGesture: u } = await import("./gesture-BzPCgi87.js");
3373
- this.gestureControls = u(
3356
+ const s = (k = (w = e.multiview) == null ? void 0 : w.sources) != null && k.length ? e.multiview.sources.find((p) => p.id === e.multiview.start) ?? e.multiview.sources[0] : null, r = (f = e.sources) != null && f.length ? e.sources : e.src ? [{ src: e.src, label: this.i18n.autoQuality }] : s ? [{ src: s.src, type: s.type, label: this.i18n.autoQuality }] : [];
3357
+ this.sourceGroups = lt(r, e.sourcePriority);
3358
+ const n = (p) => this.sourceManager.isLoaded(p.src, p.type) && !this.isSourceLocked(p), l = this.sourceGroups.findIndex((p) => p.sources.some(n));
3359
+ this.activeGroup = l !== -1 ? l : this.firstPlayableGroup();
3360
+ const h = this.limitSources(((y = this.sourceGroups[this.activeGroup]) == null ? void 0 : y.sources) ?? []);
3361
+ this.currentSources = h, this.fallbackPending = !1;
3362
+ const d = h.find(n) ?? this.pickInitialSource(h);
3363
+ if (d && !this.sourceManager.isLoaded(d.src, d.type) && (h.length <= 1 && (this.controlBar.setQualities([], ""), this.hlsQualitiesShown = !1), await this.sourceManager.load(d.src, d.type), e.autoplay && this.videoEl.play().catch(() => {
3364
+ })), d && (this.activeSourceLabel = d.label), this.renderSourceQualities(), await this.installAdsOnce(e), await this.applySponsorship(e), await this.applyAdTriggers(e), await this.applyCast(e), e.gesture && !this.gestureControls) {
3365
+ const p = e.gesture === !0 ? {} : e.gesture, { installGesture: g } = await import("./gesture-BzPCgi87.js");
3366
+ this.gestureControls = g(
3374
3367
  { videoEl: this.videoEl, overlayContainerEl: this.videoArea, isAdActive: () => this.isAdPlaying() },
3375
3368
  p
3376
3369
  );
3377
3370
  }
3378
3371
  if (e.loopSection && !this.loopSection) {
3379
- const p = e.loopSection === !0 ? {} : e.loopSection, { installLoopSection: u } = await import("./loopSection-Bwk4W8vz.js");
3380
- this.loopSection = u(
3372
+ const p = e.loopSection === !0 ? {} : e.loopSection, { installLoopSection: g } = await import("./loopSection-Bwk4W8vz.js");
3373
+ this.loopSection = g(
3381
3374
  {
3382
3375
  videoEl: this.videoEl,
3383
3376
  seekBarEl: this.controlBar.seekBar.el,
3384
3377
  markers: this.controlBar.seekBar,
3385
- addControlButton: (b, C, P) => this.controlBar.addButton(b, C, P),
3378
+ addControlButton: (b, S, M) => this.controlBar.addButton(b, S, M),
3386
3379
  i18n: this.i18n
3387
3380
  },
3388
3381
  p
3389
3382
  );
3390
3383
  }
3391
3384
  if (e.inViewAutoplay && !this.inViewAutoplay) {
3392
- const p = e.inViewAutoplay === !0 ? {} : e.inViewAutoplay, { installInViewAutoplay: u } = await import("./inViewAutoplay-CRJe7GA4.js");
3393
- this.inViewAutoplay = u(
3385
+ const p = e.inViewAutoplay === !0 ? {} : e.inViewAutoplay, { installInViewAutoplay: g } = await import("./inViewAutoplay-CRJe7GA4.js");
3386
+ this.inViewAutoplay = g(
3394
3387
  // Video TV'deyken ya da Document PiP penceresindeyken sayfa kaydırılınca duraklatma.
3395
3388
  { videoEl: this.videoEl, observeEl: this, isAdActive: () => {
3396
3389
  var b;
@@ -3400,8 +3393,8 @@ class Xe extends HTMLElement {
3400
3393
  );
3401
3394
  }
3402
3395
  if (e.sticky && !this.unregisterSticky) {
3403
- const p = e.sticky === !0 ? {} : e.sticky, { installSticky: u } = await import("./sticky-BDStzjBM.js");
3404
- this.unregisterSticky = u(
3396
+ const p = e.sticky === !0 ? {} : e.sticky, { installSticky: g } = await import("./sticky-BDStzjBM.js");
3397
+ this.unregisterSticky = g(
3405
3398
  {
3406
3399
  key: this.instanceKey,
3407
3400
  videoEl: this.videoEl,
@@ -3419,19 +3412,19 @@ class Xe extends HTMLElement {
3419
3412
  );
3420
3413
  }
3421
3414
  if (e.playlist && !this.playlistRunner) {
3422
- const { installPlaylist: p } = await import("./playlist-CHfStNbQ.js");
3415
+ const { installPlaylist: p } = await import("./playlist-BkhIOfCy.js");
3423
3416
  this.playlistRunner = p(
3424
3417
  {
3425
3418
  videoEl: this.videoEl,
3426
3419
  hostEl: this,
3427
3420
  panelEl: this.getOrCreatePanelContainer(),
3428
- loadSource: (u, b) => this.sourceManager.load(u, b),
3429
- setPoster: (u) => {
3430
- this.videoEl.poster = u;
3421
+ loadSource: (g, b) => this.sourceManager.load(g, b),
3422
+ setPoster: (g) => {
3423
+ this.videoEl.poster = g;
3431
3424
  },
3432
- requestFreshAd: (u) => {
3425
+ requestFreshAd: (g) => {
3433
3426
  var b;
3434
- return (b = this.adsController) == null ? void 0 : b.resetForNewItem(u);
3427
+ return (b = this.adsController) == null ? void 0 : b.resetForNewItem(g);
3435
3428
  },
3436
3429
  isAdActive: () => this.isAdPlaying(),
3437
3430
  i18n: this.i18n
@@ -3440,20 +3433,20 @@ class Xe extends HTMLElement {
3440
3433
  );
3441
3434
  }
3442
3435
  if (e.story && !this.hopeStory) {
3443
- const { installStory: p } = await import("./story-CodA2dfn.js");
3436
+ const { installStory: p } = await import("./story-DcBG6jUg.js");
3444
3437
  this.hopeStory = p(
3445
3438
  {
3446
3439
  videoEl: this.videoEl,
3447
3440
  hostEl: this,
3448
3441
  videoAreaEl: this.videoArea,
3449
3442
  playerBodyEls: [this.root.querySelector(".media-layer"), this.chromeEl, this.centerPlayButton],
3450
- loadSource: (u, b) => this.sourceManager.load(u, b),
3451
- setPoster: (u) => {
3452
- this.videoEl.poster = u;
3443
+ loadSource: (g, b) => this.sourceManager.load(g, b),
3444
+ setPoster: (g) => {
3445
+ this.videoEl.poster = g;
3453
3446
  },
3454
- requestFreshAd: (u) => {
3447
+ requestFreshAd: (g) => {
3455
3448
  var b;
3456
- return (b = this.adsController) == null ? void 0 : b.resetForNewItem(u);
3449
+ return (b = this.adsController) == null ? void 0 : b.resetForNewItem(g);
3457
3450
  },
3458
3451
  i18n: this.i18n
3459
3452
  },
@@ -3461,23 +3454,23 @@ class Xe extends HTMLElement {
3461
3454
  );
3462
3455
  }
3463
3456
  if (e.markers && !this.markProgress) {
3464
- const { installMarkers: p } = await import("./markers-L69W3kj6.js");
3457
+ const { installMarkers: p } = await import("./markers-D32rI-x-.js");
3465
3458
  this.markProgress = p(
3466
3459
  {
3467
3460
  videoEl: this.videoEl,
3468
3461
  overlayContainerEl: this.videoArea,
3469
- addSeekBarMarker: (u, b, C) => this.controlBar.seekBar.addMarker(u, b, C),
3462
+ addSeekBarMarker: (g, b, S) => this.controlBar.seekBar.addMarker(g, b, S),
3470
3463
  i18n: this.i18n
3471
3464
  },
3472
3465
  e.markers
3473
3466
  );
3474
3467
  }
3475
- if ((k = e.segments) != null && k.length && !this.segments) {
3476
- const { installSegments: p } = await import("./segments-Ds-c1b5e.js");
3468
+ if ((E = e.segments) != null && E.length && !this.segments) {
3469
+ const { installSegments: p } = await import("./segments-CuQQEIAX.js");
3477
3470
  this.segments = p({ videoEl: this.videoEl, seekBar: this.controlBar.seekBar }, e.segments);
3478
3471
  }
3479
3472
  if (e.spriteThumbnails && !this.spriteThumbnails) {
3480
- const { installSpriteThumbnails: p } = await import("./spriteThumbnails-Cr9UmkM9.js");
3473
+ const { installSpriteThumbnails: p } = await import("./spriteThumbnails-BYg-DHx4.js");
3481
3474
  this.spriteThumbnails = p(
3482
3475
  {
3483
3476
  videoEl: this.videoEl,
@@ -3487,52 +3480,52 @@ class Xe extends HTMLElement {
3487
3480
  e.spriteThumbnails
3488
3481
  );
3489
3482
  }
3490
- if (await this.applyTranscript(e), await this.applyHeatmap(e), await this.applyInteractive(e), this.docPipOptions && !this.docPip) {
3491
- const { installDocumentPip: p } = await import("./docPip-wybMVP1H.js");
3483
+ if (await this.applyTranscript(e), await this.applyHeatmap(e), await this.applyInteractive(e), await this.applyMultiview(e), await this.applyShare(e), await this.applyAudioDescription(e), this.docPipOptions && !this.docPip) {
3484
+ const { installDocumentPip: p } = await import("./docPip-Bh6BWPk-.js");
3492
3485
  this.docPip ?? (this.docPip = p({
3493
3486
  hostEl: this,
3494
3487
  videoArea: this.videoArea,
3495
3488
  rootEl: this.root.querySelector(".hp-root"),
3496
- css: de,
3489
+ css: ve,
3497
3490
  i18n: this.i18n,
3498
- onChange: (u, b) => this.onDocPipChange(u, b),
3499
- forwardKey: (u) => this.forwardPipKey(u)
3491
+ onChange: (g, b) => this.onDocPipChange(g, b),
3492
+ forwardKey: (g) => this.forwardPipKey(g)
3500
3493
  }));
3501
3494
  }
3502
- const f = e.redirectScreen ? JSON.stringify(e.redirectScreen) : "";
3503
- if (f !== this.redirectKey && (this.redirectKey = f, (g = this.redirectScreen) == null || g.destroy(), this.redirectScreen = null, e.redirectScreen)) {
3504
- const { installRedirectScreen: p } = await import("./redirectScreen-TIqLdvBY.js");
3495
+ const v = e.redirectScreen ? JSON.stringify(e.redirectScreen) : "";
3496
+ if (v !== this.redirectKey && (this.redirectKey = v, (T = this.redirectScreen) == null || T.destroy(), this.redirectScreen = null, e.redirectScreen)) {
3497
+ const { installRedirectScreen: p } = await import("./redirectScreen-DgmjFVJH.js");
3505
3498
  this.redirectScreen = p(
3506
3499
  { hostEl: this, videoEl: this.videoEl, overlayContainerEl: this.videoArea, isAdActive: () => this.isAdPlaying(), i18n: this.i18n },
3507
3500
  e.redirectScreen
3508
3501
  );
3509
3502
  }
3510
- const v = e.accessibility ? JSON.stringify(e.accessibility) : "";
3511
- if (v !== this.accessibilityKey && (this.accessibilityKey = v, (y = this.accessibility) == null || y.destroy(), this.accessibility = null, e.accessibility)) {
3503
+ const m = e.accessibility ? JSON.stringify(e.accessibility) : "";
3504
+ if (m !== this.accessibilityKey && (this.accessibilityKey = m, (A = this.accessibility) == null || A.destroy(), this.accessibility = null, e.accessibility)) {
3512
3505
  const { installAccessibility: p } = await import("./accessibility-DFx4CE0H.js");
3513
- this.accessibilityKey === v && (this.accessibility = p(
3506
+ this.accessibilityKey === m && (this.accessibility = p(
3514
3507
  {
3515
3508
  hostEl: this,
3516
3509
  videoEl: this.videoEl,
3517
3510
  videoAreaEl: this.videoArea,
3518
3511
  i18n: this.i18n,
3519
- registerSubmenu: (u) => this.controlBar.settingsMenu.registerSubmenu(u),
3520
- unregisterSubmenu: (u) => this.controlBar.settingsMenu.unregisterSubmenu(u),
3521
- addQuickButton: (u, b, C) => this.controlBar.settingsMenu.addQuickButton(u, b, C),
3512
+ registerSubmenu: (g) => this.controlBar.settingsMenu.registerSubmenu(g),
3513
+ unregisterSubmenu: (g) => this.controlBar.settingsMenu.unregisterSubmenu(g),
3514
+ addQuickButton: (g, b, S) => this.controlBar.settingsMenu.addQuickButton(g, b, S),
3522
3515
  seekStep: () => this.keyboard.seekStep,
3523
3516
  extraShortcuts: () => {
3524
- var u;
3525
- return ((u = this.pluginHost) == null ? void 0 : u.shortcuts()) ?? [];
3517
+ var g;
3518
+ return ((g = this.pluginHost) == null ? void 0 : g.shortcuts()) ?? [];
3526
3519
  }
3527
3520
  },
3528
3521
  e.accessibility === !0 ? {} : e.accessibility
3529
3522
  ));
3530
3523
  }
3531
3524
  await this.syncPlugins();
3532
- const m = e.history ? JSON.stringify(e.history) : "";
3533
- if (m !== this.historyKey && (this.historyKey = m, (w = this.playbackHistory) == null || w.destroy(), this.playbackHistory = null, e.history)) {
3534
- const p = e.qrResume ? e.qrResume.paramName ?? "vtime" : null, u = !!p && new URL(location.href).searchParams.has(p), { installHistory: b } = await import("./history-CwqLXiZi.js");
3535
- this.historyKey === m && (this.playbackHistory = b(
3525
+ const u = e.history ? JSON.stringify(e.history) : "";
3526
+ if (u !== this.historyKey && (this.historyKey = u, (P = this.playbackHistory) == null || P.destroy(), this.playbackHistory = null, e.history)) {
3527
+ const p = e.qrResume ? e.qrResume.paramName ?? "vtime" : null, g = !!p && new URL(location.href).searchParams.has(p), { installHistory: b } = await import("./history-ZSdDDsRF.js");
3528
+ this.historyKey === u && (this.playbackHistory = b(
3536
3529
  {
3537
3530
  hostEl: this,
3538
3531
  videoEl: this.videoEl,
@@ -3541,7 +3534,7 @@ class Xe extends HTMLElement {
3541
3534
  currentSrc: () => this.sourceManager.currentSrc,
3542
3535
  isAdActive: () => this.isAdPlaying(),
3543
3536
  mutedRequested: () => !!this._options.muted,
3544
- linkTimePresent: u
3537
+ linkTimePresent: g
3545
3538
  },
3546
3539
  e.history === !0 ? {} : e.history
3547
3540
  ));
@@ -3563,8 +3556,8 @@ class Xe extends HTMLElement {
3563
3556
  this.tapGestures = p(
3564
3557
  {
3565
3558
  areaEl: this.videoArea,
3566
- seekBy: (u) => {
3567
- this.controlBar.seekBar.el.style.pointerEvents !== "none" && (qe(this.videoEl, u), this.seekFeedback.show(u));
3559
+ seekBy: (g) => {
3560
+ this.controlBar.seekBar.el.style.pointerEvents !== "none" && (Qe(this.videoEl, g), this.seekFeedback.show(g));
3568
3561
  },
3569
3562
  togglePlay: () => this.videoEl.paused ? void this.videoEl.play().catch(() => {
3570
3563
  }) : this.videoEl.pause(),
@@ -3580,8 +3573,8 @@ class Xe extends HTMLElement {
3580
3573
  const { DEFAULT_TAP_GESTURES: p } = await import("./tapGestures-DrC42DiI.js");
3581
3574
  this.tapGestures.setGestures(e.tapGestures === !0 ? p : e.tapGestures || []);
3582
3575
  }
3583
- if ((S = e.pauseAd) != null && S.adUnitPath && !this.pauseAd) {
3584
- const { installPauseAd: p } = await import("./pauseAd-BQQe21X4.js");
3576
+ if ((C = e.pauseAd) != null && C.adUnitPath && !this.pauseAd) {
3577
+ const { installPauseAd: p } = await import("./pauseAd-DF7KGwUs.js");
3585
3578
  this.pauseAd = p(
3586
3579
  { videoEl: this.videoEl, hostEl: this, videoArea: this.videoArea, i18n: this.i18n, isBlocked: () => this.isChromeBlocked },
3587
3580
  e.pauseAd
@@ -3592,28 +3585,28 @@ class Xe extends HTMLElement {
3592
3585
  this.dubbing = p(
3593
3586
  {
3594
3587
  videoEl: this.videoEl,
3595
- loadSource: (u, b) => this.sourceManager.load(u, b),
3596
- registerSubmenu: (u) => this.controlBar.settingsMenu.registerSubmenu(u),
3597
- unregisterSubmenu: (u) => this.controlBar.settingsMenu.unregisterSubmenu(u),
3588
+ loadSource: (g, b) => this.sourceManager.load(g, b),
3589
+ registerSubmenu: (g) => this.controlBar.settingsMenu.registerSubmenu(g),
3590
+ unregisterSubmenu: (g) => this.controlBar.settingsMenu.unregisterSubmenu(g),
3598
3591
  i18n: this.i18n
3599
3592
  },
3600
3593
  e.dubbing
3601
3594
  );
3602
3595
  }
3603
3596
  if (e.liveWallClock && !this.liveWallClock) {
3604
- const p = e.liveWallClock === !0 ? {} : e.liveWallClock, { installLiveWallClock: u } = await import("./liveWallClock-ChUTtzLD.js");
3605
- this.liveWallClock = u(
3597
+ const p = e.liveWallClock === !0 ? {} : e.liveWallClock, { installLiveWallClock: g } = await import("./liveWallClock-ChUTtzLD.js");
3598
+ this.liveWallClock = g(
3606
3599
  {
3607
3600
  videoEl: this.videoEl,
3608
3601
  seekBarEl: this.controlBar.seekBar.el,
3609
3602
  addControlElement: (b) => this.controlBar.addElement(b),
3610
3603
  i18n: this.i18n,
3611
3604
  getPlayingDate: () => {
3612
- var M, L, B;
3613
- const b = (M = this.sourceManager.hlsInstance) == null ? void 0 : M.playingDate;
3605
+ var O, R, I;
3606
+ const b = (O = this.sourceManager.hlsInstance) == null ? void 0 : O.playingDate;
3614
3607
  if (b) return b;
3615
- const C = (B = (L = this.videoEl).getStartDate) == null ? void 0 : B.call(L), P = (C == null ? void 0 : C.getTime()) ?? NaN;
3616
- return Number.isFinite(P) && P > 0 ? new Date(P + this.videoEl.currentTime * 1e3) : null;
3608
+ const S = (I = (R = this.videoEl).getStartDate) == null ? void 0 : I.call(R), M = (S == null ? void 0 : S.getTime()) ?? NaN;
3609
+ return Number.isFinite(M) && M > 0 ? new Date(M + this.videoEl.currentTime * 1e3) : null;
3617
3610
  }
3618
3611
  },
3619
3612
  p
@@ -3626,44 +3619,121 @@ class Xe extends HTMLElement {
3626
3619
  videoEl: this.videoEl,
3627
3620
  hostEl: this,
3628
3621
  adUiEl: this.adLayerEl,
3629
- loadStreamUrl: (u) => this.sourceManager.load(u),
3622
+ loadStreamUrl: (g) => this.sourceManager.load(g),
3630
3623
  disableSeeking: () => this.disableSeeking(),
3631
3624
  enableSeeking: () => this.enableSeeking()
3632
3625
  },
3633
3626
  e.dai
3634
3627
  );
3635
3628
  }
3636
- (T = e.subtitles) != null && T.length ? this.optionTracks = Pt(this.videoEl, e.subtitles) : (Ue(this.videoEl), this.optionTracks = []), this.rebuildCaptions(((E = (A = e.subtitles) == null ? void 0 : A.find((p) => p.default)) == null ? void 0 : E.label) ?? null);
3629
+ (x = e.subtitles) != null && x.length ? this.optionTracks = Nt(this.videoEl, e.subtitles) : (Ze(this.videoEl), this.optionTracks = []), this.rebuildCaptions(((L = (B = e.subtitles) == null ? void 0 : B.find((p) => p.default)) == null ? void 0 : L.label) ?? null);
3637
3630
  }
3638
3631
  /** Transkript paneli — ayar değişince yeniden kurulur. */
3639
3632
  async applyTranscript(e) {
3640
3633
  var r;
3641
3634
  const i = e.transcript ? JSON.stringify(e.transcript) : "";
3642
3635
  if (i === this.transcriptKey || (this.transcriptKey = i, (r = this.transcript) == null || r.destroy(), this.transcript = null, !e.transcript)) return;
3643
- const { installTranscript: s } = await import("./transcript-LG7E9UYE.js");
3636
+ const { installTranscript: s } = await import("./transcript-CHPQ6S6E.js");
3644
3637
  this.transcriptKey === i && (this.transcript = s(
3645
3638
  {
3646
3639
  hostEl: this,
3647
3640
  videoEl: this.videoEl,
3648
3641
  overlayEl: this.videoArea,
3649
3642
  i18n: this.i18n,
3650
- getTracks: () => this.subtitleTracks.map(({ label: o, track: l }) => ({ label: o, track: l })),
3643
+ getTracks: () => this.subtitleTracks.map(({ label: n, track: l }) => ({ label: n, track: l })),
3651
3644
  activeLabel: () => this.activeCaptionLabel,
3652
- addButton: (o, l, h) => this.controlBar.addButton(o, l, h)
3645
+ addButton: (n, l, h) => this.controlBar.addButton(n, l, h)
3653
3646
  },
3654
3647
  e.transcript === !0 ? {} : e.transcript
3655
3648
  ));
3656
3649
  }
3650
+ /** Paylaşım — ayar değişince yeniden kurulur. */
3651
+ async applyShare(e) {
3652
+ var r;
3653
+ const i = e.share ? JSON.stringify(e.share) : "";
3654
+ if (i === this.shareKey || (this.shareKey = i, (r = this.share) == null || r.destroy(), this.share = null, !e.share)) return;
3655
+ const { installShare: s } = await import("./share-BdqQ8sGE.js");
3656
+ this.shareKey === i && (this.share = s(
3657
+ {
3658
+ hostEl: this,
3659
+ videoEl: this.videoEl,
3660
+ overlayEl: this.videoArea,
3661
+ i18n: this.i18n,
3662
+ addButton: (n, l, h) => this.controlBar.addButton(n, l, h),
3663
+ isLive: () => this.videoEl.duration === 1 / 0
3664
+ },
3665
+ e.share === !0 ? {} : e.share
3666
+ ));
3667
+ }
3668
+ /** Paylaşım panelini aç (`options.share` gerekir). */
3669
+ openShare() {
3670
+ var e;
3671
+ (e = this.share) == null || e.open();
3672
+ }
3673
+ /** Sesli betimleme — ayar değişince yeniden kurulur. */
3674
+ async applyAudioDescription(e) {
3675
+ var r;
3676
+ const i = e.audioDescription ? JSON.stringify(e.audioDescription) : "";
3677
+ if (i === this.audioDescriptionKey || (this.audioDescriptionKey = i, (r = this.audioDescription) == null || r.destroy(), this.audioDescription = null, !e.audioDescription)) return;
3678
+ const { installAudioDescription: s } = await import("./audioDescription-cpprKeB-.js");
3679
+ this.audioDescriptionKey === i && (this.audioDescription = s(
3680
+ {
3681
+ hostEl: this,
3682
+ videoEl: this.videoEl,
3683
+ i18n: this.i18n,
3684
+ registerSubmenu: (n) => this.controlBar.settingsMenu.registerSubmenu(n),
3685
+ unregisterSubmenu: (n) => this.controlBar.settingsMenu.unregisterSubmenu(n),
3686
+ streamAudio: () => this.streamAudio,
3687
+ setAudioTrack: (n) => this.sourceManager.setAudioTrack(n)
3688
+ },
3689
+ e.audioDescription === !0 ? {} : e.audioDescription
3690
+ ));
3691
+ }
3692
+ /** Sesli betimlemeyi aç / kapat (`options.audioDescription` gerekir). */
3693
+ setAudioDescription(e) {
3694
+ var i;
3695
+ (i = this.audioDescription) == null || i.setEnabled(e);
3696
+ }
3697
+ /** Çoklu kamera — kamera listesi / ayar değişince yeniden kurulur. */
3698
+ async applyMultiview(e) {
3699
+ var n, l;
3700
+ const i = e.multiview, s = (n = i == null ? void 0 : i.sources) != null && n.length ? JSON.stringify(i) : "";
3701
+ if (s === this.multiviewKey || (this.multiviewKey = s, (l = this.multiview) == null || l.destroy(), this.multiview = null, !s || !i)) return;
3702
+ const { installMultiview: r } = await import("./multiview-CL1WfJKt.js");
3703
+ this.multiviewKey === s && (this.multiview = r(
3704
+ {
3705
+ hostEl: this,
3706
+ videoEl: this.videoEl,
3707
+ videoAreaEl: this.videoArea,
3708
+ i18n: this.i18n,
3709
+ isAdActive: () => this.isAdPlaying(),
3710
+ loadSource: (h, c) => this.sourceManager.load(h, c),
3711
+ mainHls: () => this.sourceManager.hlsInstance,
3712
+ addButton: (h, c, d) => this.controlBar.addButton(h, c, d)
3713
+ },
3714
+ i
3715
+ ));
3716
+ }
3717
+ /** Çoklu kamerada kamerayı değiştir (`options.multiview` gerekir). */
3718
+ switchCamera(e) {
3719
+ var i;
3720
+ (i = this.multiview) == null || i.switchTo(e);
3721
+ }
3722
+ /** Çoklu kamera görünümü: 'focus' (tek + küçükler) ya da 'grid' (bölünmüş). */
3723
+ setMultiviewLayout(e) {
3724
+ var i;
3725
+ (i = this.multiview) == null || i.setLayout(e);
3726
+ }
3657
3727
  /** Etkileşimli içerik — öğeler değişince yeniden kurulur (`onAnswer` fonksiyonu anahtara girmez). */
3658
3728
  async applyInteractive(e) {
3659
- var o, l, h;
3660
- const i = e.interactive, s = (o = i == null ? void 0 : i.items) != null && o.length ? JSON.stringify({ ...i, onAnswer: void 0 }) : "";
3729
+ var n, l, h;
3730
+ const i = e.interactive, s = (n = i == null ? void 0 : i.items) != null && n.length ? JSON.stringify({ ...i, onAnswer: void 0 }) : "";
3661
3731
  if (s === this.interactiveKey) {
3662
3732
  (l = this.interactive) == null || l.setOptions(i);
3663
3733
  return;
3664
3734
  }
3665
3735
  if (this.interactiveKey = s, (h = this.interactive) == null || h.destroy(), this.interactive = null, !s || !i) return;
3666
- const { installInteractive: r } = await import("./interactive-CgltIneu.js");
3736
+ const { installInteractive: r } = await import("./interactive-ClJC5Vyo.js");
3667
3737
  this.interactiveKey === s && (this.interactive = r(
3668
3738
  {
3669
3739
  hostEl: this,
@@ -3671,7 +3741,7 @@ class Xe extends HTMLElement {
3671
3741
  overlayEl: this.videoArea,
3672
3742
  i18n: this.i18n,
3673
3743
  isAdActive: () => this.isAdPlaying(),
3674
- addSeekBarMarker: (c, f, v) => this.controlBar.seekBar.addMarker(c, f, v)
3744
+ addSeekBarMarker: (c, d, v) => this.controlBar.seekBar.addMarker(c, d, v)
3675
3745
  },
3676
3746
  i
3677
3747
  ));
@@ -3681,11 +3751,12 @@ class Xe extends HTMLElement {
3681
3751
  var l, h;
3682
3752
  const i = e.heatmap, s = Array.isArray(i) ? { data: i } : i, r = s && ((l = s.data) != null && l.length || s.src) ? JSON.stringify(s) : "";
3683
3753
  if (r === this.heatmapKey || (this.heatmapKey = r, (h = this.heatmap) == null || h.destroy(), this.heatmap = null, !r || !s)) return;
3684
- const { installHeatmap: o } = await import("./heatmap-Bb7neaYU.js");
3685
- this.heatmapKey === r && (this.heatmap = o(
3754
+ const { installHeatmap: n } = await import("./heatmap-Bz_EMQFk.js");
3755
+ this.heatmapKey === r && (this.heatmap = n(
3686
3756
  {
3687
3757
  videoEl: this.videoEl,
3688
3758
  seekBar: this.controlBar.seekBar,
3759
+ i18n: this.i18n,
3689
3760
  log: (c) => this.log.add({ source: "player", ...c })
3690
3761
  },
3691
3762
  s
@@ -3740,17 +3811,17 @@ class Xe extends HTMLElement {
3740
3811
  this.selectCaption = null, this.activeCaptionLabel = null, this.controlBar.setCaptions([], this.i18n.captionsOff), this.captionRenderer.setActiveTrack(null), this.captionTrackActive = !1, this.controlBar.settingsMenu.setCaptionAppearance(null), this.sourceManager.selectTextTrack(null), (r = this.transcript) == null || r.onTracksChanged();
3741
3812
  return;
3742
3813
  }
3743
- const i = (o) => {
3814
+ const i = (n) => {
3744
3815
  var h, c;
3745
- const l = Lt(this.subtitleTracks, o);
3746
- this.activeCaptionLabel = l ? o : null, this.sourceManager.selectTextTrack(((h = this.streamTracks.find((f) => f.label === o)) == null ? void 0 : h.id) ?? null), this.captionRenderer.setActiveTrack(l), this.captionTrackActive = l !== null, this.controlBar.settingsMenu.setActiveCaption(l ? o : this.i18n.captionsOff), this.controlBar.settingsMenu.setCaptionAppearance(l !== null ? this.buildCaptionAppearance() : null), (c = this.transcript) == null || c.onTracksChanged();
3816
+ const l = zt(this.subtitleTracks, n);
3817
+ this.activeCaptionLabel = l ? n : null, this.sourceManager.selectTextTrack(((h = this.streamTracks.find((d) => d.label === n)) == null ? void 0 : h.id) ?? null), this.captionRenderer.setActiveTrack(l), this.captionTrackActive = l !== null, this.controlBar.settingsMenu.setActiveCaption(l ? n : this.i18n.captionsOff), this.controlBar.settingsMenu.setCaptionAppearance(l !== null ? this.buildCaptionAppearance() : null), (c = this.transcript) == null || c.onTracksChanged();
3747
3818
  };
3748
3819
  this.selectCaption = i;
3749
- const s = e && this.subtitleTracks.some((o) => o.label === e) ? e : null;
3820
+ const s = e && this.subtitleTracks.some((n) => n.label === e) ? e : null;
3750
3821
  this.controlBar.setCaptions(
3751
3822
  [
3752
3823
  { label: this.i18n.captionsOff, onSelect: () => i(null) },
3753
- ...this.subtitleTracks.map(({ label: o }) => ({ label: o, onSelect: () => i(o) }))
3824
+ ...this.subtitleTracks.map(({ label: n }) => ({ label: n, onSelect: () => i(n) }))
3754
3825
  ],
3755
3826
  s ?? this.i18n.captionsOff
3756
3827
  ), i(s);
@@ -3775,11 +3846,11 @@ class Xe extends HTMLElement {
3775
3846
  }
3776
3847
  /** 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). */
3777
3848
  buildCaptionAppearance() {
3778
- const e = ["small", "normal", "large"], i = (s, r, o, l) => s.map((h, c) => ({
3849
+ const e = ["small", "normal", "large"], i = (s, r, n, l) => s.map((h, c) => ({
3779
3850
  value: h,
3780
3851
  active: r() === h,
3781
3852
  ariaLabel: `${l} ${c + 1}`,
3782
- onSelect: () => o(h)
3853
+ onSelect: () => n(h)
3783
3854
  }));
3784
3855
  return {
3785
3856
  sizeLabel: this.i18n.captionSize,
@@ -3790,14 +3861,14 @@ class Xe extends HTMLElement {
3790
3861
  })),
3791
3862
  bgColorLabel: this.i18n.captionBgColor,
3792
3863
  getBgColorOptions: () => i(
3793
- D.BG_COLOR_PRESETS,
3864
+ V.BG_COLOR_PRESETS,
3794
3865
  () => this.captionRenderer.getBgColor(),
3795
3866
  (s) => this.captionRenderer.setBgColor(s),
3796
3867
  this.i18n.captionBgColor
3797
3868
  ),
3798
3869
  textColorLabel: this.i18n.captionTextColor,
3799
3870
  getTextColorOptions: () => i(
3800
- D.TEXT_COLOR_PRESETS,
3871
+ V.TEXT_COLOR_PRESETS,
3801
3872
  () => this.captionRenderer.getTextColor(),
3802
3873
  (s) => this.captionRenderer.setTextColor(s),
3803
3874
  this.i18n.captionTextColor
@@ -3826,8 +3897,8 @@ class Xe extends HTMLElement {
3826
3897
  var r;
3827
3898
  const i = (r = this._options.qualityLimit) == null ? void 0 : r.max;
3828
3899
  if (!i || e.length < 2) return e;
3829
- const s = e.filter((o) => (this.sourceHeight(o) ?? 0) <= i);
3830
- return s.length ? s : [e.reduce((o, l) => (this.sourceHeight(l) ?? 1 / 0) < (this.sourceHeight(o) ?? 1 / 0) ? l : o)];
3900
+ const s = e.filter((n) => (this.sourceHeight(n) ?? 0) <= i);
3901
+ return s.length ? s : [e.reduce((n, l) => (this.sourceHeight(l) ?? 1 / 0) < (this.sourceHeight(n) ?? 1 / 0) ? l : n)];
3831
3902
  }
3832
3903
  /** Veri tasarrufu açık ve tarayıcı tasarruf / yavaş bağlantı bildiriyorsa üst sınır (px). */
3833
3904
  dataSaverHeight() {
@@ -3840,13 +3911,13 @@ class Xe extends HTMLElement {
3840
3911
  pickInitialSource(e) {
3841
3912
  const i = this.dataSaverHeight();
3842
3913
  if (i) {
3843
- const o = e.filter((l) => !this.isSourceLocked(l) && (this.sourceHeight(l) ?? 1 / 0) <= i);
3844
- if (o.length) return o.reduce((l, h) => (this.sourceHeight(h) ?? 0) > (this.sourceHeight(l) ?? 0) ? h : l);
3914
+ const n = e.filter((l) => !this.isSourceLocked(l) && (this.sourceHeight(l) ?? 1 / 0) <= i);
3915
+ if (n.length) return n.reduce((l, h) => (this.sourceHeight(h) ?? 0) > (this.sourceHeight(l) ?? 0) ? h : l);
3845
3916
  }
3846
- const s = e.find((o) => o.selected) ?? e[0];
3917
+ const s = e.find((n) => n.selected) ?? e[0];
3847
3918
  if (!s || !this.isSourceLocked(s)) return s;
3848
- const r = e.filter((o) => !this.isSourceLocked(o));
3849
- return r.length ? r.reduce((o, l) => (this.sourceHeight(l) ?? 0) > (this.sourceHeight(o) ?? 0) ? l : o) : s;
3919
+ const r = e.filter((n) => !this.isSourceLocked(n));
3920
+ return r.length ? r.reduce((n, l) => (this.sourceHeight(l) ?? 0) > (this.sourceHeight(n) ?? 0) ? l : n) : s;
3850
3921
  }
3851
3922
  renderSourceQualities() {
3852
3923
  const e = this.currentSources;
@@ -3884,8 +3955,8 @@ class Xe extends HTMLElement {
3884
3955
  if (this.lastHlsLevels.length > 1)
3885
3956
  this.onHlsLevelsChanged(this.lastHlsLevels, e ? -1 : this.lastHlsActive), e && this.sourceManager.setLevel(-1);
3886
3957
  else if (this.currentSources.length > 1) {
3887
- 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, r = this.currentSources.find((l) => l.label === this.activeSourceLabel), o = s ?? (r && this.isSourceLocked(r) ? this.pickInitialSource(this.currentSources) : null);
3888
- o && o.label !== this.activeSourceLabel ? this.switchQualitySource(o) : this.renderSourceQualities();
3958
+ 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, r = this.currentSources.find((l) => l.label === this.activeSourceLabel), n = s ?? (r && this.isSourceLocked(r) ? this.pickInitialSource(this.currentSources) : null);
3959
+ n && n.label !== this.activeSourceLabel ? this.switchQualitySource(n) : this.renderSourceQualities();
3889
3960
  }
3890
3961
  (i = this.rewardedUnlock) == null || i.onQualitiesChanged();
3891
3962
  }
@@ -3898,7 +3969,7 @@ class Xe extends HTMLElement {
3898
3969
  if (this.rewardedUnlock)
3899
3970
  this.rewardedUnlock.update(i);
3900
3971
  else {
3901
- const { installRewardedUnlock: s } = await import("./rewardedUnlock-DUqYwXTr.js");
3972
+ const { installRewardedUnlock: s } = await import("./rewardedUnlock-BL97P5ht.js");
3902
3973
  this.rewardedUnlock ?? (this.rewardedUnlock = s(
3903
3974
  {
3904
3975
  hostEl: this,
@@ -3939,22 +4010,22 @@ class Xe extends HTMLElement {
3939
4010
  if (this.castController)
3940
4011
  this.castController.update(i);
3941
4012
  else {
3942
- const { installCast: r } = await import("./cast-vHyi7oV_.js");
4013
+ const { installCast: r } = await import("./cast-DEowHmqA.js");
3943
4014
  this.castController ?? (this.castController = r(
3944
4015
  {
3945
4016
  hostEl: this,
3946
4017
  videoEl: this.videoEl,
3947
4018
  overlayEl: this.videoArea,
3948
4019
  i18n: this.i18n,
3949
- log: (o) => this.log.add({ source: "player", ...o }),
3950
- addButton: (o, l, h) => this.controlBar.addButton(o, l, h),
4020
+ log: (n) => this.log.add({ source: "player", ...n }),
4021
+ addButton: (n, l, h) => this.controlBar.addButton(n, l, h),
3951
4022
  getMedia: () => this.castMedia(),
3952
4023
  isAdPlaying: () => this.isAdPlaying(),
3953
4024
  isMse: () => this.sourceManager.engine.engine === "hls.js" || this.sourceManager.engine.engine === "dash.js",
3954
4025
  contentKey: () => this.contentKey(),
3955
- onRemoteChange: (o) => {
4026
+ onRemoteChange: (n) => {
3956
4027
  var l;
3957
- this.casting = o, (l = this.adsController) == null || l.setRemote(o), o && this.prerollGate.release(!1);
4028
+ this.casting = n, (l = this.adsController) == null || l.setRemote(n), n && this.prerollGate.release(!1);
3958
4029
  }
3959
4030
  },
3960
4031
  i
@@ -3963,34 +4034,34 @@ class Xe extends HTMLElement {
3963
4034
  }
3964
4035
  /** TV'ye gönderilecek içerik: o an çalan kaynak (ya da `cast.source`), başlık / kapak, altyazılar, reklam tag'leri. */
3965
4036
  castMedia() {
3966
- var w, S, T, A, E;
4037
+ var E, T, A, P, C;
3967
4038
  const e = this._options, i = e.cast ?? {}, s = this.sourceManager.currentSrc;
3968
4039
  if (!s) return null;
3969
- const r = (w = this.currentSources.find((p) => p.src === s)) == null ? void 0 : w.type, o = typeof i.source == "function" ? i.source({ src: s, type: r }) : i.source ?? { src: s, type: r }, l = typeof o == "string" ? { src: o, type: void 0 } : o, h = (p) => new URL(p, document.baseURI).href, c = He({ src: l.src, type: l.type }), f = typeof e.audio == "object" ? e.audio : null, v = ((S = i.metadata) == null ? void 0 : S.image) ?? (f == null ? void 0 : f.cover) ?? e.poster, m = typeof e.ads == "object" ? e.ads : null, d = m == null ? void 0 : m.prebid, x = d == null ? void 0 : d.custParams, k = d ? { ...ee(d.custParams), ...ee((T = d.midroll) == null ? void 0 : T.custParams) } : void 0, g = (p, u) => {
3970
- const b = Array.isArray(p) ? p[0] : p;
3971
- return b ? ti(X(b), u) : void 0;
4040
+ const r = (E = this.currentSources.find((x) => x.src === s)) == null ? void 0 : E.type, n = typeof i.source == "function" ? i.source({ src: s, type: r }) : i.source ?? { src: s, type: r }, l = typeof n == "string" ? { src: n, type: void 0 } : n, h = (x) => new URL(x, document.baseURI).href, c = We({ src: l.src, type: l.type }), d = typeof e.audio == "object" ? e.audio : null, v = ((T = i.metadata) == null ? void 0 : T.image) ?? (d == null ? void 0 : d.cover) ?? e.poster, m = typeof e.ads == "object" ? e.ads : null, u = m == null ? void 0 : m.prebid, w = u == null ? void 0 : u.custParams, k = u ? { ...se(u.custParams), ...se((A = u.midroll) == null ? void 0 : A.custParams) } : void 0, f = (x, B) => {
4041
+ const L = Array.isArray(x) ? x[0] : x;
4042
+ return L ? li(Z(L), B) : void 0;
3972
4043
  }, y = i.ads === !1 ? null : typeof i.ads == "object" ? {
3973
- vmap: i.ads.vmap ? X(i.ads.vmap) : void 0,
3974
- preroll: g(i.ads.preroll),
3975
- midroll: g(i.ads.midroll),
4044
+ vmap: i.ads.vmap ? Z(i.ads.vmap) : void 0,
4045
+ preroll: f(i.ads.preroll),
4046
+ midroll: f(i.ads.midroll),
3976
4047
  midrollIntervalSeconds: i.ads.midrollIntervalSeconds,
3977
- postroll: g(i.ads.postroll)
4048
+ postroll: f(i.ads.postroll)
3978
4049
  } : m ? {
3979
- vmap: m.adTagVmap ? X(m.adTagVmap) : void 0,
3980
- preroll: g(m.adTagPreroll, x),
3981
- midroll: g(m.adTagMidroll, k),
4050
+ vmap: m.adTagVmap ? Z(m.adTagVmap) : void 0,
4051
+ preroll: f(m.adTagPreroll, w),
4052
+ midroll: f(m.adTagMidroll, k),
3982
4053
  midrollIntervalSeconds: m.midrollIntervalSeconds,
3983
- postroll: g(m.adTagPostroll)
4054
+ postroll: f(m.adTagPostroll)
3984
4055
  } : null;
3985
4056
  return {
3986
4057
  src: h(l.src),
3987
- contentType: l.type || di[c] || "video/mp4",
4058
+ contentType: l.type || yi[c] || "video/mp4",
3988
4059
  live: this.videoEl.duration === 1 / 0,
3989
- title: ((A = i.metadata) == null ? void 0 : A.title) ?? (f == null ? void 0 : f.title),
3990
- subtitle: ((E = i.metadata) == null ? void 0 : E.subtitle) ?? (f == null ? void 0 : f.artist),
4060
+ title: ((P = i.metadata) == null ? void 0 : P.title) ?? (d == null ? void 0 : d.title),
4061
+ subtitle: ((C = i.metadata) == null ? void 0 : C.subtitle) ?? (d == null ? void 0 : d.artist),
3991
4062
  image: v ? h(v) : void 0,
3992
4063
  music: !!e.audio,
3993
- subtitles: (e.subtitles ?? []).map((p) => ({ src: h(p.src), label: p.label, lang: p.srclang, default: p.default })),
4064
+ subtitles: (e.subtitles ?? []).map((x) => ({ src: h(x.src), label: x.label, lang: x.srclang, default: x.default })),
3994
4065
  ads: y && (y.vmap || y.preroll || y.midroll || y.postroll) ? y : null
3995
4066
  };
3996
4067
  }
@@ -4004,14 +4075,14 @@ class Xe extends HTMLElement {
4004
4075
  if (this.adTriggers)
4005
4076
  this.adTriggers.update(i);
4006
4077
  else {
4007
- const { installAdTriggers: r } = await import("./adTriggers-BIAWe8o4.js");
4078
+ const { installAdTriggers: r } = await import("./adTriggers-DVqgm92F.js");
4008
4079
  this.adTriggers ?? (this.adTriggers = r(
4009
4080
  {
4010
4081
  hostEl: this,
4011
4082
  videoEl: this.videoEl,
4012
4083
  overlayEl: this.videoArea,
4013
4084
  i18n: this.i18n,
4014
- log: (o) => this.log.add({ source: "ads", ...o }),
4085
+ log: (n) => this.log.add({ source: "ads", ...n }),
4015
4086
  isBlocked: () => this.isChromeBlocked || this.isAdPlaying() || this.casting,
4016
4087
  isFullscreen: () => this.isFullscreenActive(),
4017
4088
  isNativeFullscreen: () => !!this.iosVideo.webkitDisplayingFullscreen,
@@ -4031,14 +4102,14 @@ class Xe extends HTMLElement {
4031
4102
  if (this.sponsorship)
4032
4103
  this.sponsorship.update(i);
4033
4104
  else {
4034
- const { installSponsorship: r } = await import("./sponsorship-BT21uwN5.js");
4105
+ const { installSponsorship: r } = await import("./sponsorship-DoAZBbHE.js");
4035
4106
  this.sponsorship ?? (this.sponsorship = r(
4036
4107
  {
4037
4108
  hostEl: this,
4038
4109
  videoEl: this.videoEl,
4039
4110
  overlayEl: this.videoArea,
4040
4111
  i18n: this.i18n,
4041
- log: (o) => this.log.add({ source: "player", ...o })
4112
+ log: (n) => this.log.add({ source: "player", ...n })
4042
4113
  },
4043
4114
  i
4044
4115
  ));
@@ -4056,10 +4127,10 @@ class Xe extends HTMLElement {
4056
4127
  var i;
4057
4128
  for (let s = e; s < this.sourceGroups.length; s++) {
4058
4129
  const r = this.sourceGroups[s];
4059
- if (!it(r, this.videoEl)) {
4130
+ if (!ht(r, this.videoEl)) {
4060
4131
  if (s > e) {
4061
- const o = this.sourceGroups[e].format;
4062
- this.dispatchEvent(new CustomEvent("hp:sourcefallback", { detail: { from: o, to: r.format, code: 4, skipped: !0 } }));
4132
+ const n = this.sourceGroups[e].format;
4133
+ this.dispatchEvent(new CustomEvent("hp:sourcefallback", { detail: { from: n, to: r.format, code: 4, skipped: !0 } }));
4063
4134
  }
4064
4135
  return s;
4065
4136
  }
@@ -4081,22 +4152,22 @@ class Xe extends HTMLElement {
4081
4152
  const s = this.firstPlayableGroup(this.activeGroup + 1);
4082
4153
  if (s === -1) return !1;
4083
4154
  this.fallbackPending = !0;
4084
- const r = Number.isFinite(this.videoEl.duration) ? this.videoEl.currentTime : 0, o = !this.videoEl.paused || !!this._options.autoplay;
4155
+ const r = Number.isFinite(this.videoEl.duration) ? this.videoEl.currentTime : 0, n = !this.videoEl.paused || !!this._options.autoplay;
4085
4156
  return this.log.add({
4086
4157
  source: "player",
4087
4158
  message: `Source "${e.format}" failed — falling back to "${this.sourceGroups[s].format}"`,
4088
4159
  details: { code: i, src: this.sourceManager.currentSrc ?? void 0 }
4089
- }), this.dispatchEvent(new CustomEvent("hp:sourcefallback", { detail: { from: e.format, to: this.sourceGroups[s].format, code: i } })), queueMicrotask(() => void this.activateSourceGroup(s, r, o)), !0;
4160
+ }), this.dispatchEvent(new CustomEvent("hp:sourcefallback", { detail: { from: e.format, to: this.sourceGroups[s].format, code: i } })), queueMicrotask(() => void this.activateSourceGroup(s, r, n)), !0;
4090
4161
  }
4091
4162
  async activateSourceGroup(e, i, s) {
4092
4163
  var l;
4093
4164
  const r = this.sourceGroups[e];
4094
4165
  if (!r) return;
4095
4166
  this.activeGroup = e, this.currentSources = this.limitSources(r.sources);
4096
- const o = this.pickInitialSource(this.currentSources);
4097
- this.errorScreen.dismiss(), this.controlBar.setQualities([], ""), this.hlsQualitiesShown = !1, this.activeSourceLabel = o.label, i > 0 && this.videoEl.addEventListener("loadedmetadata", () => this.videoEl.currentTime = i, { once: !0 });
4167
+ const n = this.pickInitialSource(this.currentSources);
4168
+ this.errorScreen.dismiss(), this.controlBar.setQualities([], ""), this.hlsQualitiesShown = !1, this.activeSourceLabel = n.label, i > 0 && this.videoEl.addEventListener("loadedmetadata", () => this.videoEl.currentTime = i, { once: !0 });
4098
4169
  try {
4099
- await this.sourceManager.load(o.src, o.type);
4170
+ await this.sourceManager.load(n.src, n.type);
4100
4171
  } finally {
4101
4172
  this.fallbackPending = !1;
4102
4173
  }
@@ -4168,16 +4239,16 @@ class Xe extends HTMLElement {
4168
4239
  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");
4169
4240
  };
4170
4241
  if (!i.height || !s.height || !e.hasAttribute("data-compact")) return r();
4171
- const o = 64, l = s.top - i.top - 8;
4172
- if (i.height / 2 + o / 2 <= l) return r();
4173
- const h = Math.max(40, Math.min(56, l - 12)), c = Math.max(h / 2 + 6, l - h / 2), f = Math.round(c - i.height / 2);
4242
+ const n = 64, l = s.top - i.top - 8;
4243
+ if (i.height / 2 + n / 2 <= l) return r();
4244
+ const h = Math.max(40, Math.min(56, l - 12)), c = Math.max(h / 2 + 6, l - h / 2), d = Math.round(c - i.height / 2);
4174
4245
  let v = 0;
4175
4246
  const m = this.controlBar.topEl.getBoundingClientRect();
4176
4247
  if (m.width > 0 && c - h / 2 < m.bottom - i.top) {
4177
- const d = m.left - i.left - 8 - h / 2;
4178
- i.width / 2 > d && (v = Math.round(Math.max(h / 2 + 8, d) - i.width / 2));
4248
+ const u = m.left - i.left - 8 - h / 2;
4249
+ i.width / 2 > u && (v = Math.round(Math.max(h / 2 + 8, u) - i.width / 2));
4179
4250
  }
4180
- e.setAttribute("data-center-play-shifted", ""), e.style.setProperty("--hp-center-play-shift-x", `${v}px`), e.style.setProperty("--hp-center-play-size", `${h}px`), e.style.setProperty("--hp-center-play-shift", `${f}px`);
4251
+ e.setAttribute("data-center-play-shifted", ""), e.style.setProperty("--hp-center-play-shift-x", `${v}px`), e.style.setProperty("--hp-center-play-size", `${h}px`), e.style.setProperty("--hp-center-play-shift", `${d}px`);
4181
4252
  }
4182
4253
  /** Dar player'da dokunmatikte oynat/duraklat yerine kontrolleri göster/gizle (options.tapToPlay). */
4183
4254
  tapTogglesPlay(e) {
@@ -4258,7 +4329,7 @@ class Xe extends HTMLElement {
4258
4329
  play: () => void this.play().catch(() => {
4259
4330
  }),
4260
4331
  i18n: this.i18n,
4261
- setBarMeta: (o) => this.controlBar.setAudioBar(o)
4332
+ setBarMeta: (n) => this.controlBar.setAudioBar(n)
4262
4333
  },
4263
4334
  i
4264
4335
  ));
@@ -4270,7 +4341,7 @@ class Xe extends HTMLElement {
4270
4341
  if (!this.adsInstall) {
4271
4342
  const i = e.ads === !0 ? {} : e.ads;
4272
4343
  this.adsInstall = (async () => {
4273
- const { installAds: s } = await import("./ads-DlpHPpR9.js");
4344
+ const { installAds: s } = await import("./ads-eSKyiH1o.js");
4274
4345
  this.adsController = await s(
4275
4346
  {
4276
4347
  videoEl: this.videoEl,
@@ -4288,15 +4359,15 @@ class Xe extends HTMLElement {
4288
4359
  onAdProgress: (r) => this.controlBar.setAdInfo(r),
4289
4360
  // Sürekli oynatma (vconp): playlist / story bir sonraki içeriği kendiliğinden başlatıyorsa.
4290
4361
  isContinuousPlayback: () => {
4291
- const r = this._options, o = (l) => !!l && l.autoplayNext !== !1;
4292
- return o(r.playlist) || o(r.story);
4362
+ const r = this._options, n = (l) => !!l && l.autoplayNext !== !1;
4363
+ return n(r.playlist) || n(r.story);
4293
4364
  },
4294
4365
  audioPoster: (() => {
4295
4366
  if (!e.audio) return;
4296
4367
  const r = e.audio === !0 ? {} : e.audio;
4297
4368
  return r.adPoster ? new URL(r.adPoster, document.baseURI).href : void 0;
4298
4369
  })(),
4299
- transformTag: (r, o) => this.adTagTransform(r, o),
4370
+ transformTag: (r, n) => this.adTagTransform(r, n),
4300
4371
  surface: {
4301
4372
  videoEl: this.videoEl,
4302
4373
  containerEl: this.videoArea,
@@ -4328,24 +4399,25 @@ class Xe extends HTMLElement {
4328
4399
  }
4329
4400
  }
4330
4401
  /** Paket sürümü (ör. "1.0.4"). */
4331
- a(Xe, "version", V);
4332
- const vi = 1;
4333
- typeof window < "u" && !customElements.get("hope-player") && customElements.define("hope-player", Xe);
4402
+ a(st, "version", _);
4403
+ const Ti = 1;
4404
+ typeof window < "u" && !customElements.get("hope-player") && customElements.define("hope-player", st);
4334
4405
  export {
4335
- V as H,
4336
- lt as L,
4337
- vi as P,
4338
- ee as a,
4339
- Xe as b,
4406
+ _ as H,
4407
+ gt as L,
4408
+ Ti as P,
4409
+ se as a,
4410
+ st as b,
4340
4411
  z as c,
4341
- bi as d,
4342
- R as f,
4343
- X as g,
4344
- ie as i,
4345
- ti as m,
4346
- Zt as r,
4347
- F as s,
4348
- fi as t,
4349
- _ as v
4412
+ Ci as d,
4413
+ ai as e,
4414
+ N as f,
4415
+ Z as g,
4416
+ oe as i,
4417
+ li as m,
4418
+ Si as r,
4419
+ q as s,
4420
+ Ei as t,
4421
+ W as v
4350
4422
  };
4351
- //# sourceMappingURL=player-D2_HRzot.js.map
4423
+ //# sourceMappingURL=player-B7mYS--8.js.map