@hopeplayer/core 1.0.14 → 1.0.15

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 (43) hide show
  1. package/dist/HopePlayerElement.d.ts +21 -0
  2. package/dist/HopePlayerElement.d.ts.map +1 -1
  3. package/dist/chunks/{index-C2c71cGP.js → index-BOoNcKeR.js} +2 -2
  4. package/dist/chunks/{index-C2c71cGP.js.map → index-BOoNcKeR.js.map} +1 -1
  5. package/dist/chunks/{index-BTBAxNjr.js → index-BvoB2O1p.js} +2 -2
  6. package/dist/chunks/{index-BTBAxNjr.js.map → index-BvoB2O1p.js.map} +1 -1
  7. package/dist/chunks/{index-Dy0Th0is.js → index-ClQg_X1N.js} +2 -2
  8. package/dist/chunks/{index-Dy0Th0is.js.map → index-ClQg_X1N.js.map} +1 -1
  9. package/dist/chunks/index-D5P-LWbg.js +245 -0
  10. package/dist/chunks/index-D5P-LWbg.js.map +1 -0
  11. package/dist/chunks/{index-DcVUXkXo.js → index-DRlQC-ev.js} +2 -2
  12. package/dist/chunks/{index-DcVUXkXo.js.map → index-DRlQC-ev.js.map} +1 -1
  13. package/dist/chunks/{index-DtqNHU7Y.js → index-DpUZXNJS.js} +2 -2
  14. package/dist/chunks/{index-DtqNHU7Y.js.map → index-DpUZXNJS.js.map} +1 -1
  15. package/dist/chunks/index-TkG8IO6q.js +239 -0
  16. package/dist/chunks/index-TkG8IO6q.js.map +1 -0
  17. package/dist/chunks/{index-Dz0E1YPE.js → index-w7pACyTw.js} +575 -416
  18. package/dist/chunks/index-w7pACyTw.js.map +1 -0
  19. package/dist/controls/SettingsMenu.d.ts +4 -0
  20. package/dist/controls/SettingsMenu.d.ts.map +1 -1
  21. package/dist/hls/SourceManager.d.ts +2 -0
  22. package/dist/hls/SourceManager.d.ts.map +1 -1
  23. package/dist/hope-player.js +1 -1
  24. package/dist/i18n/locales/en.d.ts.map +1 -1
  25. package/dist/i18n/locales/tr.d.ts.map +1 -1
  26. package/dist/i18n/types.d.ts +13 -0
  27. package/dist/i18n/types.d.ts.map +1 -1
  28. package/dist/index.d.ts +1 -1
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/plugins/rewarded/RewardedUnlock.d.ts +66 -0
  31. package/dist/plugins/rewarded/RewardedUnlock.d.ts.map +1 -0
  32. package/dist/plugins/rewarded/gpt.d.ts +8 -0
  33. package/dist/plugins/rewarded/gpt.d.ts.map +1 -0
  34. package/dist/plugins/rewarded/index.d.ts +7 -0
  35. package/dist/plugins/rewarded/index.d.ts.map +1 -0
  36. package/dist/plugins/sponsorship/SponsorshipLayer.d.ts +73 -0
  37. package/dist/plugins/sponsorship/SponsorshipLayer.d.ts.map +1 -0
  38. package/dist/plugins/sponsorship/index.d.ts +7 -0
  39. package/dist/plugins/sponsorship/index.d.ts.map +1 -0
  40. package/dist/types/index.d.ts +115 -0
  41. package/dist/types/index.d.ts.map +1 -1
  42. package/package.json +1 -1
  43. package/dist/chunks/index-Dz0E1YPE.js.map +0 -1
@@ -1,22 +1,22 @@
1
- var xe = Object.defineProperty;
2
- var ke = (a, t, e) => t in a ? xe(a, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : a[t] = e;
3
- var s = (a, t, e) => ke(a, typeof t != "symbol" ? t + "" : t, e);
4
- const we = '/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial}}}@layer theme{:root,:host{--hp-font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--hp-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--hp-color-black:#000;--hp-color-white:#fff;--hp-spacing:.25rem;--hp-container-xs:20rem;--hp-text-xs:.75rem;--hp-text-xs--line-height:calc(1 / .75);--hp-text-sm:.875rem;--hp-text-sm--line-height:calc(1.25 / .875);--hp-text-base:1rem;--hp-text-base--line-height: 1.5 ;--hp-text-lg:1.125rem;--hp-text-lg--line-height:calc(1.75 / 1.125);--hp-text-xl:1.25rem;--hp-text-xl--line-height:calc(1.75 / 1.25);--hp-text-2xl:1.5rem;--hp-text-2xl--line-height:calc(2 / 1.5);--hp-font-weight-medium:500;--hp-font-weight-semibold:600;--hp-radius-lg:.5rem;--hp-animate-spin:spin 1s linear infinite;--hp-aspect-video:16 / 9;--hp-default-transition-duration:.15s;--hp-default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--hp-default-font-family:var(--hp-font-sans);--hp-default-mono-font-family:var(--hp-font-mono);--hp-color-accent:#fff;--hp-color-on-accent:#0a0a0a;--hp-color-surface:#0a0a0a;--hp-color-surface-elev:#1a1a1a;--hp-color-on-surface:#fff;--hp-color-on-surface-muted:#a3a3a3}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--hp-default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--hp-default-font-feature-settings,normal);font-variation-settings:var(--hp-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--hp-default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--hp-default-mono-font-feature-settings,normal);font-variation-settings:var(--hp-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.hp\\:pointer-events-auto{pointer-events:auto}.hp\\:pointer-events-none{pointer-events:none}.hp\\:absolute{position:absolute}.hp\\:relative{position:relative}.hp\\:sticky{position:sticky}.hp\\:inset-0{top:0;right:0;bottom:0;left:0}.hp\\:inset-x-0{inset-inline:0}.hp\\:inset-y-0{inset-block:0}.hp\\:top-0{top:0}.hp\\:top-1{top:var(--hp-spacing)}.hp\\:top-1\\/2{top:50%}.hp\\:right-0{right:0}.hp\\:right-1{right:var(--hp-spacing)}.hp\\:right-2{right:calc(var(--hp-spacing) * 2)}.hp\\:bottom-0{bottom:0}.hp\\:bottom-full{bottom:100%}.hp\\:left-1\\/2{left:50%}.hp\\:z-10{z-index:10}.hp\\:z-20{z-index:20}.hp\\:z-30{z-index:30}.hp\\:z-40{z-index:40}.hp\\:m-0{margin:0}.hp\\:my-1{margin-block:var(--hp-spacing)}.hp\\:mt-0\\.5{margin-top:calc(var(--hp-spacing) * .5)}.hp\\:mt-1{margin-top:var(--hp-spacing)}.hp\\:mt-2{margin-top:calc(var(--hp-spacing) * 2)}.hp\\:mt-8{margin-top:calc(var(--hp-spacing) * 8)}.hp\\:mb-1{margin-bottom:var(--hp-spacing)}.hp\\:mb-2{margin-bottom:calc(var(--hp-spacing) * 2)}.hp\\:mb-16{margin-bottom:calc(var(--hp-spacing) * 16)}.hp\\:ml-1{margin-left:var(--hp-spacing)}.hp\\:block{display:block}.hp\\:flex{display:flex}.hp\\:grid{display:grid}.hp\\:hidden{display:none}.hp\\:inline-block{display:inline-block}.hp\\:aspect-\\[9\\/16\\]{aspect-ratio:9/16}.hp\\:aspect-video{aspect-ratio:var(--hp-aspect-video)}.hp\\:h-0\\.5{height:calc(var(--hp-spacing) * .5)}.hp\\:h-1{height:var(--hp-spacing)}.hp\\:h-1\\/3{height:33.3333%}.hp\\:h-3{height:calc(var(--hp-spacing) * 3)}.hp\\:h-6{height:calc(var(--hp-spacing) * 6)}.hp\\:h-7{height:calc(var(--hp-spacing) * 7)}.hp\\:h-8{height:calc(var(--hp-spacing) * 8)}.hp\\:h-9{height:calc(var(--hp-spacing) * 9)}.hp\\:h-10{height:calc(var(--hp-spacing) * 10)}.hp\\:h-16{height:calc(var(--hp-spacing) * 16)}.hp\\:h-20{height:calc(var(--hp-spacing) * 20)}.hp\\:h-\\[var\\(--hp-ctrl-btn-size\\)\\]{height:var(--hp-ctrl-btn-size)}.hp\\:h-\\[var\\(--hp-seek-hit-h\\)\\]{height:var(--hp-seek-hit-h)}.hp\\:h-\\[var\\(--hp-seek-track-h\\)\\]{height:var(--hp-seek-track-h)}.hp\\:h-full{height:100%}.hp\\:max-h-64{max-height:calc(var(--hp-spacing) * 64)}.hp\\:max-h-80{max-height:calc(var(--hp-spacing) * 80)}.hp\\:w-0{width:0}.hp\\:w-0\\.5{width:calc(var(--hp-spacing) * .5)}.hp\\:w-1{width:var(--hp-spacing)}.hp\\:w-1\\.5{width:calc(var(--hp-spacing) * 1.5)}.hp\\:w-3{width:calc(var(--hp-spacing) * 3)}.hp\\:w-6{width:calc(var(--hp-spacing) * 6)}.hp\\:w-7{width:calc(var(--hp-spacing) * 7)}.hp\\:w-8{width:calc(var(--hp-spacing) * 8)}.hp\\:w-9{width:calc(var(--hp-spacing) * 9)}.hp\\:w-10{width:calc(var(--hp-spacing) * 10)}.hp\\:w-14{width:calc(var(--hp-spacing) * 14)}.hp\\:w-16{width:calc(var(--hp-spacing) * 16)}.hp\\:w-48{width:calc(var(--hp-spacing) * 48)}.hp\\:w-72{width:calc(var(--hp-spacing) * 72)}.hp\\:w-\\[var\\(--hp-ctrl-btn-size\\)\\]{width:var(--hp-ctrl-btn-size)}.hp\\:w-full{width:100%}.hp\\:max-w-\\[50\\%\\]{max-width:50%}.hp\\:max-w-\\[80\\%\\]{max-width:80%}.hp\\:max-w-\\[85\\%\\]{max-width:85%}.hp\\:max-w-full{max-width:100%}.hp\\:max-w-xs{max-width:var(--hp-container-xs)}.hp\\:min-w-0{min-width:0}.hp\\:flex-1{flex:1}.hp\\:flex-shrink-0,.hp\\:shrink-0{flex-shrink:0}.hp\\:animate-spin{animation:var(--hp-animate-spin)}.hp\\:cursor-pointer{cursor:pointer}.hp\\:touch-none{touch-action:none}.hp\\:list-none{list-style-type:none}.hp\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.hp\\:flex-col{flex-direction:column}.hp\\:flex-wrap{flex-wrap:wrap}.hp\\:items-center{align-items:center}.hp\\:items-end{align-items:flex-end}.hp\\:justify-between{justify-content:space-between}.hp\\:justify-center{justify-content:center}.hp\\:gap-0\\.5{gap:calc(var(--hp-spacing) * .5)}.hp\\:gap-1{gap:var(--hp-spacing)}.hp\\:gap-1\\.5{gap:calc(var(--hp-spacing) * 1.5)}.hp\\:gap-2{gap:calc(var(--hp-spacing) * 2)}.hp\\:gap-3{gap:calc(var(--hp-spacing) * 3)}.hp\\:self-end{align-self:flex-end}.hp\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hp\\:overflow-hidden{overflow:hidden}.hp\\:overflow-y-auto{overflow-y:auto}.hp\\:rounded{border-radius:.25rem}.hp\\:rounded-full{border-radius:3.40282e38px}.hp\\:rounded-lg{border-radius:var(--hp-radius-lg)}.hp\\:border{border-style:var(--tw-border-style);border-width:1px}.hp\\:border-0{border-style:var(--tw-border-style);border-width:0}.hp\\:border-2{border-style:var(--tw-border-style);border-width:2px}.hp\\:border-\\[3px\\]{border-style:var(--tw-border-style);border-width:3px}.hp\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.hp\\:border-on-surface\\/10{border-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:border-on-surface\\/10{border-color:color-mix(in oklab,var(--hp-color-on-surface) 10%,transparent)}}.hp\\:border-on-surface\\/20{border-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:border-on-surface\\/20{border-color:color-mix(in oklab,var(--hp-color-on-surface) 20%,transparent)}}.hp\\:border-on-surface\\/30{border-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:border-on-surface\\/30{border-color:color-mix(in oklab,var(--hp-color-on-surface) 30%,transparent)}}.hp\\:border-t-accent{border-top-color:var(--hp-color-accent)}.hp\\:bg-accent,.hp\\:bg-accent\\/15{background-color:var(--hp-color-accent)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-accent\\/15{background-color:color-mix(in oklab,var(--hp-color-accent) 15%,transparent)}}.hp\\:bg-black,.hp\\:bg-black\\/30{background-color:var(--hp-color-black)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-black\\/30{background-color:color-mix(in oklab,var(--hp-color-black) 30%,transparent)}}.hp\\:bg-black\\/40{background-color:var(--hp-color-black)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-black\\/40{background-color:color-mix(in oklab,var(--hp-color-black) 40%,transparent)}}.hp\\:bg-black\\/60{background-color:var(--hp-color-black)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-black\\/60{background-color:color-mix(in oklab,var(--hp-color-black) 60%,transparent)}}.hp\\:bg-black\\/70{background-color:var(--hp-color-black)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-black\\/70{background-color:color-mix(in oklab,var(--hp-color-black) 70%,transparent)}}.hp\\:bg-black\\/85{background-color:var(--hp-color-black)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-black\\/85{background-color:color-mix(in oklab,var(--hp-color-black) 85%,transparent)}}.hp\\:bg-on-surface,.hp\\:bg-on-surface\\/20{background-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-on-surface\\/20{background-color:color-mix(in oklab,var(--hp-color-on-surface) 20%,transparent)}}.hp\\:bg-on-surface\\/25{background-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-on-surface\\/25{background-color:color-mix(in oklab,var(--hp-color-on-surface) 25%,transparent)}}.hp\\:bg-on-surface\\/40{background-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-on-surface\\/40{background-color:color-mix(in oklab,var(--hp-color-on-surface) 40%,transparent)}}.hp\\:bg-surface{background-color:var(--hp-color-surface)}.hp\\:bg-surface-elev{background-color:var(--hp-color-surface-elev)}.hp\\:bg-transparent{background-color:#0000}.hp\\:bg-white,.hp\\:bg-white\\/15{background-color:var(--hp-color-white)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-white\\/15{background-color:color-mix(in oklab,var(--hp-color-white) 15%,transparent)}}.hp\\:bg-white\\/30{background-color:var(--hp-color-white)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-white\\/30{background-color:color-mix(in oklab,var(--hp-color-white) 30%,transparent)}}.hp\\:bg-white\\/40{background-color:var(--hp-color-white)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-white\\/40{background-color:color-mix(in oklab,var(--hp-color-white) 40%,transparent)}}.hp\\:bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.hp\\:from-black\\/80{--tw-gradient-from:var(--hp-color-black)}@supports (color:color-mix(in lab,red,red)){.hp\\:from-black\\/80{--tw-gradient-from:color-mix(in oklab, var(--hp-color-black) 80%, transparent)}}.hp\\:from-black\\/80{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.hp\\:to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.hp\\:bg-cover{background-size:cover}.hp\\:bg-center{background-position:50%}.hp\\:object-cover{object-fit:cover}.hp\\:p-0{padding:0}.hp\\:p-1\\.5{padding:calc(var(--hp-spacing) * 1.5)}.hp\\:p-2{padding:calc(var(--hp-spacing) * 2)}.hp\\:p-3{padding:calc(var(--hp-spacing) * 3)}.hp\\:p-4{padding:calc(var(--hp-spacing) * 4)}.hp\\:px-1{padding-inline:var(--hp-spacing)}.hp\\:px-1\\.5{padding-inline:calc(var(--hp-spacing) * 1.5)}.hp\\:px-2{padding-inline:calc(var(--hp-spacing) * 2)}.hp\\:px-3{padding-inline:calc(var(--hp-spacing) * 3)}.hp\\:px-4{padding-inline:calc(var(--hp-spacing) * 4)}.hp\\:py-1{padding-block:var(--hp-spacing)}.hp\\:py-1\\.5{padding-block:calc(var(--hp-spacing) * 1.5)}.hp\\:py-2{padding-block:calc(var(--hp-spacing) * 2)}.hp\\:pt-6{padding-top:calc(var(--hp-spacing) * 6)}.hp\\:pb-2{padding-bottom:calc(var(--hp-spacing) * 2)}.hp\\:text-center{text-align:center}.hp\\:text-left{text-align:left}.hp\\:font-mono{font-family:var(--hp-font-mono)}.hp\\:text-2xl{font-size:var(--hp-text-2xl);line-height:var(--tw-leading,var(--hp-text-2xl--line-height))}.hp\\:text-base{font-size:var(--hp-text-base);line-height:var(--tw-leading,var(--hp-text-base--line-height))}.hp\\:text-lg{font-size:var(--hp-text-lg);line-height:var(--tw-leading,var(--hp-text-lg--line-height))}.hp\\:text-sm{font-size:var(--hp-text-sm);line-height:var(--tw-leading,var(--hp-text-sm--line-height))}.hp\\:text-xl{font-size:var(--hp-text-xl);line-height:var(--tw-leading,var(--hp-text-xl--line-height))}.hp\\:text-xs{font-size:var(--hp-text-xs);line-height:var(--tw-leading,var(--hp-text-xs--line-height))}.hp\\:text-\\[length\\:var\\(--hp-ctrl-icon-size\\)\\]{font-size:var(--hp-ctrl-icon-size)}.hp\\:leading-none{--tw-leading:1;line-height:1}.hp\\:font-medium{--tw-font-weight:var(--hp-font-weight-medium);font-weight:var(--hp-font-weight-medium)}.hp\\:font-semibold{--tw-font-weight:var(--hp-font-weight-semibold);font-weight:var(--hp-font-weight-semibold)}.hp\\:whitespace-nowrap{white-space:nowrap}.hp\\:text-accent{color:var(--hp-color-accent)}.hp\\:text-on-accent{color:var(--hp-color-on-accent)}.hp\\:text-on-surface{color:var(--hp-color-on-surface)}.hp\\:text-on-surface-muted{color:var(--hp-color-on-surface-muted)}.hp\\:text-white{color:var(--hp-color-white)}.hp\\:tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.hp\\:no-underline{text-decoration-line:none}.hp\\:underline{text-decoration-line:underline}.hp\\:opacity-0{opacity:0}.hp\\:opacity-60{opacity:.6}.hp\\:opacity-70{opacity:.7}.hp\\:opacity-80{opacity:.8}.hp\\:opacity-90{opacity:.9}.hp\\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hp\\:shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hp\\:drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.hp\\:transition-\\[height\\]{transition-property:height;transition-timing-function:var(--tw-ease,var(--hp-default-transition-timing-function));transition-duration:var(--tw-duration,var(--hp-default-transition-duration))}.hp\\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--hp-default-transition-timing-function));transition-duration:var(--tw-duration,var(--hp-default-transition-duration))}.hp\\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--hp-default-transition-timing-function));transition-duration:var(--tw-duration,var(--hp-default-transition-duration))}.hp\\:duration-100{--tw-duration:.1s;transition-duration:.1s}.hp\\:duration-150{--tw-duration:.15s;transition-duration:.15s}.hp\\:duration-200{--tw-duration:.2s;transition-duration:.2s}.hp\\:duration-300{--tw-duration:.3s;transition-duration:.3s}.hp\\:will-change-\\[opacity\\]{will-change:opacity}.hp\\:select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.hp\\:group-hover\\:h-\\[var\\(--hp-seek-track-h-hover\\)\\]:is(:where(.hp\\:group):hover *){height:var(--hp-seek-track-h-hover)}.hp\\:hover\\:bg-on-surface\\/5:hover{background-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:hover\\:bg-on-surface\\/5:hover{background-color:color-mix(in oklab,var(--hp-color-on-surface) 5%,transparent)}}.hp\\:hover\\:bg-on-surface\\/10:hover{background-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:hover\\:bg-on-surface\\/10:hover{background-color:color-mix(in oklab,var(--hp-color-on-surface) 10%,transparent)}}.hp\\:hover\\:opacity-80:hover{opacity:.8}}.hp\\:focus-visible\\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hp\\:focus-visible\\:ring-accent:focus-visible{--tw-ring-color:var(--hp-color-accent)}.hp\\:focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.hp\\:data-\\[active\\=true\\]\\:bg-accent\\/15[data-active=true]{background-color:var(--hp-color-accent)}@supports (color:color-mix(in lab,red,red)){.hp\\:data-\\[active\\=true\\]\\:bg-accent\\/15[data-active=true]{background-color:color-mix(in oklab,var(--hp-color-accent) 15%,transparent)}}.hp\\:data-\\[active\\=true\\]\\:text-on-surface[data-active=true]{color:var(--hp-color-on-surface)}}.hp-icon{font-variant:normal;text-transform:none;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:hope-icons;font-style:normal;font-weight:400;line-height:1}.hp-icon-check:before{content:""}.hp-icon-chevron-left:before{content:""}.hp-icon-close:before{content:""}.hp-icon-fullscreen-enter:before{content:""}.hp-icon-fullscreen-exit:before{content:""}.hp-icon-grid:before{content:""}.hp-icon-loop:before{content:""}.hp-icon-pause:before{content:""}.hp-icon-pip:before{content:""}.hp-icon-play:before{content:""}.hp-icon-settings:before{content:""}.hp-icon-skip-back:before{content:""}.hp-icon-skip-forward:before{content:""}.hp-icon-volume-high:before{content:""}.hp-icon-volume-low:before{content:""}.hp-icon-volume-muted:before{content:""}.hp-icon-warning:before{content:""}:host{--hp-radius:8px;--hp-chip-bg:#ffffff14;--hp-chip-bg-hover:#ffffff2e;--hp-chip-bg-active:#ffffff42;--hp-chip-border:#ffffff29;--hp-chip-border-hover:#ffffff4d;--hp-chip-blur:14px;--hp-chip-shadow:0 4px 18px #00000047, inset 0 1px 0 #ffffff12;--hp-chip-radius:10px;--hp-chip-text:var(--hp-color-on-surface,#fff);--hp-chrome-scrim:linear-gradient(to top, #00000080 0%, #0000003d 50%, #0000 100%);--hp-chrome-scrim-height:min(150px, 45%);--hp-chip-backdrop-brightness:.78;--hp-ctrl-shadow:drop-shadow(0 1px 1.5px #0000008c);--hp-panel-bg:#ffffffb8;--hp-panel-blur:26px;--hp-panel-border:#0f11171a;--hp-panel-text:#15171c;--hp-panel-text-muted:#5b6270;--hp-panel-text-shadow:none;--hp-ctrl-btn-size:32px;--hp-ctrl-icon-size:16px;--hp-seek-hit-h:16px;--hp-seek-track-h:4px;--hp-seek-track-h-hover:6px;--hp-seek-thumb-size:12px;--hp-tooltip-bg:#ffffffe6;--hp-tooltip-text:#15171c;--hp-tooltip-key-bg:#0f11171a;--hp-tooltip-key-text:#15171c;--hp-caption-font-size:16px;--hp-caption-bg:#000000bf;--hp-caption-text:#fff;--hp-caption-radius:4px;background:var(--hp-color-surface,#0a0a0a);width:100%;color:var(--hp-color-on-surface,#fff);border-radius:var(--hp-radius);font-family:system-ui,-apple-system,sans-serif;line-height:1;display:block}.hp-chip{background:var(--hp-chip-bg);border:1px solid var(--hp-chip-border);border-radius:var(--hp-chip-radius);-webkit-backdrop-filter:blur(var(--hp-chip-blur)) saturate(160%);box-shadow:var(--hp-chip-shadow);color:var(--hp-chip-text);transition:background-color .16s,border-color .16s,box-shadow .16s,transform .12s}.hp-chip:hover{background:var(--hp-chip-bg-hover);border-color:var(--hp-chip-border-hover)}button.hp-chip:active{background:var(--hp-chip-bg-active);transform:scale(.94)}.hp-chip:focus-visible{outline:2px solid var(--hp-color-accent,#fff);outline-offset:2px}.hp-chip-panel,.hp-chip-panel:hover{background:var(--hp-panel-bg);border-color:var(--hp-panel-border);-webkit-backdrop-filter:blur(var(--hp-panel-blur)) saturate(160%);text-shadow:var(--hp-panel-text-shadow,none)}.hp-chip-panel{--hp-color-on-surface:var(--hp-panel-text);--hp-color-on-surface-muted:var(--hp-panel-text-muted);color:var(--hp-panel-text)}.hp-tooltip{background:var(--hp-tooltip-bg);color:var(--hp-tooltip-text);border-radius:calc(var(--hp-radius) * .75);-webkit-backdrop-filter:blur(12px)saturate(160%);font-weight:500;box-shadow:0 4px 14px #00000059}.hp-tooltip-key{background:var(--hp-tooltip-key-bg);min-width:16px;height:16px;color:var(--hp-tooltip-key-text);text-transform:uppercase;border-radius:4px;justify-content:center;align-items:center;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;display:inline-flex}.hp-group{background:var(--hp-chip-bg);border:1px solid var(--hp-chip-border);-webkit-backdrop-filter:blur(var(--hp-chip-blur)) saturate(160%) brightness(var(--hp-chip-backdrop-brightness,1));box-shadow:var(--hp-chip-shadow);border-radius:9999px}.hp-group-left{position:relative}.hp-loading-ring{border-radius:inherit;pointer-events:none;opacity:0;filter:drop-shadow(0 0 3px var(--hp-color-accent,#fff));transition:opacity .22s;position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px}@supports (color:color-mix(in lab,red,red)){.hp-loading-ring{filter:drop-shadow(0 0 3px color-mix(in srgb,var(--hp-color-accent,#fff) 70%,transparent))}}.hp-loading-ring-mask{border-radius:inherit;-webkit-mask-composite:xor;padding:2px;position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor,source-over;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}.hp-loading-ring-mask>span{aspect-ratio:1;background:conic-gradient(from 0deg,transparent 0deg 150deg,var(--hp-color-accent,#fff) 260deg,var(--hp-color-accent,#fff) 340deg,transparent 360deg);width:max(100%,160px);position:absolute;top:50%;left:50%;translate:-50% -50%}@supports (color:color-mix(in lab,red,red)){.hp-loading-ring-mask>span{background:conic-gradient(from 0deg,transparent 0deg 150deg,color-mix(in srgb,var(--hp-color-accent,#fff) 30%,transparent) 260deg,var(--hp-color-accent,#fff) 340deg,transparent 360deg)}}.hp-loading-ring-mask>span{animation:1.1s linear infinite paused hp-loading-ring-spin}.hp-group-left[data-loading]>.hp-loading-ring{opacity:1}.hp-group-left[data-loading]>.hp-loading-ring .hp-loading-ring-mask>span{animation-play-state:running}@keyframes hp-loading-ring-spin{to{rotate:360deg}}@media(prefers-reduced-motion:reduce){.hp-loading-ring-mask>span{background:var(--hp-color-accent,#fff);animation:none}.hp-group-left[data-loading]>.hp-loading-ring{animation:1.6s ease-in-out infinite hp-loading-ring-pulse}}@keyframes hp-loading-ring-pulse{50%{opacity:.35}}.hp-center-play>.hp-chip{-webkit-backdrop-filter:blur(var(--hp-chip-blur)) saturate(160%) brightness(var(--hp-chip-backdrop-brightness,1))}.hp-group .hp-icon,.hp-group [part=time-display],.hp-group .hp-live-badge,.hp-group [part=live-clock],.hp-group .hp-skip-num,.hp-center-play .hp-icon{filter:var(--hp-ctrl-shadow,none)}.hp-chrome:before{content:"";height:var(--hp-chrome-scrim-height);background:var(--hp-chrome-scrim);pointer-events:none;position:absolute;bottom:0;left:0;right:0}.video-area[data-compact]>.hp-chrome:after{content:"";background:var(--hp-chrome-scrim);opacity:.7;pointer-events:none;height:min(90px,30%);position:absolute;top:0;left:0;right:0;transform:scaleY(-1)}.hp-group button.hp-chip{box-shadow:none;-webkit-backdrop-filter:none;background:0 0;border-color:#0000}.hp-group button.hp-chip:hover{background:var(--hp-chip-bg-hover)}.hp-group button.hp-chip:active{background:var(--hp-chip-bg-active)}:host([data-theme=glass-dark]),:host([data-theme=neo-dark]),:host([data-theme=mono]){--hp-panel-bg:#0a0a0e8c;--hp-panel-border:#ffffff1a;--hp-panel-text:#fff;--hp-panel-text-muted:#a3a3a3;--hp-panel-text-shadow:0 1px 3px #000000a6;--hp-tooltip-bg:#0a0a0aeb;--hp-tooltip-text:#fff;--hp-tooltip-key-bg:#ffffff2e;--hp-tooltip-key-text:#fff}:host([data-theme=glass-dark]){--hp-chip-bg:#0a0a0e73;--hp-chip-bg-hover:#0a0a0e9e;--hp-chip-bg-active:#0a0a0ebf;--hp-chip-border:#ffffff14;--hp-chip-border-hover:#ffffff29;--hp-chip-shadow:0 4px 18px #0006, inset 0 1px 0 #ffffff0a;--hp-panel-bg:#08080cb8;--hp-chip-backdrop-brightness:1}:host([data-theme=neo-dark]){--hp-chip-bg:#24242a;--hp-chip-bg-hover:#2a2a31;--hp-chip-bg-active:#1e1e23;--hp-chip-border:transparent;--hp-chip-border-hover:transparent;--hp-chip-blur:0px;--hp-chip-shadow:5px 5px 10px #00000080, -4px -4px 9px #ffffff09;--hp-chip-radius:12px;--hp-color-surface:#1b1b20;--hp-panel-bg:#1e1e23;--hp-panel-text-shadow:none;--hp-chrome-scrim:none;--hp-chip-backdrop-brightness:1;--hp-ctrl-shadow:none}:host([data-theme=neo-dark]) button.hp-chip:active{box-shadow:inset 3px 3px 6px #00000080,inset -2px -2px 5px #ffffff08}:host([data-theme=mono]){--hp-chip-bg:#ffffff0a;--hp-chip-bg-hover:#ffffff1a;--hp-chip-border:#ffffff14;--hp-chip-border-hover:#ffffff24;--hp-chip-blur:0px;--hp-chip-shadow:none;--hp-panel-bg:#0a0a0aeb;--hp-panel-text-shadow:none}@media(pointer:coarse){:host{--hp-ctrl-btn-size:40px;--hp-ctrl-icon-size:18px;--hp-seek-hit-h:22px;--hp-seek-track-h:5px;--hp-seek-track-h-hover:7px;--hp-seek-thumb-size:14px;--hp-caption-font-size:19px}}:host(:fullscreen),:host(:-webkit-full-screen){--hp-ctrl-btn-size:44px;--hp-ctrl-icon-size:20px;--hp-seek-hit-h:26px;--hp-seek-track-h:6px;--hp-seek-track-h-hover:8px;--hp-seek-thumb-size:18px;--hp-caption-font-size:22px}:host(:fullscreen) [part=control-bar],:host(:-webkit-full-screen) [part=control-bar]{padding:28px 20px 18px}.video-area{width:100%;aspect-ratio:var(--hp-aspect-ratio,16 / 9);border-radius:var(--hp-radius);background:var(--hp-color-surface,#0a0a0a);position:relative;overflow:hidden}.video-area[data-compact]{--hp-caption-font-size:13px}.video-area[data-story]{aspect-ratio:9/16;max-width:49.5vh;max-height:88vh;margin:0 auto}:host(:fullscreen),:host(:-webkit-full-screen){background:#000;border-radius:0}:host(:fullscreen) .hp-root,:host(:-webkit-full-screen) .hp-root{height:100%}:host(:fullscreen) .video-area,:host(:-webkit-full-screen) .video-area{aspect-ratio:auto;background:#000;border-radius:0;width:100%;height:100%}:host(:fullscreen) .video-area[data-story],:host(:-webkit-full-screen) .video-area[data-story]{aspect-ratio:9/16;width:auto;max-width:100%;height:100%;max-height:none;margin:0 auto}.media-layer{position:absolute;top:0;right:0;bottom:0;left:0}.media-layer video{object-fit:contain;background:#000;width:100%;height:100%}.hp-center-x{transform:translate(-50%)}.hp-center-y{transform:translateY(-50%)}.hp-chip-panel[data-drop]{margin-top:8px;margin-bottom:0;top:100%;bottom:auto}.hp-top-bar{pointer-events:none;display:flex;position:absolute;top:8px;right:8px}.hp-top-bar>*{pointer-events:auto}.hp-story-list-btn{top:calc(8px + var(--hp-ctrl-btn-size) + 18px);right:12px}:host([data-cursor-hidden]),:host([data-cursor-hidden]) *{cursor:none!important}.hp-unmute-badge{z-index:25;background:var(--hp-tooltip-bg);color:var(--hp-tooltip-text);-webkit-backdrop-filter:blur(12px)saturate(160%);font:inherit;cursor:pointer;border:0;border-radius:9999px;align-items:center;gap:6px;padding:6px 12px 6px 10px;font-size:13px;font-weight:600;display:none;position:absolute;top:10px;left:10px;box-shadow:0 4px 14px #00000059}@media(hover:none)and (pointer:coarse){.hp-volume{display:none!important}.hp-unmute-badge[data-visible]{display:inline-flex}}.hp-error-screen{z-index:30;background:var(--hp-color-surface);justify-content:center;align-items:center;padding:12px;display:none;position:absolute;top:0;right:0;bottom:0;left:0}@supports (color:color-mix(in lab,red,red)){.hp-error-screen{background:color-mix(in srgb,var(--hp-color-surface) 94%,transparent)}}.hp-error-screen{-webkit-backdrop-filter:blur(16px)saturate(140%);color:var(--hp-color-on-surface);text-align:center;container-type:size}.hp-error-screen[data-visible]{animation:.22s hp-error-in;display:flex}@keyframes hp-error-in{0%{opacity:0}}.hp-error-card{flex-direction:column;align-items:center;gap:10px;max-width:340px;display:flex}.hp-error-icon{border:1px solid var(--hp-color-on-surface);border-radius:9999px;place-items:center;width:48px;height:48px;display:grid}@supports (color:color-mix(in lab,red,red)){.hp-error-icon{border:1px solid color-mix(in srgb,var(--hp-color-on-surface) 18%,transparent)}}.hp-error-icon{background:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp-error-icon{background:color-mix(in srgb,var(--hp-color-on-surface) 8%,transparent)}}.hp-error-icon{margin-bottom:2px;font-size:22px}.hp-error-message{margin:0;font-size:14px;font-weight:600;line-height:1.45}.hp-error-code{color:var(--hp-color-on-surface-muted);font-variant-numeric:tabular-nums;margin:-4px 0 0;font-size:12px}.hp-error-retry{border:1px solid var(--hp-chip-border);background:var(--hp-chip-bg);color:var(--hp-color-on-surface);font:inherit;cursor:pointer;border-radius:9999px;align-items:center;gap:6px;margin-top:6px;padding:7px 14px 7px 12px;font-size:13px;font-weight:600;transition:background-color .15s,border-color .15s;display:inline-flex}.hp-error-retry:hover{background:var(--hp-chip-bg-hover);border-color:var(--hp-chip-border-hover)}.hp-error-retry:focus-visible{outline:2px solid var(--hp-color-accent);outline-offset:2px}@container (max-height:240px){.hp-error-card{gap:6px}.hp-error-icon{width:36px;height:36px;margin-bottom:0;font-size:16px}.hp-error-message{font-size:13px}.hp-error-code{margin-top:-2px;font-size:11px}.hp-error-retry{margin-top:2px;padding:5px 12px 5px 10px;font-size:12px}}.hp-context-menu,.hp-stats,.hp-debug{border:1px solid var(--hp-panel-border);background:var(--hp-panel-bg);-webkit-backdrop-filter:blur(var(--hp-panel-blur)) saturate(160%);color:var(--hp-panel-text);text-shadow:var(--hp-panel-text-shadow,none);border-radius:10px;position:absolute;box-shadow:0 8px 28px #00000059}.hp-context-menu{z-index:40;min-width:200px;padding:4px;font-size:13px;display:none}.hp-context-menu[data-open]{animation:.12s hp-context-menu-in;display:block}@keyframes hp-context-menu-in{0%{opacity:0;transform:scale(.97)}}.hp-context-menu-item{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:space-between;align-items:center;gap:16px;padding:8px 10px;display:flex}.hp-context-menu-item[data-info]{cursor:default;font-weight:600}button.hp-context-menu-item:hover,button.hp-context-menu-item:focus-visible{background:var(--hp-panel-text)}@supports (color:color-mix(in lab,red,red)){button.hp-context-menu-item:hover,button.hp-context-menu-item:focus-visible{background:color-mix(in srgb,var(--hp-panel-text) 10%,transparent)}}button.hp-context-menu-item:hover,button.hp-context-menu-item:focus-visible{outline:none}.hp-context-menu-item+.hp-context-menu-item{margin-top:2px}.hp-context-menu-meta{color:var(--hp-panel-text-muted);font-variant-numeric:tabular-nums;font-weight:500}.hp-stats{z-index:28;width:min(360px,100% - 20px);max-height:calc(100% - 20px);padding:8px 12px 10px;font-size:11.5px;top:10px;left:10px;overflow:auto}.hp-stats-header{justify-content:space-between;align-items:center;margin-bottom:6px;font-size:12px;font-weight:700;display:flex}.hp-stats-close{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:9999px;padding:4px;display:inline-flex}.hp-stats-close:hover{background:var(--hp-panel-text)}@supports (color:color-mix(in lab,red,red)){.hp-stats-close:hover{background:color-mix(in srgb,var(--hp-panel-text) 12%,transparent)}}.hp-stats-body{grid-template-columns:auto 1fr;gap:3px 12px;margin:0;display:grid}.hp-stats-body dt{color:var(--hp-panel-text-muted);white-space:nowrap}.hp-stats-body dd{text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:hidden}.hp-seek-fb{z-index:8;border:1px solid var(--hp-chip-border);background:var(--hp-chip-bg);-webkit-backdrop-filter:blur(var(--hp-chip-blur)) saturate(160%);box-shadow:var(--hp-chip-shadow);color:var(--hp-chip-text);pointer-events:none;opacity:0;border-radius:9999px;align-items:center;gap:10px;padding:12px 20px 12px 16px;transition:opacity .18s,translate .22s cubic-bezier(.2,.8,.2,1);display:flex;position:absolute;top:50%}.hp-seek-fb[data-side=forward]{right:7%;translate:14px -50%}.hp-seek-fb[data-side=back]{flex-direction:row-reverse;padding:12px 16px 12px 20px;left:7%;translate:-14px -50%}.hp-seek-fb[data-visible]{opacity:1;translate:0 -50%}.hp-seek-fb-chevrons{display:flex}.hp-seek-fb-chevrons svg{fill:currentColor;opacity:.25;width:16px;height:16px;margin:0 -3px;animation:.9s ease-in-out infinite hp-seek-fb-chevron}.hp-seek-fb[data-side=back] .hp-seek-fb-chevrons{transform:scaleX(-1)}.hp-seek-fb-chevrons svg:nth-child(2){animation-delay:.15s}.hp-seek-fb-chevrons svg:nth-child(3){animation-delay:.3s}@keyframes hp-seek-fb-chevron{0%,to{opacity:.25}40%{opacity:1}}.hp-seek-fb-value{white-space:nowrap;align-items:baseline;gap:3px;display:flex}.hp-seek-fb-num{font-variant-numeric:tabular-nums;font-size:20px;font-weight:700;line-height:1;display:inline-block}.hp-seek-fb-unit{opacity:.75;font-size:12px;font-weight:600}.hp-seek-fb-bump{animation:.26s cubic-bezier(.2,.8,.2,1) hp-seek-fb-bump}@keyframes hp-seek-fb-bump{0%{transform:scale(1.25)}to{transform:scale(1)}}.video-area[data-compact] .hp-seek-fb{padding:8px 12px}.video-area[data-compact] .hp-seek-fb[data-side=forward]{right:4%}.video-area[data-compact] .hp-seek-fb[data-side=back]{padding:8px 12px;left:4%}.video-area[data-compact] .hp-seek-fb-chevrons{display:none}.video-area[data-compact] .hp-seek-fb-num{font-size:16px}.hp-sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media(prefers-reduced-motion:reduce){.hp-seek-fb,.hp-seek-fb-chevrons svg,.hp-seek-fb-bump{transition:none;animation:none}.hp-seek-fb-chevrons svg{opacity:.8}}.hp-skip-btn{position:relative}.hp-skip-btn>.hp-icon{font-size:calc(var(--hp-ctrl-icon-size) * 1.45)}.hp-skip-num{padding-top:calc(var(--hp-ctrl-icon-size) * .14);font-size:calc(var(--hp-ctrl-icon-size) * .56);letter-spacing:-.02em;font-variant-numeric:tabular-nums;pointer-events:none;justify-content:center;align-items:center;font-weight:700;line-height:1;display:flex;position:absolute;top:0;right:0;bottom:0;left:0}.hp-skip-num[data-long]{font-size:calc(var(--hp-ctrl-icon-size) * .42)}.hp-skip-btn:disabled{opacity:.4;cursor:default}.hp-center-play>.hp-chip{z-index:7;position:relative}.video-area[data-center-play-shifted] .hp-center-play>.hp-chip{width:var(--hp-center-play-size);height:var(--hp-center-play-size);translate:var(--hp-center-play-shift-x,0px) var(--hp-center-play-shift)}.video-area[data-pause-ad-ready]>:is(.media-layer,.hp-chrome,.hp-center-play,.hp-caption-layer,.hp-error-screen,.hp-mini-progress){right:var(--hp-pause-ad-w,0px);transition:right .38s cubic-bezier(.2,.8,.2,1),opacity .2s}.video-area[data-pause-ad] .media-layer video{object-fit:cover}.hp-pause-ad{z-index:25;width:var(--hp-pause-ad-panel-w,332px);box-sizing:border-box;background:var(--hp-color-surface,#0a0a0a);color:var(--hp-color-on-surface,#fff);visibility:hidden;flex-direction:column;justify-content:center;gap:10px;padding:12px 16px;transition:transform .38s cubic-bezier(.2,.8,.2,1),visibility 0s linear .38s;display:flex;position:absolute;top:0;bottom:0;right:0;transform:translate(100%)}.hp-pause-ad[data-open]{visibility:visible;transition:transform .38s cubic-bezier(.2,.8,.2,1);transform:none}.hp-pause-ad-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.hp-pause-ad-label{color:var(--hp-color-on-surface-muted,#ffffffb3);font-size:13px;font-weight:600}.hp-pause-ad-close{width:28px;height:28px;color:var(--hp-color-on-surface,#fff);cursor:pointer;background:0 0;border:0;border-radius:9999px;justify-content:center;align-items:center;padding:0;transition:background-color .15s;display:inline-flex}.hp-pause-ad-close:hover{background:var(--hp-chip-bg-hover)}.hp-pause-ad-body{border-radius:8px;justify-content:center;display:flex;overflow:hidden}.hp-pause-ad-resume{border:1px solid var(--hp-chip-border);background:var(--hp-chip-bg);color:var(--hp-color-on-surface,#fff);font:inherit;cursor:pointer;border-radius:9999px;align-self:stretch;padding:9px 14px;font-size:13px;font-weight:600;transition:background-color .15s,border-color .15s}.hp-pause-ad-resume:hover{background:var(--hp-chip-bg-hover);border-color:var(--hp-chip-border-hover)}.hp-pause-ad-close:focus-visible,.hp-pause-ad-resume:focus-visible{outline:2px solid var(--hp-color-accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){.video-area[data-pause-ad-ready]>:is(.media-layer,.hp-chrome,.hp-center-play,.hp-caption-layer,.hp-error-screen,.hp-mini-progress),.hp-pause-ad,.hp-pause-ad[data-open]{transition:none}}.hp-seek-thumb{width:var(--hp-seek-thumb-size);height:var(--hp-seek-thumb-size);background:var(--hp-color-accent);will-change:translate,scale;pointer-events:none;z-index:2;border-radius:9999px;transition:scale .15s;position:absolute;left:0;scale:.5}.hp-seekbar:hover .hp-seek-thumb,.hp-seekbar:active .hp-seek-thumb,.hp-seekbar:focus-visible .hp-seek-thumb{scale:1}.hp-seekbar[data-no-duration] .hp-seek-thumb{display:none}.hp-seek-hover-dot{width:var(--hp-seek-track-h-hover);height:var(--hp-seek-track-h-hover);background:var(--hp-color-on-surface);opacity:0;pointer-events:none;z-index:1;border-radius:9999px;transition:opacity .12s;position:absolute;top:50%;left:0;box-shadow:0 0 0 1px #00000073}.hp-seek-hover-dot[data-visible]{opacity:.9}.hp-mini-progress{z-index:6;pointer-events:none;background:var(--hp-color-on-surface);height:1px;position:absolute;bottom:0;left:0;right:0}@supports (color:color-mix(in lab,red,red)){.hp-mini-progress{background:color-mix(in srgb,var(--hp-color-on-surface) 25%,transparent)}}.hp-mini-progress{opacity:0;transition:opacity .2s}.hp-mini-progress[data-visible]:not([data-disabled]){opacity:1}.hp-mini-progress-fill{transform-origin:0;will-change:transform;position:absolute;top:0;right:0;bottom:0;left:0;transform:scaleX(0)}.hp-mini-progress-buffered{background:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp-mini-progress-buffered{background:color-mix(in srgb,var(--hp-color-on-surface) 40%,transparent)}}.hp-mini-progress-played{background:var(--hp-color-accent)}.hp-seek-time{border-radius:calc(var(--hp-radius) * .75);background:var(--hp-tooltip-bg);color:var(--hp-tooltip-text);-webkit-backdrop-filter:blur(12px)saturate(160%);font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;visibility:hidden;z-index:20;padding:3px 7px;font-size:12px;font-weight:500;position:absolute;bottom:calc(100% + 8px);left:0;box-shadow:0 4px 14px #00000059}.hp-seek-time[data-visible]{visibility:visible}.hp-sprite-tooltip{pointer-events:none;visibility:hidden;z-index:20;flex-direction:column;align-items:center;gap:4px;display:flex;position:absolute;bottom:calc(100% + 8px);left:0}.hp-sprite-tooltip[data-visible]{visibility:visible}.hp-sprite-image{border-radius:calc(var(--hp-radius) * .75);border:2px solid var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp-sprite-image{border:2px solid color-mix(in srgb,var(--hp-color-on-surface) 85%,transparent)}}.hp-sprite-image{background-color:#000;background-repeat:no-repeat;box-shadow:0 4px 14px #00000059}.hp-sprite-time{background:var(--hp-tooltip-bg);color:var(--hp-tooltip-text);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:4px;padding:2px 6px;font-size:12px}.hp-live-badge{height:var(--hp-ctrl-btn-size);color:var(--hp-color-on-surface);font:inherit;letter-spacing:.04em;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:9999px;align-items:center;gap:6px;padding:0 8px;font-size:12px;font-weight:600;display:inline-flex}.hp-live-badge:hover{background:var(--hp-chip-bg-hover)}.hp-live-badge:focus-visible{outline:2px solid var(--hp-color-accent);outline-offset:2px}.hp-live-dot{background:var(--hp-live-color,red);border-radius:50%;width:8px;height:8px;transition:background-color .16s}.hp-live-badge[data-behind]{color:var(--hp-color-on-surface-muted)}.hp-live-badge[data-behind] .hp-live-dot{background:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp-live-badge[data-behind] .hp-live-dot{background:color-mix(in srgb,var(--hp-color-on-surface) 45%,transparent)}}.hp-chapters{pointer-events:none;inset-inline:0;align-items:center;gap:2px;display:flex;position:absolute;top:0;bottom:0}.hp-chapter{min-width:1px;height:var(--hp-seek-track-h);background:var(--hp-color-on-surface);border-radius:1px;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.hp-chapter{background:color-mix(in srgb,var(--hp-color-on-surface) 25%,transparent)}}.hp-chapter{transition:height .15s}.hp-seekbar:hover .hp-chapter{height:var(--hp-seek-track-h-hover)}.hp-seekbar .hp-chapter[data-hover]{height:calc(var(--hp-seek-track-h-hover) * 1.6)}.hp-chapter-fill{transform-origin:0;will-change:transform;position:absolute;top:0;right:0;bottom:0;left:0;transform:scaleX(0)}.hp-chapter-buffered{background:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp-chapter-buffered{background:color-mix(in srgb,var(--hp-color-on-surface) 40%,transparent)}}.hp-chapter-played{background:var(--hp-color-accent)}.hp-chapter-tooltip{background:var(--hp-tooltip-bg);max-width:240px;color:var(--hp-tooltip-text);border-radius:calc(var(--hp-radius) * .75);-webkit-backdrop-filter:blur(12px)saturate(160%);text-align:center;pointer-events:none;white-space:nowrap;visibility:hidden;z-index:40;flex-direction:column;align-items:center;gap:2px;padding:4px 8px;font-size:12px;line-height:1.3;display:flex;position:absolute;bottom:calc(100% + 6px);left:0;box-shadow:0 4px 14px #00000059}.hp-chapter-tooltip[data-visible]{visibility:visible}.hp-chapter-tooltip-title{text-overflow:ellipsis;max-width:100%;font-weight:600;overflow:hidden}.hp-chapter-tooltip-time{opacity:.75;font-variant-numeric:tabular-nums}:host([data-sticky]){z-index:2147483000;border-radius:var(--hp-radius);box-shadow:0 8px 28px #00000073;width:min(360px,92vw)!important;aspect-ratio:var(--hp-aspect-ratio,16 / 9)!important;position:fixed!important}:host([data-sticky][data-sticky-corner=br]){inset:auto 16px 16px auto}:host([data-sticky][data-sticky-corner=bl]){inset:auto auto 16px 16px}:host([data-sticky][data-sticky-corner=tr]){inset:16px 16px auto auto}:host([data-sticky][data-sticky-corner=tl]){inset:16px auto auto 16px}.hp-caption-layer{z-index:5;pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0}.hp-caption-bubble{background:var(--hp-caption-bg);width:max-content;max-width:86%;color:var(--hp-caption-text);border-radius:var(--hp-caption-radius);font-size:calc(var(--hp-caption-font-size) * var(--hp-caption-size-multiplier,1));text-align:center;white-space:pre-line;cursor:grab;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;padding:.3em .6em;line-height:1.4;transition:transform .24s cubic-bezier(.25,.8,.25,1);display:none;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.hp-caption-bubble.hp-caption-visible{display:inline-block}.hp-caption-bubble.hp-caption-dragging,.hp-caption-bubble.hp-caption-no-transition{transition:none}.hp-caption-bubble.hp-caption-dragging{cursor:grabbing}[part=ad-layer][data-nonlinear]{top:auto;bottom:var(--hp-nonlinear-ad-offset,72px);height:var(--hp-nonlinear-ad-height,33%);pointer-events:none}[part=ad-layer][data-nonlinear] *{pointer-events:none}[part=ad-layer][data-nonlinear] :is(iframe,img,a,button){pointer-events:auto}.hp-debug{--hp-panel-text:#f1f1f4;--hp-panel-text-muted:#f1f1f49e;--hp-panel-border:#ffffff1f;text-shadow:none;z-index:30;background:#0e0e12f2;flex-direction:column;min-width:0;font-size:12px;line-height:1.45;display:flex;top:8px;right:8px;bottom:8px;left:8px;overflow:hidden}.hp-debug:focus{outline:none}.hp-debug-header{border-bottom:1px solid var(--hp-panel-border);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:8px 8px 8px 12px;display:flex}.hp-debug-title{white-space:nowrap;align-items:center;gap:8px;min-width:0;font-size:13px;font-weight:700;display:flex}.hp-debug-count{font-variant-numeric:tabular-nums;background:#f8717138;border-radius:9999px;padding:1px 7px;font-size:11px}.hp-debug-count:empty{display:none}.hp-debug-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.hp-debug-btn{border:1px solid var(--hp-panel-border);color:inherit;font:inherit;cursor:pointer;background:0 0;border-radius:9999px;padding:4px 10px;font-size:11.5px}.hp-debug-btn:hover:not(:disabled){background:var(--hp-panel-text)}@supports (color:color-mix(in lab,red,red)){.hp-debug-btn:hover:not(:disabled){background:color-mix(in srgb,var(--hp-panel-text) 12%,transparent)}}.hp-debug-btn:disabled{opacity:.45;cursor:default}.hp-debug-list{overscroll-behavior:contain;flex:1;min-height:0;margin:0;padding:6px 12px 10px;list-style:none;overflow:hidden auto}.hp-debug-row{border-left:2px solid var(--hp-panel-text);padding:8px 0 8px 10px}@supports (color:color-mix(in lab,red,red)){.hp-debug-row{border-left:2px solid color-mix(in srgb,var(--hp-panel-text) 25%,transparent)}}.hp-debug-row{min-width:0}.hp-debug-row+.hp-debug-row{margin-top:6px}.hp-debug-row[data-fatal]{border-left-color:#f87171}.hp-debug-row-head{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:2px;display:flex}.hp-debug-time{color:var(--hp-panel-text-muted);font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.hp-debug-source,.hp-debug-fatal{background:var(--hp-panel-text);border-radius:9999px;padding:1px 7px;font-size:10.5px;font-weight:600}@supports (color:color-mix(in lab,red,red)){.hp-debug-source,.hp-debug-fatal{background:color-mix(in srgb,var(--hp-panel-text) 12%,transparent)}}.hp-debug-source[data-source=ads]{background:#f5c4513d}.hp-debug-source[data-source=stream],.hp-debug-source[data-source=media]{background:#60a5fa3d}.hp-debug-fatal{background:#f8717147}.hp-debug-message{overflow-wrap:anywhere;font-weight:600}.hp-debug-repeat{color:var(--hp-panel-text-muted);font-weight:500}.hp-debug-details{grid-template-columns:max-content minmax(0,1fr);gap:1px 10px;margin:4px 0 0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;display:grid}.hp-debug-details dt{color:var(--hp-panel-text-muted)}.hp-debug-details dd{overflow-wrap:anywhere;min-width:0;margin:0}.hp-debug-empty{color:var(--hp-panel-text-muted);margin:auto;padding:16px}.hp-debug-empty[hidden]{display:none}.hp-ad-return{z-index:25;color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#0e0e12d1;border:1px solid #ffffff40;border-radius:999px;padding:10px 16px;font:600 14px/1.2 system-ui,-apple-system,sans-serif;animation:.2s ease-out hp-ad-return-in;position:absolute;bottom:64px;right:12px}@keyframes hp-ad-return-in{0%{opacity:0;transform:translateY(6px)}}:host([data-audio]) .hp-center-play{display:none}.hp-audio{z-index:1;text-align:left;pointer-events:none;color:#fff;background:linear-gradient(160deg,#2a1f2b,#0c0c10);background:radial-gradient(80% 90% at 20% 10%,var(--hp-color-accent,#e5484d),transparent 70%),linear-gradient(160deg,#1d1d24,#0c0c10);position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.hp-audio{background:radial-gradient(80% 90% at 20% 10%,color-mix(in srgb,var(--hp-color-accent,#e5484d) 38%,transparent),transparent 70%),linear-gradient(160deg,#1d1d24,#0c0c10)}}.hp-audio-backdrop{position:absolute;top:-8%;right:-8%;bottom:-8%;left:-8%}.hp-audio-backdrop img{object-fit:cover;filter:blur(28px)saturate(1.3)brightness(.55);width:100%;height:100%;transform:scale(1.08)}.hp-audio:not([data-cover]) .hp-audio-backdrop,.hp-audio:not([data-cover]) .hp-audio-sleeve img{display:none}.hp-audio-meta{z-index:3;text-shadow:0 1px 6px #0009;line-height:1.25;display:none;position:absolute;top:12px;left:14px;right:64px}.hp-audio[data-meta] .hp-audio-meta{display:block}.hp-audio-title{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:700;overflow:hidden}.hp-audio-artist{opacity:.8;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:12.5px;overflow:hidden}.hp-audio-area{inset:0 0 var(--hp-audio-bottom-space,66px) 0;justify-content:center;align-items:center;display:flex;position:absolute}.hp-audio[data-meta] .hp-audio-area{top:44px}.hp-audio-deck{height:var(--hp-deck-h,0px);flex:none;align-items:center;display:flex;position:relative}.hp-audio[data-position=left] .hp-audio-deck{flex-direction:row-reverse}.hp-audio-sleeve{z-index:2;width:var(--hp-deck-h,0px);height:var(--hp-deck-h,0px);background:radial-gradient(70% 70% at 30% 25%,#e5484d,#0000 75%),#26262d;background:radial-gradient(70% 70% at 30% 25%,var(--hp-color-accent,#e5484d),transparent 75%),#26262d;border-radius:6px;flex:none;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.hp-audio-sleeve{background:radial-gradient(70% 70% at 30% 25%,color-mix(in srgb,var(--hp-color-accent,#e5484d) 70%,#fff 0%),transparent 75%),#26262d}}.hp-audio-sleeve{box-shadow:0 18px 40px -12px #000000bf,0 0 0 1px #ffffff14}.hp-audio-sleeve img{object-fit:cover;width:100%;height:100%;display:block}.hp-audio-sleeve[hidden],.hp-vinyl[hidden],.hp-tonearm-holder[hidden]{display:none}.hp-vinyl{z-index:1;width:calc(var(--hp-deck-h,0px) * .96);height:calc(var(--hp-deck-h,0px) * .96);pointer-events:auto;touch-action:none;-webkit-tap-highlight-color:transparent;filter:drop-shadow(0 14px 26px #0009);border-radius:50%;outline:none;flex:none;transition:margin .45s cubic-bezier(.2,.8,.2,1);position:relative}.hp-audio[data-position=right] .hp-vinyl{margin-left:calc(var(--hp-deck-h) * -.56)}.hp-audio[data-position=left] .hp-vinyl{margin-right:calc(var(--hp-deck-h) * -.56)}.hp-audio[data-position=right][data-playing] .hp-vinyl{margin-left:calc(var(--hp-deck-h) * -.46)}.hp-audio[data-position=left][data-playing] .hp-vinyl{margin-right:calc(var(--hp-deck-h) * -.46)}.hp-audio:not([data-laid-out]) .hp-vinyl{transition:none}.hp-vinyl[data-scratch]:not([data-live]){cursor:grab}.hp-audio[data-scratching] .hp-vinyl{cursor:grabbing}.hp-vinyl:focus-visible{box-shadow:0 0 0 3px #ffffffb3;box-shadow:0 0 0 3px var(--hp-color-accent,#e5484d)}@supports (color:color-mix(in lab,red,red)){.hp-vinyl:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--hp-color-accent,#e5484d) 80%,transparent)}}.hp-vinyl-disc{will-change:transform;position:absolute;top:0;right:0;bottom:0;left:0}.hp-vinyl-disc svg,.hp-tonearm svg{width:100%;height:100%;display:block}.hp-vinyl-sheen{pointer-events:none;background:conic-gradient(from 200deg,#0000,#ffffff21 22deg,#0000 48deg,#0000 180deg,#ffffff17 205deg,#0000 232deg);border-radius:50%;position:absolute;top:0;right:0;bottom:0;left:0;-webkit-mask:radial-gradient(circle,#0000 0 35%,#000 36% 99%,#0000 100%);mask:radial-gradient(circle,#0000 0 35%,#000 36% 99%,#0000 100%)}.hp-tonearm-holder{pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0}.hp-audio[data-position=left] .hp-tonearm-holder{transform:scaleX(-1)}.hp-tonearm{transform-origin:70% 11%;filter:drop-shadow(0 6px 8px #00000080);width:46%;height:92%;transition:transform .6s cubic-bezier(.3,.7,.2,1);position:absolute;top:-6%;right:-14%;transform:rotate(-26deg)}.hp-audio[data-playing] .hp-tonearm{transform:rotate(0)}@media(prefers-reduced-motion:reduce){.hp-vinyl,.hp-tonearm{transition:none}}.hp-audio[data-short][data-meta] .hp-audio-meta{display:none}.hp-audio[data-short][data-meta] .hp-audio-area{top:6px}[part=ad-layer][data-audio-ad]{background:0 0}[part=ad-layer][data-audio-ad] video{opacity:0}.hp-audio:after{content:"";pointer-events:none;z-index:2;background:linear-gradient(#0000,#00000047 45%,#0000009e);height:min(140px,45%);position:absolute;bottom:0;left:0;right:0}:host([data-audio-compact]) .video-area{aspect-ratio:auto;height:var(--hp-audio-bar-height,84px);overflow:visible}:host([data-audio-compact]) .hp-audio{border-radius:var(--hp-radius);background:linear-gradient(120deg,#24242c,#141418);background:linear-gradient(120deg,var(--hp-color-accent,#e5484d),transparent 60%),var(--hp-color-surface,#141418)}@supports (color:color-mix(in lab,red,red)){:host([data-audio-compact]) .hp-audio{background:linear-gradient(120deg,color-mix(in srgb,var(--hp-color-accent,#e5484d) 16%,transparent),transparent 60%),var(--hp-color-surface,#141418)}}:host([data-audio-compact]) .hp-audio>*,:host([data-audio-compact]) .hp-audio:after,:host([data-audio-compact]) .hp-caption-layer,:host([data-audio-compact]) .hp-loading-spinner,:host([data-audio-compact]) .hp-chrome:before,:host([data-audio-compact]) .hp-chrome:after{display:none}.hp-bar-meta{min-width:0;color:var(--hp-color-on-surface,#fff);pointer-events:none;align-items:center;gap:10px;padding:0 6px;display:flex}.hp-bar-meta[data-empty] .hp-bar-text{display:none}.hp-bar-text{flex-direction:column;min-width:0;line-height:1.25;display:flex}.hp-bar-title{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.hp-bar-sub{opacity:.72;white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.hp-bar-sub:empty{display:none}.hp-bar-eq{flex:none;align-items:flex-end;gap:2px;width:14px;height:14px;display:inline-flex}.hp-bar-eq i{background:var(--hp-color-accent,#fff);border-radius:1px;flex:1;height:30%;transition:height .2s}.hp-bar-meta[data-playing] .hp-bar-eq i{animation:.9s ease-in-out infinite alternate hp-bar-eq}.hp-bar-meta[data-playing] .hp-bar-eq i:nth-child(2){animation-duration:.7s;animation-delay:-.3s}.hp-bar-meta[data-playing] .hp-bar-eq i:nth-child(3){animation-duration:1.1s;animation-delay:-.6s}@keyframes hp-bar-eq{0%{height:25%}to{height:100%}}@media(prefers-reduced-motion:reduce){.hp-bar-meta[data-playing] .hp-bar-eq i{height:70%;animation:none}}@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 G() {
1
+ var we = Object.defineProperty;
2
+ var Ee = (n, t, e) => t in n ? we(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e;
3
+ var s = (n, t, e) => Ee(n, typeof t != "symbol" ? t + "" : t, e);
4
+ const Ce = '/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial}}}@layer theme{:root,:host{--hp-font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--hp-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--hp-color-black:#000;--hp-color-white:#fff;--hp-spacing:.25rem;--hp-container-xs:20rem;--hp-text-xs:.75rem;--hp-text-xs--line-height:calc(1 / .75);--hp-text-sm:.875rem;--hp-text-sm--line-height:calc(1.25 / .875);--hp-text-base:1rem;--hp-text-base--line-height: 1.5 ;--hp-text-lg:1.125rem;--hp-text-lg--line-height:calc(1.75 / 1.125);--hp-text-xl:1.25rem;--hp-text-xl--line-height:calc(1.75 / 1.25);--hp-text-2xl:1.5rem;--hp-text-2xl--line-height:calc(2 / 1.5);--hp-font-weight-medium:500;--hp-font-weight-semibold:600;--hp-radius-lg:.5rem;--hp-animate-spin:spin 1s linear infinite;--hp-aspect-video:16 / 9;--hp-default-transition-duration:.15s;--hp-default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--hp-default-font-family:var(--hp-font-sans);--hp-default-mono-font-family:var(--hp-font-mono);--hp-color-accent:#fff;--hp-color-on-accent:#0a0a0a;--hp-color-surface:#0a0a0a;--hp-color-surface-elev:#1a1a1a;--hp-color-on-surface:#fff;--hp-color-on-surface-muted:#a3a3a3}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--hp-default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--hp-default-font-feature-settings,normal);font-variation-settings:var(--hp-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--hp-default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--hp-default-mono-font-feature-settings,normal);font-variation-settings:var(--hp-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.hp\\:pointer-events-auto{pointer-events:auto}.hp\\:pointer-events-none{pointer-events:none}.hp\\:absolute{position:absolute}.hp\\:relative{position:relative}.hp\\:sticky{position:sticky}.hp\\:inset-0{top:0;right:0;bottom:0;left:0}.hp\\:inset-x-0{inset-inline:0}.hp\\:inset-y-0{inset-block:0}.hp\\:top-0{top:0}.hp\\:top-1{top:var(--hp-spacing)}.hp\\:top-1\\/2{top:50%}.hp\\:right-0{right:0}.hp\\:right-1{right:var(--hp-spacing)}.hp\\:right-2{right:calc(var(--hp-spacing) * 2)}.hp\\:bottom-0{bottom:0}.hp\\:bottom-full{bottom:100%}.hp\\:left-1\\/2{left:50%}.hp\\:z-10{z-index:10}.hp\\:z-20{z-index:20}.hp\\:z-30{z-index:30}.hp\\:z-40{z-index:40}.hp\\:m-0{margin:0}.hp\\:my-1{margin-block:var(--hp-spacing)}.hp\\:mt-0\\.5{margin-top:calc(var(--hp-spacing) * .5)}.hp\\:mt-1{margin-top:var(--hp-spacing)}.hp\\:mt-2{margin-top:calc(var(--hp-spacing) * 2)}.hp\\:mt-8{margin-top:calc(var(--hp-spacing) * 8)}.hp\\:mb-1{margin-bottom:var(--hp-spacing)}.hp\\:mb-2{margin-bottom:calc(var(--hp-spacing) * 2)}.hp\\:mb-16{margin-bottom:calc(var(--hp-spacing) * 16)}.hp\\:ml-1{margin-left:var(--hp-spacing)}.hp\\:block{display:block}.hp\\:flex{display:flex}.hp\\:grid{display:grid}.hp\\:hidden{display:none}.hp\\:inline-block{display:inline-block}.hp\\:aspect-\\[9\\/16\\]{aspect-ratio:9/16}.hp\\:aspect-video{aspect-ratio:var(--hp-aspect-video)}.hp\\:h-0\\.5{height:calc(var(--hp-spacing) * .5)}.hp\\:h-1{height:var(--hp-spacing)}.hp\\:h-1\\/3{height:33.3333%}.hp\\:h-3{height:calc(var(--hp-spacing) * 3)}.hp\\:h-6{height:calc(var(--hp-spacing) * 6)}.hp\\:h-7{height:calc(var(--hp-spacing) * 7)}.hp\\:h-8{height:calc(var(--hp-spacing) * 8)}.hp\\:h-9{height:calc(var(--hp-spacing) * 9)}.hp\\:h-10{height:calc(var(--hp-spacing) * 10)}.hp\\:h-16{height:calc(var(--hp-spacing) * 16)}.hp\\:h-20{height:calc(var(--hp-spacing) * 20)}.hp\\:h-\\[var\\(--hp-ctrl-btn-size\\)\\]{height:var(--hp-ctrl-btn-size)}.hp\\:h-\\[var\\(--hp-seek-hit-h\\)\\]{height:var(--hp-seek-hit-h)}.hp\\:h-\\[var\\(--hp-seek-track-h\\)\\]{height:var(--hp-seek-track-h)}.hp\\:h-full{height:100%}.hp\\:max-h-64{max-height:calc(var(--hp-spacing) * 64)}.hp\\:max-h-80{max-height:calc(var(--hp-spacing) * 80)}.hp\\:w-0{width:0}.hp\\:w-0\\.5{width:calc(var(--hp-spacing) * .5)}.hp\\:w-1{width:var(--hp-spacing)}.hp\\:w-1\\.5{width:calc(var(--hp-spacing) * 1.5)}.hp\\:w-3{width:calc(var(--hp-spacing) * 3)}.hp\\:w-6{width:calc(var(--hp-spacing) * 6)}.hp\\:w-7{width:calc(var(--hp-spacing) * 7)}.hp\\:w-8{width:calc(var(--hp-spacing) * 8)}.hp\\:w-9{width:calc(var(--hp-spacing) * 9)}.hp\\:w-10{width:calc(var(--hp-spacing) * 10)}.hp\\:w-14{width:calc(var(--hp-spacing) * 14)}.hp\\:w-16{width:calc(var(--hp-spacing) * 16)}.hp\\:w-48{width:calc(var(--hp-spacing) * 48)}.hp\\:w-72{width:calc(var(--hp-spacing) * 72)}.hp\\:w-\\[var\\(--hp-ctrl-btn-size\\)\\]{width:var(--hp-ctrl-btn-size)}.hp\\:w-full{width:100%}.hp\\:max-w-\\[50\\%\\]{max-width:50%}.hp\\:max-w-\\[80\\%\\]{max-width:80%}.hp\\:max-w-\\[85\\%\\]{max-width:85%}.hp\\:max-w-full{max-width:100%}.hp\\:max-w-xs{max-width:var(--hp-container-xs)}.hp\\:min-w-0{min-width:0}.hp\\:flex-1{flex:1}.hp\\:flex-shrink-0,.hp\\:shrink-0{flex-shrink:0}.hp\\:animate-spin{animation:var(--hp-animate-spin)}.hp\\:cursor-pointer{cursor:pointer}.hp\\:touch-none{touch-action:none}.hp\\:list-none{list-style-type:none}.hp\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.hp\\:flex-col{flex-direction:column}.hp\\:flex-wrap{flex-wrap:wrap}.hp\\:items-center{align-items:center}.hp\\:items-end{align-items:flex-end}.hp\\:justify-between{justify-content:space-between}.hp\\:justify-center{justify-content:center}.hp\\:gap-0\\.5{gap:calc(var(--hp-spacing) * .5)}.hp\\:gap-1{gap:var(--hp-spacing)}.hp\\:gap-1\\.5{gap:calc(var(--hp-spacing) * 1.5)}.hp\\:gap-2{gap:calc(var(--hp-spacing) * 2)}.hp\\:gap-3{gap:calc(var(--hp-spacing) * 3)}.hp\\:self-end{align-self:flex-end}.hp\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hp\\:overflow-hidden{overflow:hidden}.hp\\:overflow-y-auto{overflow-y:auto}.hp\\:rounded{border-radius:.25rem}.hp\\:rounded-full{border-radius:3.40282e38px}.hp\\:rounded-lg{border-radius:var(--hp-radius-lg)}.hp\\:border{border-style:var(--tw-border-style);border-width:1px}.hp\\:border-0{border-style:var(--tw-border-style);border-width:0}.hp\\:border-2{border-style:var(--tw-border-style);border-width:2px}.hp\\:border-\\[3px\\]{border-style:var(--tw-border-style);border-width:3px}.hp\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.hp\\:border-on-surface\\/10{border-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:border-on-surface\\/10{border-color:color-mix(in oklab,var(--hp-color-on-surface) 10%,transparent)}}.hp\\:border-on-surface\\/20{border-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:border-on-surface\\/20{border-color:color-mix(in oklab,var(--hp-color-on-surface) 20%,transparent)}}.hp\\:border-on-surface\\/30{border-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:border-on-surface\\/30{border-color:color-mix(in oklab,var(--hp-color-on-surface) 30%,transparent)}}.hp\\:border-t-accent{border-top-color:var(--hp-color-accent)}.hp\\:bg-accent,.hp\\:bg-accent\\/15{background-color:var(--hp-color-accent)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-accent\\/15{background-color:color-mix(in oklab,var(--hp-color-accent) 15%,transparent)}}.hp\\:bg-black,.hp\\:bg-black\\/30{background-color:var(--hp-color-black)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-black\\/30{background-color:color-mix(in oklab,var(--hp-color-black) 30%,transparent)}}.hp\\:bg-black\\/40{background-color:var(--hp-color-black)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-black\\/40{background-color:color-mix(in oklab,var(--hp-color-black) 40%,transparent)}}.hp\\:bg-black\\/60{background-color:var(--hp-color-black)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-black\\/60{background-color:color-mix(in oklab,var(--hp-color-black) 60%,transparent)}}.hp\\:bg-black\\/70{background-color:var(--hp-color-black)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-black\\/70{background-color:color-mix(in oklab,var(--hp-color-black) 70%,transparent)}}.hp\\:bg-black\\/85{background-color:var(--hp-color-black)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-black\\/85{background-color:color-mix(in oklab,var(--hp-color-black) 85%,transparent)}}.hp\\:bg-on-surface,.hp\\:bg-on-surface\\/20{background-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-on-surface\\/20{background-color:color-mix(in oklab,var(--hp-color-on-surface) 20%,transparent)}}.hp\\:bg-on-surface\\/25{background-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-on-surface\\/25{background-color:color-mix(in oklab,var(--hp-color-on-surface) 25%,transparent)}}.hp\\:bg-on-surface\\/40{background-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-on-surface\\/40{background-color:color-mix(in oklab,var(--hp-color-on-surface) 40%,transparent)}}.hp\\:bg-surface{background-color:var(--hp-color-surface)}.hp\\:bg-surface-elev{background-color:var(--hp-color-surface-elev)}.hp\\:bg-transparent{background-color:#0000}.hp\\:bg-white,.hp\\:bg-white\\/15{background-color:var(--hp-color-white)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-white\\/15{background-color:color-mix(in oklab,var(--hp-color-white) 15%,transparent)}}.hp\\:bg-white\\/30{background-color:var(--hp-color-white)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-white\\/30{background-color:color-mix(in oklab,var(--hp-color-white) 30%,transparent)}}.hp\\:bg-white\\/40{background-color:var(--hp-color-white)}@supports (color:color-mix(in lab,red,red)){.hp\\:bg-white\\/40{background-color:color-mix(in oklab,var(--hp-color-white) 40%,transparent)}}.hp\\:bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.hp\\:from-black\\/80{--tw-gradient-from:var(--hp-color-black)}@supports (color:color-mix(in lab,red,red)){.hp\\:from-black\\/80{--tw-gradient-from:color-mix(in oklab, var(--hp-color-black) 80%, transparent)}}.hp\\:from-black\\/80{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.hp\\:to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.hp\\:bg-cover{background-size:cover}.hp\\:bg-center{background-position:50%}.hp\\:object-cover{object-fit:cover}.hp\\:p-0{padding:0}.hp\\:p-1\\.5{padding:calc(var(--hp-spacing) * 1.5)}.hp\\:p-2{padding:calc(var(--hp-spacing) * 2)}.hp\\:p-3{padding:calc(var(--hp-spacing) * 3)}.hp\\:p-4{padding:calc(var(--hp-spacing) * 4)}.hp\\:px-1{padding-inline:var(--hp-spacing)}.hp\\:px-1\\.5{padding-inline:calc(var(--hp-spacing) * 1.5)}.hp\\:px-2{padding-inline:calc(var(--hp-spacing) * 2)}.hp\\:px-3{padding-inline:calc(var(--hp-spacing) * 3)}.hp\\:px-4{padding-inline:calc(var(--hp-spacing) * 4)}.hp\\:py-1{padding-block:var(--hp-spacing)}.hp\\:py-1\\.5{padding-block:calc(var(--hp-spacing) * 1.5)}.hp\\:py-2{padding-block:calc(var(--hp-spacing) * 2)}.hp\\:pt-6{padding-top:calc(var(--hp-spacing) * 6)}.hp\\:pb-2{padding-bottom:calc(var(--hp-spacing) * 2)}.hp\\:text-center{text-align:center}.hp\\:text-left{text-align:left}.hp\\:font-mono{font-family:var(--hp-font-mono)}.hp\\:text-2xl{font-size:var(--hp-text-2xl);line-height:var(--tw-leading,var(--hp-text-2xl--line-height))}.hp\\:text-base{font-size:var(--hp-text-base);line-height:var(--tw-leading,var(--hp-text-base--line-height))}.hp\\:text-lg{font-size:var(--hp-text-lg);line-height:var(--tw-leading,var(--hp-text-lg--line-height))}.hp\\:text-sm{font-size:var(--hp-text-sm);line-height:var(--tw-leading,var(--hp-text-sm--line-height))}.hp\\:text-xl{font-size:var(--hp-text-xl);line-height:var(--tw-leading,var(--hp-text-xl--line-height))}.hp\\:text-xs{font-size:var(--hp-text-xs);line-height:var(--tw-leading,var(--hp-text-xs--line-height))}.hp\\:text-\\[length\\:var\\(--hp-ctrl-icon-size\\)\\]{font-size:var(--hp-ctrl-icon-size)}.hp\\:leading-none{--tw-leading:1;line-height:1}.hp\\:font-medium{--tw-font-weight:var(--hp-font-weight-medium);font-weight:var(--hp-font-weight-medium)}.hp\\:font-semibold{--tw-font-weight:var(--hp-font-weight-semibold);font-weight:var(--hp-font-weight-semibold)}.hp\\:whitespace-nowrap{white-space:nowrap}.hp\\:text-accent{color:var(--hp-color-accent)}.hp\\:text-on-accent{color:var(--hp-color-on-accent)}.hp\\:text-on-surface{color:var(--hp-color-on-surface)}.hp\\:text-on-surface-muted{color:var(--hp-color-on-surface-muted)}.hp\\:text-white{color:var(--hp-color-white)}.hp\\:tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.hp\\:no-underline{text-decoration-line:none}.hp\\:underline{text-decoration-line:underline}.hp\\:opacity-0{opacity:0}.hp\\:opacity-60{opacity:.6}.hp\\:opacity-70{opacity:.7}.hp\\:opacity-80{opacity:.8}.hp\\:opacity-90{opacity:.9}.hp\\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hp\\:shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hp\\:drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.hp\\:transition-\\[height\\]{transition-property:height;transition-timing-function:var(--tw-ease,var(--hp-default-transition-timing-function));transition-duration:var(--tw-duration,var(--hp-default-transition-duration))}.hp\\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--hp-default-transition-timing-function));transition-duration:var(--tw-duration,var(--hp-default-transition-duration))}.hp\\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--hp-default-transition-timing-function));transition-duration:var(--tw-duration,var(--hp-default-transition-duration))}.hp\\:duration-100{--tw-duration:.1s;transition-duration:.1s}.hp\\:duration-150{--tw-duration:.15s;transition-duration:.15s}.hp\\:duration-200{--tw-duration:.2s;transition-duration:.2s}.hp\\:duration-300{--tw-duration:.3s;transition-duration:.3s}.hp\\:will-change-\\[opacity\\]{will-change:opacity}.hp\\:select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.hp\\:group-hover\\:h-\\[var\\(--hp-seek-track-h-hover\\)\\]:is(:where(.hp\\:group):hover *){height:var(--hp-seek-track-h-hover)}.hp\\:hover\\:bg-on-surface\\/5:hover{background-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:hover\\:bg-on-surface\\/5:hover{background-color:color-mix(in oklab,var(--hp-color-on-surface) 5%,transparent)}}.hp\\:hover\\:bg-on-surface\\/10:hover{background-color:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp\\:hover\\:bg-on-surface\\/10:hover{background-color:color-mix(in oklab,var(--hp-color-on-surface) 10%,transparent)}}.hp\\:hover\\:opacity-80:hover{opacity:.8}}.hp\\:focus-visible\\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hp\\:focus-visible\\:ring-accent:focus-visible{--tw-ring-color:var(--hp-color-accent)}.hp\\:focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.hp\\:data-\\[active\\=true\\]\\:bg-accent\\/15[data-active=true]{background-color:var(--hp-color-accent)}@supports (color:color-mix(in lab,red,red)){.hp\\:data-\\[active\\=true\\]\\:bg-accent\\/15[data-active=true]{background-color:color-mix(in oklab,var(--hp-color-accent) 15%,transparent)}}.hp\\:data-\\[active\\=true\\]\\:text-on-surface[data-active=true]{color:var(--hp-color-on-surface)}}.hp-icon{font-variant:normal;text-transform:none;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:hope-icons;font-style:normal;font-weight:400;line-height:1}.hp-icon-check:before{content:""}.hp-icon-chevron-left:before{content:""}.hp-icon-close:before{content:""}.hp-icon-fullscreen-enter:before{content:""}.hp-icon-fullscreen-exit:before{content:""}.hp-icon-grid:before{content:""}.hp-icon-loop:before{content:""}.hp-icon-pause:before{content:""}.hp-icon-pip:before{content:""}.hp-icon-play:before{content:""}.hp-icon-settings:before{content:""}.hp-icon-skip-back:before{content:""}.hp-icon-skip-forward:before{content:""}.hp-icon-volume-high:before{content:""}.hp-icon-volume-low:before{content:""}.hp-icon-volume-muted:before{content:""}.hp-icon-warning:before{content:""}:host{--hp-radius:8px;--hp-chip-bg:#ffffff14;--hp-chip-bg-hover:#ffffff2e;--hp-chip-bg-active:#ffffff42;--hp-chip-border:#ffffff29;--hp-chip-border-hover:#ffffff4d;--hp-chip-blur:14px;--hp-chip-shadow:0 4px 18px #00000047, inset 0 1px 0 #ffffff12;--hp-chip-radius:10px;--hp-chip-text:var(--hp-color-on-surface,#fff);--hp-chrome-scrim:linear-gradient(to top, #00000080 0%, #0000003d 50%, #0000 100%);--hp-chrome-scrim-height:min(150px, 45%);--hp-chip-backdrop-brightness:.78;--hp-ctrl-shadow:drop-shadow(0 1px 1.5px #0000008c);--hp-panel-bg:#ffffffb8;--hp-panel-blur:26px;--hp-panel-border:#0f11171a;--hp-panel-text:#15171c;--hp-panel-text-muted:#5b6270;--hp-panel-text-shadow:none;--hp-ctrl-btn-size:32px;--hp-ctrl-icon-size:16px;--hp-seek-hit-h:16px;--hp-seek-track-h:4px;--hp-seek-track-h-hover:6px;--hp-seek-thumb-size:12px;--hp-tooltip-bg:#ffffffe6;--hp-tooltip-text:#15171c;--hp-tooltip-key-bg:#0f11171a;--hp-tooltip-key-text:#15171c;--hp-caption-font-size:16px;--hp-caption-bg:#000000bf;--hp-caption-text:#fff;--hp-caption-radius:4px;background:var(--hp-color-surface,#0a0a0a);width:100%;color:var(--hp-color-on-surface,#fff);border-radius:var(--hp-radius);font-family:system-ui,-apple-system,sans-serif;line-height:1;display:block}.hp-chip{background:var(--hp-chip-bg);border:1px solid var(--hp-chip-border);border-radius:var(--hp-chip-radius);-webkit-backdrop-filter:blur(var(--hp-chip-blur)) saturate(160%);box-shadow:var(--hp-chip-shadow);color:var(--hp-chip-text);transition:background-color .16s,border-color .16s,box-shadow .16s,transform .12s}.hp-chip:hover{background:var(--hp-chip-bg-hover);border-color:var(--hp-chip-border-hover)}button.hp-chip:active{background:var(--hp-chip-bg-active);transform:scale(.94)}.hp-chip:focus-visible{outline:2px solid var(--hp-color-accent,#fff);outline-offset:2px}.hp-chip-panel,.hp-chip-panel:hover{background:var(--hp-panel-bg);border-color:var(--hp-panel-border);-webkit-backdrop-filter:blur(var(--hp-panel-blur)) saturate(160%);text-shadow:var(--hp-panel-text-shadow,none)}.hp-chip-panel{--hp-color-on-surface:var(--hp-panel-text);--hp-color-on-surface-muted:var(--hp-panel-text-muted);color:var(--hp-panel-text)}.hp-tooltip{background:var(--hp-tooltip-bg);color:var(--hp-tooltip-text);border-radius:calc(var(--hp-radius) * .75);-webkit-backdrop-filter:blur(12px)saturate(160%);font-weight:500;box-shadow:0 4px 14px #00000059}.hp-tooltip-key{background:var(--hp-tooltip-key-bg);min-width:16px;height:16px;color:var(--hp-tooltip-key-text);text-transform:uppercase;border-radius:4px;justify-content:center;align-items:center;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;display:inline-flex}.hp-group{background:var(--hp-chip-bg);border:1px solid var(--hp-chip-border);-webkit-backdrop-filter:blur(var(--hp-chip-blur)) saturate(160%) brightness(var(--hp-chip-backdrop-brightness,1));box-shadow:var(--hp-chip-shadow);border-radius:9999px}.hp-group-left{position:relative}.hp-loading-ring{border-radius:inherit;pointer-events:none;opacity:0;filter:drop-shadow(0 0 3px var(--hp-color-accent,#fff));transition:opacity .22s;position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px}@supports (color:color-mix(in lab,red,red)){.hp-loading-ring{filter:drop-shadow(0 0 3px color-mix(in srgb,var(--hp-color-accent,#fff) 70%,transparent))}}.hp-loading-ring-mask{border-radius:inherit;-webkit-mask-composite:xor;padding:2px;position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor,source-over;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}.hp-loading-ring-mask>span{aspect-ratio:1;background:conic-gradient(from 0deg,transparent 0deg 150deg,var(--hp-color-accent,#fff) 260deg,var(--hp-color-accent,#fff) 340deg,transparent 360deg);width:max(100%,160px);position:absolute;top:50%;left:50%;translate:-50% -50%}@supports (color:color-mix(in lab,red,red)){.hp-loading-ring-mask>span{background:conic-gradient(from 0deg,transparent 0deg 150deg,color-mix(in srgb,var(--hp-color-accent,#fff) 30%,transparent) 260deg,var(--hp-color-accent,#fff) 340deg,transparent 360deg)}}.hp-loading-ring-mask>span{animation:1.1s linear infinite paused hp-loading-ring-spin}.hp-group-left[data-loading]>.hp-loading-ring{opacity:1}.hp-group-left[data-loading]>.hp-loading-ring .hp-loading-ring-mask>span{animation-play-state:running}@keyframes hp-loading-ring-spin{to{rotate:360deg}}@media(prefers-reduced-motion:reduce){.hp-loading-ring-mask>span{background:var(--hp-color-accent,#fff);animation:none}.hp-group-left[data-loading]>.hp-loading-ring{animation:1.6s ease-in-out infinite hp-loading-ring-pulse}}@keyframes hp-loading-ring-pulse{50%{opacity:.35}}.hp-center-play>.hp-chip{-webkit-backdrop-filter:blur(var(--hp-chip-blur)) saturate(160%) brightness(var(--hp-chip-backdrop-brightness,1))}.hp-group .hp-icon,.hp-group [part=time-display],.hp-group .hp-live-badge,.hp-group [part=live-clock],.hp-group .hp-skip-num,.hp-center-play .hp-icon{filter:var(--hp-ctrl-shadow,none)}.hp-chrome:before{content:"";height:var(--hp-chrome-scrim-height);background:var(--hp-chrome-scrim);pointer-events:none;position:absolute;bottom:0;left:0;right:0}.video-area[data-compact]>.hp-chrome:after{content:"";background:var(--hp-chrome-scrim);opacity:.7;pointer-events:none;height:min(90px,30%);position:absolute;top:0;left:0;right:0;transform:scaleY(-1)}.hp-group button.hp-chip{box-shadow:none;-webkit-backdrop-filter:none;background:0 0;border-color:#0000}.hp-group button.hp-chip:hover{background:var(--hp-chip-bg-hover)}.hp-group button.hp-chip:active{background:var(--hp-chip-bg-active)}:host([data-theme=glass-dark]),:host([data-theme=neo-dark]),:host([data-theme=mono]){--hp-panel-bg:#0a0a0e8c;--hp-panel-border:#ffffff1a;--hp-panel-text:#fff;--hp-panel-text-muted:#a3a3a3;--hp-panel-text-shadow:0 1px 3px #000000a6;--hp-tooltip-bg:#0a0a0aeb;--hp-tooltip-text:#fff;--hp-tooltip-key-bg:#ffffff2e;--hp-tooltip-key-text:#fff}:host([data-theme=glass-dark]){--hp-chip-bg:#0a0a0e73;--hp-chip-bg-hover:#0a0a0e9e;--hp-chip-bg-active:#0a0a0ebf;--hp-chip-border:#ffffff14;--hp-chip-border-hover:#ffffff29;--hp-chip-shadow:0 4px 18px #0006, inset 0 1px 0 #ffffff0a;--hp-panel-bg:#08080cb8;--hp-chip-backdrop-brightness:1}:host([data-theme=neo-dark]){--hp-chip-bg:#24242a;--hp-chip-bg-hover:#2a2a31;--hp-chip-bg-active:#1e1e23;--hp-chip-border:transparent;--hp-chip-border-hover:transparent;--hp-chip-blur:0px;--hp-chip-shadow:5px 5px 10px #00000080, -4px -4px 9px #ffffff09;--hp-chip-radius:12px;--hp-color-surface:#1b1b20;--hp-panel-bg:#1e1e23;--hp-panel-text-shadow:none;--hp-chrome-scrim:none;--hp-chip-backdrop-brightness:1;--hp-ctrl-shadow:none}:host([data-theme=neo-dark]) button.hp-chip:active{box-shadow:inset 3px 3px 6px #00000080,inset -2px -2px 5px #ffffff08}:host([data-theme=mono]){--hp-chip-bg:#ffffff0a;--hp-chip-bg-hover:#ffffff1a;--hp-chip-border:#ffffff14;--hp-chip-border-hover:#ffffff24;--hp-chip-blur:0px;--hp-chip-shadow:none;--hp-panel-bg:#0a0a0aeb;--hp-panel-text-shadow:none}@media(pointer:coarse){:host{--hp-ctrl-btn-size:40px;--hp-ctrl-icon-size:18px;--hp-seek-hit-h:22px;--hp-seek-track-h:5px;--hp-seek-track-h-hover:7px;--hp-seek-thumb-size:14px;--hp-caption-font-size:19px}}:host(:fullscreen),:host(:-webkit-full-screen){--hp-ctrl-btn-size:44px;--hp-ctrl-icon-size:20px;--hp-seek-hit-h:26px;--hp-seek-track-h:6px;--hp-seek-track-h-hover:8px;--hp-seek-thumb-size:18px;--hp-caption-font-size:22px}:host(:fullscreen) [part=control-bar],:host(:-webkit-full-screen) [part=control-bar]{padding:28px 20px 18px}.video-area{width:100%;aspect-ratio:var(--hp-aspect-ratio,16 / 9);border-radius:var(--hp-radius);background:var(--hp-color-surface,#0a0a0a);position:relative;overflow:hidden}.video-area[data-compact]{--hp-caption-font-size:13px}.video-area[data-story]{aspect-ratio:9/16;max-width:49.5vh;max-height:88vh;margin:0 auto}:host(:fullscreen),:host(:-webkit-full-screen){background:#000;border-radius:0}:host(:fullscreen) .hp-root,:host(:-webkit-full-screen) .hp-root{height:100%}:host(:fullscreen) .video-area,:host(:-webkit-full-screen) .video-area{aspect-ratio:auto;background:#000;border-radius:0;width:100%;height:100%}:host(:fullscreen) .video-area[data-story],:host(:-webkit-full-screen) .video-area[data-story]{aspect-ratio:9/16;width:auto;max-width:100%;height:100%;max-height:none;margin:0 auto}.media-layer{position:absolute;top:0;right:0;bottom:0;left:0}.media-layer video{object-fit:contain;background:#000;width:100%;height:100%}.hp-center-x{transform:translate(-50%)}.hp-center-y{transform:translateY(-50%)}.hp-chip-panel[data-drop]{margin-top:8px;margin-bottom:0;top:100%;bottom:auto}.hp-top-bar{pointer-events:none;display:flex;position:absolute;top:8px;right:8px}.hp-top-bar>*{pointer-events:auto}.hp-story-list-btn{top:calc(8px + var(--hp-ctrl-btn-size) + 18px);right:12px}:host([data-cursor-hidden]),:host([data-cursor-hidden]) *{cursor:none!important}.hp-unmute-badge{z-index:25;background:var(--hp-tooltip-bg);color:var(--hp-tooltip-text);-webkit-backdrop-filter:blur(12px)saturate(160%);font:inherit;cursor:pointer;border:0;border-radius:9999px;align-items:center;gap:6px;padding:6px 12px 6px 10px;font-size:13px;font-weight:600;display:none;position:absolute;top:10px;left:10px;box-shadow:0 4px 14px #00000059}@media(hover:none)and (pointer:coarse){.hp-volume{display:none!important}.hp-unmute-badge[data-visible]{display:inline-flex}}.hp-error-screen{z-index:30;background:var(--hp-color-surface);justify-content:center;align-items:center;padding:12px;display:none;position:absolute;top:0;right:0;bottom:0;left:0}@supports (color:color-mix(in lab,red,red)){.hp-error-screen{background:color-mix(in srgb,var(--hp-color-surface) 94%,transparent)}}.hp-error-screen{-webkit-backdrop-filter:blur(16px)saturate(140%);color:var(--hp-color-on-surface);text-align:center;container-type:size}.hp-error-screen[data-visible]{animation:.22s hp-error-in;display:flex}@keyframes hp-error-in{0%{opacity:0}}.hp-error-card{flex-direction:column;align-items:center;gap:10px;max-width:340px;display:flex}.hp-error-icon{border:1px solid var(--hp-color-on-surface);border-radius:9999px;place-items:center;width:48px;height:48px;display:grid}@supports (color:color-mix(in lab,red,red)){.hp-error-icon{border:1px solid color-mix(in srgb,var(--hp-color-on-surface) 18%,transparent)}}.hp-error-icon{background:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp-error-icon{background:color-mix(in srgb,var(--hp-color-on-surface) 8%,transparent)}}.hp-error-icon{margin-bottom:2px;font-size:22px}.hp-error-message{margin:0;font-size:14px;font-weight:600;line-height:1.45}.hp-error-code{color:var(--hp-color-on-surface-muted);font-variant-numeric:tabular-nums;margin:-4px 0 0;font-size:12px}.hp-error-retry{border:1px solid var(--hp-chip-border);background:var(--hp-chip-bg);color:var(--hp-color-on-surface);font:inherit;cursor:pointer;border-radius:9999px;align-items:center;gap:6px;margin-top:6px;padding:7px 14px 7px 12px;font-size:13px;font-weight:600;transition:background-color .15s,border-color .15s;display:inline-flex}.hp-error-retry:hover{background:var(--hp-chip-bg-hover);border-color:var(--hp-chip-border-hover)}.hp-error-retry:focus-visible{outline:2px solid var(--hp-color-accent);outline-offset:2px}@container (max-height:240px){.hp-error-card{gap:6px}.hp-error-icon{width:36px;height:36px;margin-bottom:0;font-size:16px}.hp-error-message{font-size:13px}.hp-error-code{margin-top:-2px;font-size:11px}.hp-error-retry{margin-top:2px;padding:5px 12px 5px 10px;font-size:12px}}.hp-context-menu,.hp-stats,.hp-debug{border:1px solid var(--hp-panel-border);background:var(--hp-panel-bg);-webkit-backdrop-filter:blur(var(--hp-panel-blur)) saturate(160%);color:var(--hp-panel-text);text-shadow:var(--hp-panel-text-shadow,none);border-radius:10px;position:absolute;box-shadow:0 8px 28px #00000059}.hp-context-menu{z-index:40;min-width:200px;padding:4px;font-size:13px;display:none}.hp-context-menu[data-open]{animation:.12s hp-context-menu-in;display:block}@keyframes hp-context-menu-in{0%{opacity:0;transform:scale(.97)}}.hp-context-menu-item{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:space-between;align-items:center;gap:16px;padding:8px 10px;display:flex}.hp-context-menu-item[data-info]{cursor:default;font-weight:600}button.hp-context-menu-item:hover,button.hp-context-menu-item:focus-visible{background:var(--hp-panel-text)}@supports (color:color-mix(in lab,red,red)){button.hp-context-menu-item:hover,button.hp-context-menu-item:focus-visible{background:color-mix(in srgb,var(--hp-panel-text) 10%,transparent)}}button.hp-context-menu-item:hover,button.hp-context-menu-item:focus-visible{outline:none}.hp-context-menu-item+.hp-context-menu-item{margin-top:2px}.hp-context-menu-meta{color:var(--hp-panel-text-muted);font-variant-numeric:tabular-nums;font-weight:500}.hp-stats{z-index:28;width:min(360px,100% - 20px);max-height:calc(100% - 20px);padding:8px 12px 10px;font-size:11.5px;top:10px;left:10px;overflow:auto}.hp-stats-header{justify-content:space-between;align-items:center;margin-bottom:6px;font-size:12px;font-weight:700;display:flex}.hp-stats-close{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:9999px;padding:4px;display:inline-flex}.hp-stats-close:hover{background:var(--hp-panel-text)}@supports (color:color-mix(in lab,red,red)){.hp-stats-close:hover{background:color-mix(in srgb,var(--hp-panel-text) 12%,transparent)}}.hp-stats-body{grid-template-columns:auto 1fr;gap:3px 12px;margin:0;display:grid}.hp-stats-body dt{color:var(--hp-panel-text-muted);white-space:nowrap}.hp-stats-body dd{text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:hidden}.hp-seek-fb{z-index:8;border:1px solid var(--hp-chip-border);background:var(--hp-chip-bg);-webkit-backdrop-filter:blur(var(--hp-chip-blur)) saturate(160%);box-shadow:var(--hp-chip-shadow);color:var(--hp-chip-text);pointer-events:none;opacity:0;border-radius:9999px;align-items:center;gap:10px;padding:12px 20px 12px 16px;transition:opacity .18s,translate .22s cubic-bezier(.2,.8,.2,1);display:flex;position:absolute;top:50%}.hp-seek-fb[data-side=forward]{right:7%;translate:14px -50%}.hp-seek-fb[data-side=back]{flex-direction:row-reverse;padding:12px 16px 12px 20px;left:7%;translate:-14px -50%}.hp-seek-fb[data-visible]{opacity:1;translate:0 -50%}.hp-seek-fb-chevrons{display:flex}.hp-seek-fb-chevrons svg{fill:currentColor;opacity:.25;width:16px;height:16px;margin:0 -3px;animation:.9s ease-in-out infinite hp-seek-fb-chevron}.hp-seek-fb[data-side=back] .hp-seek-fb-chevrons{transform:scaleX(-1)}.hp-seek-fb-chevrons svg:nth-child(2){animation-delay:.15s}.hp-seek-fb-chevrons svg:nth-child(3){animation-delay:.3s}@keyframes hp-seek-fb-chevron{0%,to{opacity:.25}40%{opacity:1}}.hp-seek-fb-value{white-space:nowrap;align-items:baseline;gap:3px;display:flex}.hp-seek-fb-num{font-variant-numeric:tabular-nums;font-size:20px;font-weight:700;line-height:1;display:inline-block}.hp-seek-fb-unit{opacity:.75;font-size:12px;font-weight:600}.hp-seek-fb-bump{animation:.26s cubic-bezier(.2,.8,.2,1) hp-seek-fb-bump}@keyframes hp-seek-fb-bump{0%{transform:scale(1.25)}to{transform:scale(1)}}.video-area[data-compact] .hp-seek-fb{padding:8px 12px}.video-area[data-compact] .hp-seek-fb[data-side=forward]{right:4%}.video-area[data-compact] .hp-seek-fb[data-side=back]{padding:8px 12px;left:4%}.video-area[data-compact] .hp-seek-fb-chevrons{display:none}.video-area[data-compact] .hp-seek-fb-num{font-size:16px}.hp-sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media(prefers-reduced-motion:reduce){.hp-seek-fb,.hp-seek-fb-chevrons svg,.hp-seek-fb-bump{transition:none;animation:none}.hp-seek-fb-chevrons svg{opacity:.8}}.hp-skip-btn{position:relative}.hp-skip-btn>.hp-icon{font-size:calc(var(--hp-ctrl-icon-size) * 1.45)}.hp-skip-num{padding-top:calc(var(--hp-ctrl-icon-size) * .14);font-size:calc(var(--hp-ctrl-icon-size) * .56);letter-spacing:-.02em;font-variant-numeric:tabular-nums;pointer-events:none;justify-content:center;align-items:center;font-weight:700;line-height:1;display:flex;position:absolute;top:0;right:0;bottom:0;left:0}.hp-skip-num[data-long]{font-size:calc(var(--hp-ctrl-icon-size) * .42)}.hp-skip-btn:disabled{opacity:.4;cursor:default}.hp-center-play>.hp-chip{z-index:7;position:relative}.video-area[data-center-play-shifted] .hp-center-play>.hp-chip{width:var(--hp-center-play-size);height:var(--hp-center-play-size);translate:var(--hp-center-play-shift-x,0px) var(--hp-center-play-shift)}.video-area[data-pause-ad-ready]>:is(.media-layer,.hp-chrome,.hp-center-play,.hp-caption-layer,.hp-error-screen,.hp-mini-progress){right:var(--hp-pause-ad-w,0px);transition:right .38s cubic-bezier(.2,.8,.2,1),opacity .2s}.video-area[data-pause-ad] .media-layer video{object-fit:cover}.hp-pause-ad{z-index:25;width:var(--hp-pause-ad-panel-w,332px);box-sizing:border-box;background:var(--hp-color-surface,#0a0a0a);color:var(--hp-color-on-surface,#fff);visibility:hidden;flex-direction:column;justify-content:center;gap:10px;padding:12px 16px;transition:transform .38s cubic-bezier(.2,.8,.2,1),visibility 0s linear .38s;display:flex;position:absolute;top:0;bottom:0;right:0;transform:translate(100%)}.hp-pause-ad[data-open]{visibility:visible;transition:transform .38s cubic-bezier(.2,.8,.2,1);transform:none}.hp-pause-ad-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.hp-pause-ad-label{color:var(--hp-color-on-surface-muted,#ffffffb3);font-size:13px;font-weight:600}.hp-pause-ad-close{width:28px;height:28px;color:var(--hp-color-on-surface,#fff);cursor:pointer;background:0 0;border:0;border-radius:9999px;justify-content:center;align-items:center;padding:0;transition:background-color .15s;display:inline-flex}.hp-pause-ad-close:hover{background:var(--hp-chip-bg-hover)}.hp-pause-ad-body{border-radius:8px;justify-content:center;display:flex;overflow:hidden}.hp-pause-ad-resume{border:1px solid var(--hp-chip-border);background:var(--hp-chip-bg);color:var(--hp-color-on-surface,#fff);font:inherit;cursor:pointer;border-radius:9999px;align-self:stretch;padding:9px 14px;font-size:13px;font-weight:600;transition:background-color .15s,border-color .15s}.hp-pause-ad-resume:hover{background:var(--hp-chip-bg-hover);border-color:var(--hp-chip-border-hover)}.hp-pause-ad-close:focus-visible,.hp-pause-ad-resume:focus-visible{outline:2px solid var(--hp-color-accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){.video-area[data-pause-ad-ready]>:is(.media-layer,.hp-chrome,.hp-center-play,.hp-caption-layer,.hp-error-screen,.hp-mini-progress),.hp-pause-ad,.hp-pause-ad[data-open]{transition:none}}.hp-seek-thumb{width:var(--hp-seek-thumb-size);height:var(--hp-seek-thumb-size);background:var(--hp-color-accent);will-change:translate,scale;pointer-events:none;z-index:2;border-radius:9999px;transition:scale .15s;position:absolute;left:0;scale:.5}.hp-seekbar:hover .hp-seek-thumb,.hp-seekbar:active .hp-seek-thumb,.hp-seekbar:focus-visible .hp-seek-thumb{scale:1}.hp-seekbar[data-no-duration] .hp-seek-thumb{display:none}.hp-seek-hover-dot{width:var(--hp-seek-track-h-hover);height:var(--hp-seek-track-h-hover);background:var(--hp-color-on-surface);opacity:0;pointer-events:none;z-index:1;border-radius:9999px;transition:opacity .12s;position:absolute;top:50%;left:0;box-shadow:0 0 0 1px #00000073}.hp-seek-hover-dot[data-visible]{opacity:.9}.hp-mini-progress{z-index:6;pointer-events:none;background:var(--hp-color-on-surface);height:1px;position:absolute;bottom:0;left:0;right:0}@supports (color:color-mix(in lab,red,red)){.hp-mini-progress{background:color-mix(in srgb,var(--hp-color-on-surface) 25%,transparent)}}.hp-mini-progress{opacity:0;transition:opacity .2s}.hp-mini-progress[data-visible]:not([data-disabled]){opacity:1}.hp-mini-progress-fill{transform-origin:0;will-change:transform;position:absolute;top:0;right:0;bottom:0;left:0;transform:scaleX(0)}.hp-mini-progress-buffered{background:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp-mini-progress-buffered{background:color-mix(in srgb,var(--hp-color-on-surface) 40%,transparent)}}.hp-mini-progress-played{background:var(--hp-color-accent)}.hp-seek-time{border-radius:calc(var(--hp-radius) * .75);background:var(--hp-tooltip-bg);color:var(--hp-tooltip-text);-webkit-backdrop-filter:blur(12px)saturate(160%);font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;visibility:hidden;z-index:20;padding:3px 7px;font-size:12px;font-weight:500;position:absolute;bottom:calc(100% + 8px);left:0;box-shadow:0 4px 14px #00000059}.hp-seek-time[data-visible]{visibility:visible}.hp-sprite-tooltip{pointer-events:none;visibility:hidden;z-index:20;flex-direction:column;align-items:center;gap:4px;display:flex;position:absolute;bottom:calc(100% + 8px);left:0}.hp-sprite-tooltip[data-visible]{visibility:visible}.hp-sprite-image{border-radius:calc(var(--hp-radius) * .75);border:2px solid var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp-sprite-image{border:2px solid color-mix(in srgb,var(--hp-color-on-surface) 85%,transparent)}}.hp-sprite-image{background-color:#000;background-repeat:no-repeat;box-shadow:0 4px 14px #00000059}.hp-sprite-time{background:var(--hp-tooltip-bg);color:var(--hp-tooltip-text);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:4px;padding:2px 6px;font-size:12px}.hp-live-badge{height:var(--hp-ctrl-btn-size);color:var(--hp-color-on-surface);font:inherit;letter-spacing:.04em;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:9999px;align-items:center;gap:6px;padding:0 8px;font-size:12px;font-weight:600;display:inline-flex}.hp-live-badge:hover{background:var(--hp-chip-bg-hover)}.hp-live-badge:focus-visible{outline:2px solid var(--hp-color-accent);outline-offset:2px}.hp-live-dot{background:var(--hp-live-color,red);border-radius:50%;width:8px;height:8px;transition:background-color .16s}.hp-live-badge[data-behind]{color:var(--hp-color-on-surface-muted)}.hp-live-badge[data-behind] .hp-live-dot{background:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp-live-badge[data-behind] .hp-live-dot{background:color-mix(in srgb,var(--hp-color-on-surface) 45%,transparent)}}.hp-chapters{pointer-events:none;inset-inline:0;align-items:center;gap:2px;display:flex;position:absolute;top:0;bottom:0}.hp-chapter{min-width:1px;height:var(--hp-seek-track-h);background:var(--hp-color-on-surface);border-radius:1px;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.hp-chapter{background:color-mix(in srgb,var(--hp-color-on-surface) 25%,transparent)}}.hp-chapter{transition:height .15s}.hp-seekbar:hover .hp-chapter{height:var(--hp-seek-track-h-hover)}.hp-seekbar .hp-chapter[data-hover]{height:calc(var(--hp-seek-track-h-hover) * 1.6)}.hp-chapter-fill{transform-origin:0;will-change:transform;position:absolute;top:0;right:0;bottom:0;left:0;transform:scaleX(0)}.hp-chapter-buffered{background:var(--hp-color-on-surface)}@supports (color:color-mix(in lab,red,red)){.hp-chapter-buffered{background:color-mix(in srgb,var(--hp-color-on-surface) 40%,transparent)}}.hp-chapter-played{background:var(--hp-color-accent)}.hp-chapter-tooltip{background:var(--hp-tooltip-bg);max-width:240px;color:var(--hp-tooltip-text);border-radius:calc(var(--hp-radius) * .75);-webkit-backdrop-filter:blur(12px)saturate(160%);text-align:center;pointer-events:none;white-space:nowrap;visibility:hidden;z-index:40;flex-direction:column;align-items:center;gap:2px;padding:4px 8px;font-size:12px;line-height:1.3;display:flex;position:absolute;bottom:calc(100% + 6px);left:0;box-shadow:0 4px 14px #00000059}.hp-chapter-tooltip[data-visible]{visibility:visible}.hp-chapter-tooltip-title{text-overflow:ellipsis;max-width:100%;font-weight:600;overflow:hidden}.hp-chapter-tooltip-time{opacity:.75;font-variant-numeric:tabular-nums}:host([data-sticky]){z-index:2147483000;border-radius:var(--hp-radius);box-shadow:0 8px 28px #00000073;width:min(360px,92vw)!important;aspect-ratio:var(--hp-aspect-ratio,16 / 9)!important;position:fixed!important}:host([data-sticky][data-sticky-corner=br]){inset:auto 16px 16px auto}:host([data-sticky][data-sticky-corner=bl]){inset:auto auto 16px 16px}:host([data-sticky][data-sticky-corner=tr]){inset:16px 16px auto auto}:host([data-sticky][data-sticky-corner=tl]){inset:16px auto auto 16px}.hp-caption-layer{z-index:5;pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0}.hp-caption-bubble{background:var(--hp-caption-bg);width:max-content;max-width:86%;color:var(--hp-caption-text);border-radius:var(--hp-caption-radius);font-size:calc(var(--hp-caption-font-size) * var(--hp-caption-size-multiplier,1));text-align:center;white-space:pre-line;cursor:grab;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;padding:.3em .6em;line-height:1.4;transition:transform .24s cubic-bezier(.25,.8,.25,1);display:none;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.hp-caption-bubble.hp-caption-visible{display:inline-block}.hp-caption-bubble.hp-caption-dragging,.hp-caption-bubble.hp-caption-no-transition{transition:none}.hp-caption-bubble.hp-caption-dragging{cursor:grabbing}[part=ad-layer][data-nonlinear]{top:auto;bottom:var(--hp-nonlinear-ad-offset,72px);height:var(--hp-nonlinear-ad-height,33%);pointer-events:none}[part=ad-layer][data-nonlinear] *{pointer-events:none}[part=ad-layer][data-nonlinear] :is(iframe,img,a,button){pointer-events:auto}.hp-debug{--hp-panel-text:#f1f1f4;--hp-panel-text-muted:#f1f1f49e;--hp-panel-border:#ffffff1f;text-shadow:none;z-index:30;background:#0e0e12f2;flex-direction:column;min-width:0;font-size:12px;line-height:1.45;display:flex;top:8px;right:8px;bottom:8px;left:8px;overflow:hidden}.hp-debug:focus{outline:none}.hp-debug-header{border-bottom:1px solid var(--hp-panel-border);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:8px 8px 8px 12px;display:flex}.hp-debug-title{white-space:nowrap;align-items:center;gap:8px;min-width:0;font-size:13px;font-weight:700;display:flex}.hp-debug-count{font-variant-numeric:tabular-nums;background:#f8717138;border-radius:9999px;padding:1px 7px;font-size:11px}.hp-debug-count:empty{display:none}.hp-debug-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.hp-debug-btn{border:1px solid var(--hp-panel-border);color:inherit;font:inherit;cursor:pointer;background:0 0;border-radius:9999px;padding:4px 10px;font-size:11.5px}.hp-debug-btn:hover:not(:disabled){background:var(--hp-panel-text)}@supports (color:color-mix(in lab,red,red)){.hp-debug-btn:hover:not(:disabled){background:color-mix(in srgb,var(--hp-panel-text) 12%,transparent)}}.hp-debug-btn:disabled{opacity:.45;cursor:default}.hp-debug-list{overscroll-behavior:contain;flex:1;min-height:0;margin:0;padding:6px 12px 10px;list-style:none;overflow:hidden auto}.hp-debug-row{border-left:2px solid var(--hp-panel-text);padding:8px 0 8px 10px}@supports (color:color-mix(in lab,red,red)){.hp-debug-row{border-left:2px solid color-mix(in srgb,var(--hp-panel-text) 25%,transparent)}}.hp-debug-row{min-width:0}.hp-debug-row+.hp-debug-row{margin-top:6px}.hp-debug-row[data-fatal]{border-left-color:#f87171}.hp-debug-row-head{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:2px;display:flex}.hp-debug-time{color:var(--hp-panel-text-muted);font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.hp-debug-source,.hp-debug-fatal{background:var(--hp-panel-text);border-radius:9999px;padding:1px 7px;font-size:10.5px;font-weight:600}@supports (color:color-mix(in lab,red,red)){.hp-debug-source,.hp-debug-fatal{background:color-mix(in srgb,var(--hp-panel-text) 12%,transparent)}}.hp-debug-source[data-source=ads]{background:#f5c4513d}.hp-debug-source[data-source=stream],.hp-debug-source[data-source=media]{background:#60a5fa3d}.hp-debug-fatal{background:#f8717147}.hp-debug-message{overflow-wrap:anywhere;font-weight:600}.hp-debug-repeat{color:var(--hp-panel-text-muted);font-weight:500}.hp-debug-details{grid-template-columns:max-content minmax(0,1fr);gap:1px 10px;margin:4px 0 0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;display:grid}.hp-debug-details dt{color:var(--hp-panel-text-muted)}.hp-debug-details dd{overflow-wrap:anywhere;min-width:0;margin:0}.hp-debug-empty{color:var(--hp-panel-text-muted);margin:auto;padding:16px}.hp-debug-empty[hidden]{display:none}.hp-ad-return{z-index:25;color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#0e0e12d1;border:1px solid #ffffff40;border-radius:999px;padding:10px 16px;font:600 14px/1.2 system-ui,-apple-system,sans-serif;animation:.2s ease-out hp-ad-return-in;position:absolute;bottom:64px;right:12px}@keyframes hp-ad-return-in{0%{opacity:0;transform:translateY(6px)}}:host([data-audio]) .hp-center-play{display:none}.hp-audio{z-index:1;text-align:left;pointer-events:none;color:#fff;background:linear-gradient(160deg,#2a1f2b,#0c0c10);background:radial-gradient(80% 90% at 20% 10%,var(--hp-color-accent,#e5484d),transparent 70%),linear-gradient(160deg,#1d1d24,#0c0c10);position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.hp-audio{background:radial-gradient(80% 90% at 20% 10%,color-mix(in srgb,var(--hp-color-accent,#e5484d) 38%,transparent),transparent 70%),linear-gradient(160deg,#1d1d24,#0c0c10)}}.hp-audio-backdrop{position:absolute;top:-8%;right:-8%;bottom:-8%;left:-8%}.hp-audio-backdrop img{object-fit:cover;filter:blur(28px)saturate(1.3)brightness(.55);width:100%;height:100%;transform:scale(1.08)}.hp-audio:not([data-cover]) .hp-audio-backdrop,.hp-audio:not([data-cover]) .hp-audio-sleeve img{display:none}.hp-audio-meta{z-index:3;text-shadow:0 1px 6px #0009;line-height:1.25;display:none;position:absolute;top:12px;left:14px;right:64px}.hp-audio[data-meta] .hp-audio-meta{display:block}.hp-audio-title{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:700;overflow:hidden}.hp-audio-artist{opacity:.8;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:12.5px;overflow:hidden}.hp-audio-area{inset:0 0 var(--hp-audio-bottom-space,66px) 0;justify-content:center;align-items:center;display:flex;position:absolute}.hp-audio[data-meta] .hp-audio-area{top:44px}.hp-audio-deck{height:var(--hp-deck-h,0px);flex:none;align-items:center;display:flex;position:relative}.hp-audio[data-position=left] .hp-audio-deck{flex-direction:row-reverse}.hp-audio-sleeve{z-index:2;width:var(--hp-deck-h,0px);height:var(--hp-deck-h,0px);background:radial-gradient(70% 70% at 30% 25%,#e5484d,#0000 75%),#26262d;background:radial-gradient(70% 70% at 30% 25%,var(--hp-color-accent,#e5484d),transparent 75%),#26262d;border-radius:6px;flex:none;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.hp-audio-sleeve{background:radial-gradient(70% 70% at 30% 25%,color-mix(in srgb,var(--hp-color-accent,#e5484d) 70%,#fff 0%),transparent 75%),#26262d}}.hp-audio-sleeve{box-shadow:0 18px 40px -12px #000000bf,0 0 0 1px #ffffff14}.hp-audio-sleeve img{object-fit:cover;width:100%;height:100%;display:block}.hp-audio-sleeve[hidden],.hp-vinyl[hidden],.hp-tonearm-holder[hidden]{display:none}.hp-vinyl{z-index:1;width:calc(var(--hp-deck-h,0px) * .96);height:calc(var(--hp-deck-h,0px) * .96);pointer-events:auto;touch-action:none;-webkit-tap-highlight-color:transparent;filter:drop-shadow(0 14px 26px #0009);border-radius:50%;outline:none;flex:none;transition:margin .45s cubic-bezier(.2,.8,.2,1);position:relative}.hp-audio[data-position=right] .hp-vinyl{margin-left:calc(var(--hp-deck-h) * -.56)}.hp-audio[data-position=left] .hp-vinyl{margin-right:calc(var(--hp-deck-h) * -.56)}.hp-audio[data-position=right][data-playing] .hp-vinyl{margin-left:calc(var(--hp-deck-h) * -.46)}.hp-audio[data-position=left][data-playing] .hp-vinyl{margin-right:calc(var(--hp-deck-h) * -.46)}.hp-audio:not([data-laid-out]) .hp-vinyl{transition:none}.hp-vinyl[data-scratch]:not([data-live]){cursor:grab}.hp-audio[data-scratching] .hp-vinyl{cursor:grabbing}.hp-vinyl:focus-visible{box-shadow:0 0 0 3px #ffffffb3;box-shadow:0 0 0 3px var(--hp-color-accent,#e5484d)}@supports (color:color-mix(in lab,red,red)){.hp-vinyl:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--hp-color-accent,#e5484d) 80%,transparent)}}.hp-vinyl-disc{will-change:transform;position:absolute;top:0;right:0;bottom:0;left:0}.hp-vinyl-disc svg,.hp-tonearm svg{width:100%;height:100%;display:block}.hp-vinyl-sheen{pointer-events:none;background:conic-gradient(from 200deg,#0000,#ffffff21 22deg,#0000 48deg,#0000 180deg,#ffffff17 205deg,#0000 232deg);border-radius:50%;position:absolute;top:0;right:0;bottom:0;left:0;-webkit-mask:radial-gradient(circle,#0000 0 35%,#000 36% 99%,#0000 100%);mask:radial-gradient(circle,#0000 0 35%,#000 36% 99%,#0000 100%)}.hp-tonearm-holder{pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0}.hp-audio[data-position=left] .hp-tonearm-holder{transform:scaleX(-1)}.hp-tonearm{transform-origin:70% 11%;filter:drop-shadow(0 6px 8px #00000080);width:46%;height:92%;transition:transform .6s cubic-bezier(.3,.7,.2,1);position:absolute;top:-6%;right:-14%;transform:rotate(-26deg)}.hp-audio[data-playing] .hp-tonearm{transform:rotate(0)}@media(prefers-reduced-motion:reduce){.hp-vinyl,.hp-tonearm{transition:none}}.hp-audio[data-short][data-meta] .hp-audio-meta{display:none}.hp-audio[data-short][data-meta] .hp-audio-area{top:6px}[part=ad-layer][data-audio-ad]{background:0 0}[part=ad-layer][data-audio-ad] video{opacity:0}.hp-audio:after{content:"";pointer-events:none;z-index:2;background:linear-gradient(#0000,#00000047 45%,#0000009e);height:min(140px,45%);position:absolute;bottom:0;left:0;right:0}:host([data-audio-compact]) .video-area{aspect-ratio:auto;height:var(--hp-audio-bar-height,84px);overflow:visible}:host([data-audio-compact]) .hp-audio{border-radius:var(--hp-radius);background:linear-gradient(120deg,#24242c,#141418);background:linear-gradient(120deg,var(--hp-color-accent,#e5484d),transparent 60%),var(--hp-color-surface,#141418)}@supports (color:color-mix(in lab,red,red)){:host([data-audio-compact]) .hp-audio{background:linear-gradient(120deg,color-mix(in srgb,var(--hp-color-accent,#e5484d) 16%,transparent),transparent 60%),var(--hp-color-surface,#141418)}}:host([data-audio-compact]) .hp-audio>*,:host([data-audio-compact]) .hp-audio:after,:host([data-audio-compact]) .hp-caption-layer,:host([data-audio-compact]) .hp-loading-spinner,:host([data-audio-compact]) .hp-chrome:before,:host([data-audio-compact]) .hp-chrome:after{display:none}.hp-bar-meta{min-width:0;color:var(--hp-color-on-surface,#fff);pointer-events:none;align-items:center;gap:10px;padding:0 6px;display:flex}.hp-bar-meta[data-empty] .hp-bar-text{display:none}.hp-bar-text{flex-direction:column;min-width:0;line-height:1.25;display:flex}.hp-bar-title{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.hp-bar-sub{opacity:.72;white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.hp-bar-sub:empty{display:none}.hp-bar-eq{flex:none;align-items:flex-end;gap:2px;width:14px;height:14px;display:inline-flex}.hp-bar-eq i{background:var(--hp-color-accent,#fff);border-radius:1px;flex:1;height:30%;transition:height .2s}.hp-bar-meta[data-playing] .hp-bar-eq i{animation:.9s ease-in-out infinite alternate hp-bar-eq}.hp-bar-meta[data-playing] .hp-bar-eq i:nth-child(2){animation-duration:.7s;animation-delay:-.3s}.hp-bar-meta[data-playing] .hp-bar-eq i:nth-child(3){animation-duration:1.1s;animation-delay:-.6s}@keyframes hp-bar-eq{0%{height:25%}to{height:100%}}@media(prefers-reduced-motion:reduce){.hp-bar-meta[data-playing] .hp-bar-eq i{height:70%;animation:none}}.hp-lock{vertical-align:-2px;display:inline-block}.hp-rw-button{color:#fff;cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:transparent;background:#0c0c10b8;border:1px solid #ffffff38;border-radius:999px;align-items:center;gap:6px;padding:7px 12px;font:600 12.5px/1 system-ui,-apple-system,sans-serif;display:inline-flex;position:absolute;top:12px;left:12px;box-shadow:0 6px 18px -8px #000000b3}.hp-rw-button:hover{background:#0c0c10e0}.hp-rw-button[hidden]{display:none}.hp-rw-button .hp-lock{color:var(--hp-color-accent,#fff)}.hp-rw-dialog{z-index:45;color:#fff;text-align:center;background:#0000009e;justify-content:center;align-items:center;padding:12px;animation:.18s ease-out hp-rw-fade;display:flex;position:absolute;top:0;right:0;bottom:0;left:0}.hp-rw-card{background:#14141af5;border:1px solid #ffffff24;border-radius:14px;width:min(360px,100%);max-height:100%;padding:18px 18px 16px;overflow:auto;box-shadow:0 20px 50px -20px #000c}.hp-rw-icon{color:var(--hp-color-accent,#fff);background:#ffffff14;border-radius:50%;padding:9px;display:inline-flex}.hp-rw-icon .hp-lock{width:18px;height:18px}.hp-rw-title{margin-top:10px;font-size:15px;font-weight:700}.hp-rw-text{opacity:.82;margin-top:6px;font-size:13px;line-height:1.45}.hp-rw-actions{justify-content:center;gap:8px;margin-top:14px;display:flex}.hp-rw-actions:empty{display:none}.hp-rw-btn{color:#fff;cursor:pointer;background:0 0;border:1px solid #fff3;border-radius:999px;padding:8px 14px;font:600 13px/1 system-ui,-apple-system,sans-serif}.hp-rw-btn-primary{background:var(--hp-color-accent,#fff);color:var(--hp-color-on-accent,#0a0a0a);border-color:#0000}.hp-rw-spinner{border:2px solid #ffffff40;border-top-color:#fff;border-radius:50%;width:22px;height:22px;margin:4px auto 0;animation:.8s linear infinite hp-rw-spin}.hp-rw-toast{z-index:45;color:#fff;pointer-events:none;background:#0c0c10d9;border-radius:999px;padding:8px 14px;font:600 13px/1 system-ui,-apple-system,sans-serif;animation:.2s ease-out hp-rw-fade;position:absolute;top:12px;left:50%;transform:translate(-50%)}@keyframes hp-rw-fade{0%{opacity:0}}@keyframes hp-rw-spin{to{transform:rotate(360deg)}}.hp-settings-panel [data-locked],.hp-chip-panel [data-locked]{opacity:.85}.hp-sponsor-logo{z-index:21;width:var(--hp-sponsor-logo-w,96px);color:#fff;filter:drop-shadow(0 2px 6px #0000008c);flex-direction:column;align-items:center;gap:4px;text-decoration:none;transition:opacity .25s;animation:.4s ease-out hp-rw-fade;display:flex;position:absolute}.hp-sponsor-logo[data-position=top-left]{top:12px;left:12px}.hp-sponsor-logo[data-position=top-right]{top:12px;right:12px}.hp-sponsor-logo[data-position=bottom-left]{bottom:76px;left:12px}.hp-sponsor-logo[data-position=bottom-right]{bottom:76px;right:12px}.hp-sponsor-logo img{width:100%;height:auto;display:block}.hp-sponsor-label{text-align:center;white-space:nowrap;text-overflow:ellipsis;letter-spacing:.08em;text-transform:uppercase;opacity:.85;max-width:100%;font:600 10px/1 system-ui,-apple-system,sans-serif;overflow:hidden}.video-area:has(.hp-rw-button:not([hidden])) .hp-sponsor-logo[data-position=top-left]{top:52px}.hp-sponsor-intro{z-index:22;color:#fff;pointer-events:none;background:#0c0c10d1;border-radius:999px;align-items:center;gap:10px;max-width:calc(100% - 32px);padding:8px 16px 8px 8px;font:600 14px/1.2 system-ui,-apple-system,sans-serif;transition:opacity .35s,transform .35s;animation:.45s cubic-bezier(.2,.8,.2,1) hp-sponsor-in;display:flex;position:absolute;bottom:84px;left:50%;transform:translate(-50%);box-shadow:0 12px 30px -12px #000c}.hp-sponsor-intro[data-leaving]{opacity:0;transform:translate(-50%,8px)}.hp-sponsor-intro img{border-radius:6px;width:auto;max-width:96px;height:28px}.hp-sponsor-intro span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@keyframes hp-sponsor-in{0%{opacity:0;transform:translate(-50%,12px)scale(.96)}}:host([data-sponsor-hidden]) .hp-sponsor-logo,:host([data-sponsor-hidden]) .hp-sponsor-intro{display:none}@media(prefers-reduced-motion:reduce){.hp-sponsor-intro,.hp-rw-dialog,.hp-rw-toast{animation:none}}@media(hover:none)and (pointer:coarse){.video-area:has(.hp-unmute-badge[data-visible]) .hp-rw-button,.video-area:has(.hp-unmute-badge[data-visible]) .hp-sponsor-logo[data-position=top-left]{top:52px}.video-area:has(.hp-unmute-badge[data-visible]):has(.hp-rw-button:not([hidden])) .hp-sponsor-logo[data-position=top-left]{top:92px}}.video-area[data-compact] .hp-rw-icon{display:none}.video-area[data-compact] .hp-rw-card{padding:12px 14px}.video-area[data-compact] .hp-rw-title{margin-top:0;font-size:14px}.video-area[data-compact] .hp-rw-text{font-size:12px;line-height:1.4}.video-area[data-compact] .hp-rw-actions{margin-top:10px}.hp-sponsor-logo[data-compact]{width:min(var(--hp-sponsor-logo-w,96px),48px);gap:2px}.hp-sponsor-logo[data-compact] .hp-sponsor-label{font-size:8.5px}:host([data-sponsor-intro]) .hp-sponsor-logo{pointer-events:none;opacity:0!important}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}';
5
+ function W() {
6
6
  if (typeof navigator > "u") return !1;
7
- const a = navigator.userAgent, t = /iP(hone|od|ad)/.test(a) || navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1, e = /^((?!chrome|chromium|android|crios|fxios|edg|opr).)*safari/i.test(a);
7
+ const n = navigator.userAgent, t = /iP(hone|od|ad)/.test(n) || navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1, e = /^((?!chrome|chromium|android|crios|fxios|edg|opr).)*safari/i.test(n);
8
8
  return t || e;
9
9
  }
10
- function W() {
11
- const a = window;
12
- return typeof a.MediaSource < "u" || typeof a.ManagedMediaSource < "u";
10
+ function X() {
11
+ const n = window;
12
+ return typeof n.MediaSource < "u" || typeof n.ManagedMediaSource < "u";
13
13
  }
14
- function Ee(a, t) {
14
+ function Te(n, t) {
15
15
  var i;
16
16
  const e = (i = t == null ? void 0 : t.split(";")[0]) == null ? void 0 : i.trim().toLowerCase();
17
- return e === "application/vnd.apple.mpegurl" || e === "application/x-mpegurl" || /\.m3u8(?:$|[?#])/i.test(a) ? "hls" : e === "video/mp4" || /\.mp4(?:$|[?#])/i.test(a) ? "mp4" : "unknown";
17
+ return e === "application/vnd.apple.mpegurl" || e === "application/x-mpegurl" || /\.m3u8(?:$|[?#])/i.test(n) ? "hls" : e === "video/mp4" || /\.mp4(?:$|[?#])/i.test(n) ? "mp4" : "unknown";
18
18
  }
19
- class Ce {
19
+ class Se {
20
20
  constructor(t, e) {
21
21
  s(this, "hls", null);
22
22
  s(this, "video");
@@ -41,7 +41,7 @@ class Ce {
41
41
  }
42
42
  async load(t, e) {
43
43
  this.last = { src: t, type: e }, this.destroy(), this.video.pause();
44
- const i = Ee(t, e);
44
+ const i = Te(t, e);
45
45
  if (this.callbacks.onLevelsChanged([], -1), this.callbacks.onAudioTracksChanged([], -1), this.streamTextTracks.clear(), this.callbacks.onTextTracksFound([]), i !== "hls") {
46
46
  this.engineInfo = { engine: "native" }, this.video.src = t;
47
47
  return;
@@ -51,8 +51,8 @@ class Ce {
51
51
  this.loadNativeHls(t, "option");
52
52
  return;
53
53
  }
54
- if (r !== "hls.js" && o && (G() || !W())) {
55
- this.loadNativeHls(t, G() ? "apple-native" : "no-mse");
54
+ if (r !== "hls.js" && o && (W() || !X())) {
55
+ this.loadNativeHls(t, W() ? "apple-native" : "no-mse");
56
56
  return;
57
57
  }
58
58
  await this.attachHlsJs(t);
@@ -77,10 +77,10 @@ class Ce {
77
77
  * İlk metadata'dan önce kod 4 gelirse ve MSE varsa hls.js'e geç.
78
78
  */
79
79
  probeNativeHls(t) {
80
- if (!W() || this.engineInfo.reason === "hlsjs-failed" || this.engineInfo.reason === "option") return;
80
+ if (!X() || this.engineInfo.reason === "hlsjs-failed" || this.engineInfo.reason === "option") return;
81
81
  const e = () => r(), i = () => {
82
- var n, l;
83
- const o = ((n = this.video.error) == null ? void 0 : n.code) === 4;
82
+ var a, l;
83
+ const o = ((a = this.video.error) == null ? void 0 : a.code) === 4;
84
84
  r(), o && ((l = this.nativeAudioCleanup) == null || l.call(this), this.attachHlsJs(t));
85
85
  }, r = () => {
86
86
  this.video.removeEventListener("loadedmetadata", e), this.video.removeEventListener("error", i), this.nativeHlsProbe = null;
@@ -102,9 +102,9 @@ class Ce {
102
102
  };
103
103
  }
104
104
  async attachHlsJs(t) {
105
- var d;
105
+ var p;
106
106
  const { default: e } = await import("./hls-BOHE_fg_.js");
107
- if (((d = this.last) == null ? void 0 : d.src) !== t) return;
107
+ if (((p = this.last) == null ? void 0 : p.src) !== t) return;
108
108
  if (!e.isSupported()) {
109
109
  this.engineInfo = { engine: "native-hls", reason: "no-mse" }, this.video.src = t;
110
110
  return;
@@ -112,56 +112,56 @@ class Ce {
112
112
  const i = new e(this.buildHlsConfig());
113
113
  this.hls = i, this.engineInfo = { engine: "hls.js" };
114
114
  let r = !1, o = !1;
115
- i.on(e.Events.ERROR, (u, c) => {
116
- var h, p, m, g, v, y;
115
+ i.on(e.Events.ERROR, (u, d) => {
116
+ var h, c, g, b, v, y;
117
117
  if (this.hls === i) {
118
- const f = c;
118
+ const f = d;
119
119
  (y = (v = this.callbacks).onStreamError) == null || y.call(v, {
120
- type: String(c.type),
121
- details: String(c.details),
122
- fatal: !!c.fatal,
123
- url: f.url ?? ((h = f.frag) == null ? void 0 : h.url) ?? ((p = f.context) == null ? void 0 : p.url),
124
- httpStatus: (m = f.response) == null ? void 0 : m.code,
125
- reason: f.reason ?? ((g = f.error) == null ? void 0 : g.message)
120
+ type: String(d.type),
121
+ details: String(d.details),
122
+ fatal: !!d.fatal,
123
+ url: f.url ?? ((h = f.frag) == null ? void 0 : h.url) ?? ((c = f.context) == null ? void 0 : c.url),
124
+ httpStatus: (g = f.response) == null ? void 0 : g.code,
125
+ reason: f.reason ?? ((b = f.error) == null ? void 0 : b.message)
126
126
  });
127
127
  }
128
- if (!c.fatal || this.hls !== i) return;
129
- const b = [e.ErrorDetails.MANIFEST_LOAD_ERROR, e.ErrorDetails.MANIFEST_LOAD_TIMEOUT].includes(c.details);
130
- if (!r && b && this.video.canPlayType("application/vnd.apple.mpegurl") !== "") {
128
+ if (!d.fatal || this.hls !== i) return;
129
+ const m = [e.ErrorDetails.MANIFEST_LOAD_ERROR, e.ErrorDetails.MANIFEST_LOAD_TIMEOUT].includes(d.details);
130
+ if (!r && m && this.video.canPlayType("application/vnd.apple.mpegurl") !== "") {
131
131
  i.destroy(), this.hls = null, this.loadNativeHls(t, "hlsjs-failed");
132
132
  return;
133
133
  }
134
- if (c.type === e.ErrorTypes.MEDIA_ERROR && !o) {
134
+ if (d.type === e.ErrorTypes.MEDIA_ERROR && !o) {
135
135
  o = !0, i.recoverMediaError();
136
136
  return;
137
137
  }
138
- i.stopLoad(), this.callbacks.onFatalError(c.type === e.ErrorTypes.NETWORK_ERROR ? "network" : "media");
138
+ i.stopLoad(), this.callbacks.onFatalError(d.type === e.ErrorTypes.NETWORK_ERROR ? "network" : "media");
139
139
  });
140
- const n = () => i.levels.map((u, c) => ({ index: c, height: u.height, bitrate: u.bitrate }));
140
+ const a = () => i.levels.map((u, d) => ({ index: d, height: u.height, bitrate: u.bitrate }));
141
141
  i.on(e.Events.MANIFEST_PARSED, () => {
142
- r = !0, this.callbacks.onLevelsChanged(n(), i.currentLevel);
143
- }), i.on(e.Events.LEVEL_SWITCHED, (u, c) => {
144
- this.callbacks.onLevelsChanged(n(), i.autoLevelEnabled ? -1 : c.level);
145
- });
146
- const l = () => i.audioTracks.map((u, c) => ({ index: c, label: u.name || u.lang || `${c + 1}`, lang: u.lang ?? "" }));
147
- i.on(e.Events.AUDIO_TRACKS_UPDATED, () => this.callbacks.onAudioTracksChanged(l(), i.audioTrack)), i.on(e.Events.AUDIO_TRACK_SWITCHED, (u, c) => this.callbacks.onAudioTracksChanged(l(), c.id)), i.on(e.Events.NON_NATIVE_TEXT_TRACKS_FOUND, (u, c) => {
148
- var b;
149
- for (const h of c.tracks) {
150
- const p = h.subtitleTrack, m = p ? `sub:${p.id}` : `cc:${h._id ?? h.label}`, g = h.kind === "captions" ? "captions" : "subtitles";
151
- this.streamTextTracks.set(m, { id: m, kind: g, label: h.label, lang: (p == null ? void 0 : p.lang) ?? ((b = h.closedCaptions) == null ? void 0 : b.lang) ?? "" });
142
+ r = !0, this.callbacks.onLevelsChanged(a(), i.currentLevel);
143
+ }), i.on(e.Events.LEVEL_SWITCHED, (u, d) => {
144
+ this.callbacks.onLevelsChanged(a(), i.autoLevelEnabled ? -1 : d.level);
145
+ });
146
+ const l = () => i.audioTracks.map((u, d) => ({ index: d, label: u.name || u.lang || `${d + 1}`, lang: u.lang ?? "" }));
147
+ i.on(e.Events.AUDIO_TRACKS_UPDATED, () => this.callbacks.onAudioTracksChanged(l(), i.audioTrack)), i.on(e.Events.AUDIO_TRACK_SWITCHED, (u, d) => this.callbacks.onAudioTracksChanged(l(), d.id)), i.on(e.Events.NON_NATIVE_TEXT_TRACKS_FOUND, (u, d) => {
148
+ var m;
149
+ for (const h of d.tracks) {
150
+ const c = h.subtitleTrack, g = c ? `sub:${c.id}` : `cc:${h._id ?? h.label}`, b = h.kind === "captions" ? "captions" : "subtitles";
151
+ this.streamTextTracks.set(g, { id: g, kind: b, label: h.label, lang: (c == null ? void 0 : c.lang) ?? ((m = h.closedCaptions) == null ? void 0 : m.lang) ?? "" });
152
152
  }
153
153
  this.callbacks.onTextTracksFound([...this.streamTextTracks.values()]);
154
- }), i.on(e.Events.CUES_PARSED, (u, c) => {
155
- const b = c.type === "subtitles" && c.subtitleTrack ? `sub:${c.subtitleTrack.id}` : `cc:${c.track}`;
156
- this.callbacks.onCues(b, c.cues);
154
+ }), i.on(e.Events.CUES_PARSED, (u, d) => {
155
+ const m = d.type === "subtitles" && d.subtitleTrack ? `sub:${d.subtitleTrack.id}` : `cc:${d.track}`;
156
+ this.callbacks.onCues(m, d.cues);
157
157
  }), i.attachMedia(this.video), i.loadSource(t);
158
158
  }
159
159
  buildHlsConfig() {
160
160
  const t = this.hlsOptions.config ?? {}, e = { enableWorker: !0, renderTextTracksNatively: !1, liveDurationInfinity: !0, ...t };
161
161
  if (this.hlsOptions.withCredentials) {
162
162
  const { xhrSetup: i, fetchSetup: r } = t;
163
- e.xhrSetup = (o, n, l) => (o.withCredentials = !0, i == null ? void 0 : i(o, n, l)), e.fetchSetup = (o, n) => {
164
- const l = { ...n, credentials: "include" };
163
+ e.xhrSetup = (o, a, l) => (o.withCredentials = !0, i == null ? void 0 : i(o, a, l)), e.fetchSetup = (o, a) => {
164
+ const l = { ...a, credentials: "include" };
165
165
  return r ? r(o, l) : new Request(o.url, l);
166
166
  };
167
167
  }
@@ -171,6 +171,10 @@ class Ce {
171
171
  reload() {
172
172
  return this.last ? this.load(this.last.src, this.last.type) : Promise.resolve();
173
173
  }
174
+ /** ABR'nin çıkabileceği en yüksek seviye (kalite kilidi); -1 = sınır yok. */
175
+ setMaxLevel(t) {
176
+ this.hls && this.hls.autoLevelCapping !== t && (this.hls.autoLevelCapping = t);
177
+ }
174
178
  /** -1 = otomatik kalite (ABR). */
175
179
  setLevel(t) {
176
180
  this.hls && (this.hls.currentLevel = t);
@@ -199,13 +203,13 @@ class Ce {
199
203
  (t = this.nativeHlsProbe) == null || t.call(this), (e = this.nativeAudioCleanup) == null || e.call(this), this.hls && (this.hls.destroy(), this.hls = null);
200
204
  }
201
205
  }
202
- function w(a) {
203
- if (!Number.isFinite(a) || a < 0) return "0:00";
204
- const t = Math.floor(a), e = Math.floor(t / 3600), i = Math.floor(t % 3600 / 60), r = t % 60, o = e > 0 ? String(i).padStart(2, "0") : String(i), n = String(r).padStart(2, "0");
205
- return e > 0 ? `${e}:${o}:${n}` : `${o}:${n}`;
206
+ function w(n) {
207
+ if (!Number.isFinite(n) || n < 0) return "0:00";
208
+ const t = Math.floor(n), e = Math.floor(t / 3600), i = Math.floor(t % 3600 / 60), r = t % 60, o = e > 0 ? String(i).padStart(2, "0") : String(i), a = String(r).padStart(2, "0");
209
+ return e > 0 ? `${e}:${o}:${a}` : `${o}:${a}`;
206
210
  }
207
- const Te = 10, Se = 1;
208
- class Ae {
211
+ const Ae = 10, Le = 1;
212
+ class Pe {
209
213
  constructor(t, e) {
210
214
  s(this, "el");
211
215
  s(this, "trackEl");
@@ -235,8 +239,8 @@ class Ae {
235
239
  }
236
240
  const r = e.start + i * (e.end - e.start);
237
241
  this.hoverTimeEl.textContent = e.live ? `-${w(e.end - r)}` : w(r), this.hoverTimeEl.setAttribute("data-visible", "");
238
- const o = this.hoverTimeEl.offsetWidth, n = Math.min(Math.max(this.layoutXAtClientX(t.clientX) - o / 2, 0), Math.max(this.trackWidth - o, 0));
239
- this.hoverTimeEl.style.transform = `translateX(${n}px)`;
242
+ const o = this.hoverTimeEl.offsetWidth, a = Math.min(Math.max(this.layoutXAtClientX(t.clientX) - o / 2, 0), Math.max(this.trackWidth - o, 0));
243
+ this.hoverTimeEl.style.transform = `translateX(${a}px)`;
240
244
  });
241
245
  s(this, "onHoverLeave", () => {
242
246
  this.hoverTimeEl.removeAttribute("data-visible"), this.hoverDotEl.removeAttribute("data-visible");
@@ -280,14 +284,14 @@ class Ae {
280
284
  let o = 0;
281
285
  for (let l = 0; l < this.video.buffered.length; l++)
282
286
  this.video.buffered.start(l) <= this.video.currentTime && (o = Math.max(o, this.video.buffered.end(l)));
283
- const n = i(o);
287
+ const a = i(o);
284
288
  if (this.chapters.length)
285
289
  for (const l of this.chapters) {
286
- const d = l.end - l.start, u = (c) => d > 0 ? Math.min(1, Math.max(0, (c - l.start) / d)) : 0;
287
- l.playedEl.style.transform = `scaleX(${u(r)})`, l.bufferedEl.style.transform = `scaleX(${u(n)})`;
290
+ const p = l.end - l.start, u = (d) => p > 0 ? Math.min(1, Math.max(0, (d - l.start) / p)) : 0;
291
+ l.playedEl.style.transform = `scaleX(${u(r)})`, l.bufferedEl.style.transform = `scaleX(${u(a)})`;
288
292
  }
289
293
  else
290
- this.playedEl.style.transform = `scaleX(${r})`, this.bufferedEl.style.transform = `scaleX(${n})`;
294
+ this.playedEl.style.transform = `scaleX(${r})`, this.bufferedEl.style.transform = `scaleX(${a})`;
291
295
  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)));
292
296
  });
293
297
  this.video = t, this.labels = e, this.el = document.createElement("div"), this.el.setAttribute("part", "seek-bar"), this.el.className = "hp-seekbar hp:relative hp:h-[var(--hp-seek-hit-h)] hp:flex hp:items-center hp:cursor-pointer hp:group hp:touch-none", this.el.setAttribute("role", "slider"), this.el.setAttribute("tabindex", "0"), this.el.setAttribute("aria-label", e.seekBar), this.el.setAttribute("aria-valuemin", "0");
@@ -307,7 +311,7 @@ class Ae {
307
311
  const { seekable: e } = this.video;
308
312
  if (!e.length) return null;
309
313
  const i = e.start(0), r = e.end(e.length - 1);
310
- return r - i >= Te ? { start: i, end: r, live: !0 } : null;
314
+ return r - i >= Ae ? { start: i, end: r, live: !0 } : null;
311
315
  }
312
316
  /** Kendi zamanını gösteren plugin'ler (sprite/segments) varsayılan hover zamanını gizler — keyed set. */
313
317
  suppressHoverTime(t, e) {
@@ -321,8 +325,8 @@ class Ae {
321
325
  const e = this.layoutXAtClientX(t);
322
326
  if (!this.chapters.length) return this.trackWidth > 0 ? Math.min(1, Math.max(0, e / this.trackWidth)) : 0;
323
327
  for (let i = 0; i < this.chapters.length; i++) {
324
- const r = this.chapters[i], o = this.chapters[i + 1], n = o ? o.left : 1 / 0;
325
- if (e < n || !o) {
328
+ const r = this.chapters[i], o = this.chapters[i + 1], a = o ? o.left : 1 / 0;
329
+ if (e < a || !o) {
326
330
  const l = r.width > 0 ? Math.min(1, Math.max(0, (e - r.left) / r.width)) : 0;
327
331
  return r.start + l * (r.end - r.start);
328
332
  }
@@ -344,8 +348,8 @@ class Ae {
344
348
  r.className = "hp-chapter", r.setAttribute("part", "segment-band"), r.style.flex = `${Math.max(i.end - i.start, 0)} 1 0px`;
345
349
  const o = document.createElement("div");
346
350
  o.className = "hp-chapter-fill hp-chapter-buffered";
347
- const n = document.createElement("div");
348
- return n.className = "hp-chapter-fill hp-chapter-played", i.color && (n.style.background = i.color), r.append(o, n), e.appendChild(r), { ...i, el: r, bufferedEl: o, playedEl: n, left: 0, width: 0 };
351
+ const a = document.createElement("div");
352
+ return a.className = "hp-chapter-fill hp-chapter-played", i.color && (a.style.background = i.color), r.append(o, a), e.appendChild(r), { ...i, el: r, bufferedEl: o, playedEl: a, left: 0, width: 0 };
349
353
  }), this.trackEl.style.display = "none", this.trackEl.after(e), this.chaptersEl = e, this.measureChapters(), this.render(), this.chapters.map((i) => i.el);
350
354
  }
351
355
  clearChapters() {
@@ -377,7 +381,7 @@ class Ae {
377
381
  const e = this.timeline();
378
382
  if (!e) return;
379
383
  const i = e.start + t * (e.end - e.start);
380
- this.video.currentTime = e.live ? Math.min(i, e.end - Se) : i, this.render();
384
+ this.video.currentTime = e.live ? Math.min(i, e.end - Le) : i, this.render();
381
385
  }
382
386
  /** 0–1 arası oranda, seek bar üzerine ince bir işaret çizgisi ekler (ör. loop A/B noktaları). */
383
387
  addMarker(t, e = "") {
@@ -395,15 +399,15 @@ class Ae {
395
399
  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();
396
400
  }
397
401
  }
398
- function E(a, t = "") {
402
+ function E(n, t = "") {
399
403
  const e = document.createElement("i");
400
- return e.className = `hp-icon hp-icon-${a}${t ? ` ${t}` : ""}`, e.setAttribute("aria-hidden", "true"), e;
404
+ return e.className = `hp-icon hp-icon-${n}${t ? ` ${t}` : ""}`, e.setAttribute("aria-hidden", "true"), e;
401
405
  }
402
- function P(a, t) {
403
- a.className = a.className.replace(/hp-icon-[\w-]+/, `hp-icon-${t}`);
406
+ function M(n, t) {
407
+ n.className = n.className.replace(/hp-icon-[\w-]+/, `hp-icon-${t}`);
404
408
  }
405
- const R = 0.05, Le = 150;
406
- class Pe {
409
+ const R = 0.05, Me = 150;
410
+ class Be {
407
411
  constructor(t, e, i) {
408
412
  s(this, "el");
409
413
  /** Dokunmatikte ses butonu gizli; sessiz oynarken görünen "Sesi aç" rozeti (chrome dışında monte edilir, otomatik gizlenmez). */
@@ -424,7 +428,7 @@ class Pe {
424
428
  s(this, "scheduleHide", () => {
425
429
  this.hideTimer && clearTimeout(this.hideTimer), this.hideTimer = setTimeout(() => {
426
430
  this.hideTimer = null, this.slider.style.opacity = "0", this.slider.style.pointerEvents = "none";
427
- }, Le);
431
+ }, Me);
428
432
  });
429
433
  s(this, "onWheel", (t) => {
430
434
  if (t.preventDefault(), this.adHooks.isAdActive()) {
@@ -470,7 +474,7 @@ class Pe {
470
474
  const e = t === 0 ? this.labels.unmute : this.labels.mute;
471
475
  this.button.setAttribute("aria-label", e);
472
476
  const i = this.adHooks.isAdActive() || !this.video.paused;
473
- this.unmuteBadge.toggleAttribute("data-visible", t === 0 && i), this.unmuteText.textContent = this.labels.unmute, t === 0 ? P(this.iconEl, "volume-muted") : t < 0.5 ? P(this.iconEl, "volume-low") : P(this.iconEl, "volume-high");
477
+ this.unmuteBadge.toggleAttribute("data-visible", t === 0 && i), this.unmuteText.textContent = this.labels.unmute, t === 0 ? M(this.iconEl, "volume-muted") : t < 0.5 ? M(this.iconEl, "volume-low") : M(this.iconEl, "volume-high");
474
478
  });
475
479
  this.video = t, this.labels = e, this.adHooks = i, this.el = document.createElement("div"), this.el.className = "hp-volume hp:relative hp:flex hp:items-center", this.unmuteBadge = document.createElement("button"), this.unmuteBadge.type = "button", this.unmuteBadge.className = "hp-unmute-badge", this.unmuteBadge.setAttribute("part", "unmute-badge"), this.unmuteBadge.appendChild(E("volume-muted", "hp:text-base")), this.unmuteText = document.createElement("span"), this.unmuteText.textContent = e.unmute, this.unmuteBadge.appendChild(this.unmuteText), this.unmuteBadge.addEventListener("pointerdown", (o) => o.stopPropagation()), this.unmuteBadge.addEventListener("click", (o) => {
476
480
  o.stopPropagation(), this.unmute();
@@ -506,8 +510,8 @@ class Pe {
506
510
  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();
507
511
  }
508
512
  }
509
- const O = 8, C = 8, X = 100, B = 256;
510
- class Me {
513
+ const Re = '<svg class="hp-lock" viewBox="0 0 24 24" width="14" height="14" aria-hidden="true"><path fill="currentColor" d="M12 2a5 5 0 0 0-5 5v3H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2h-1V7a5 5 0 0 0-5-5Zm-3 8V7a3 3 0 1 1 6 0v3H9Z"/></svg>', F = 8, C = 8, Q = 100, z = 256;
514
+ class ze {
511
515
  constructor(t, e, i) {
512
516
  s(this, "el");
513
517
  s(this, "button");
@@ -532,22 +536,22 @@ class Me {
532
536
  * yükseklik player içinde kalan alanla sınırlı — küçük player'da menü dışarı taşmaz, kendi içinde kayar.
533
537
  */
534
538
  s(this, "fitToPlayer", () => {
535
- var d;
539
+ var p;
536
540
  if (!this.open) return;
537
541
  const t = this.el.closest(".video-area");
538
542
  if (!t) return;
539
- if ((d = this.el.getRootNode().host) != null && d.hasAttribute("data-audio-compact")) {
543
+ if ((p = this.el.getRootNode().host) != null && p.hasAttribute("data-audio-compact")) {
540
544
  this.fitToViewport();
541
545
  return;
542
546
  }
543
547
  const e = t.getBoundingClientRect(), i = this.button.getBoundingClientRect(), r = this.el.getBoundingClientRect(), o = !!this.el.closest(".hp-top-bar");
544
548
  this.panel.toggleAttribute("data-drop", o), Object.assign(this.panel.style, { top: "", bottom: "", marginTop: "", marginBottom: "" });
545
- const n = this.panel.scrollHeight, l = (o ? e.bottom - i.bottom : i.top - e.top) - O - C;
546
- if (n <= l || l >= X) {
547
- this.panel.style.maxHeight = `${Math.min(B, l)}px`;
549
+ const a = this.panel.scrollHeight, l = (o ? e.bottom - i.bottom : i.top - e.top) - F - C;
550
+ if (a <= l || l >= Q) {
551
+ this.panel.style.maxHeight = `${Math.min(z, l)}px`;
548
552
  return;
549
553
  }
550
- this.panel.style.maxHeight = `${Math.min(B, e.height - 2 * C)}px`, o ? Object.assign(this.panel.style, { top: `${e.top + C - r.top}px`, marginTop: "0" }) : Object.assign(this.panel.style, { bottom: `${r.bottom - (e.bottom - C)}px`, marginBottom: "0" });
554
+ this.panel.style.maxHeight = `${Math.min(z, e.height - 2 * C)}px`, o ? Object.assign(this.panel.style, { top: `${e.top + C - r.top}px`, marginTop: "0" }) : Object.assign(this.panel.style, { bottom: `${r.bottom - (e.bottom - C)}px`, marginBottom: "0" });
551
555
  });
552
556
  s(this, "onDocumentClick", (t) => {
553
557
  this.open && !t.composedPath().includes(this.el) && this.close();
@@ -601,8 +605,8 @@ class Me {
601
605
  fitToViewport() {
602
606
  const t = this.button.getBoundingClientRect();
603
607
  Object.assign(this.panel.style, { top: "", bottom: "", marginTop: "", marginBottom: "" });
604
- const e = this.panel.scrollHeight, i = t.top - O - C, r = window.innerHeight - t.bottom - O - C, o = i < Math.min(e, B) && r > i;
605
- this.panel.toggleAttribute("data-drop", o), this.panel.style.maxHeight = `${Math.max(X, Math.min(B, o ? r : i))}px`;
608
+ const e = this.panel.scrollHeight, i = t.top - F - C, r = window.innerHeight - t.bottom - F - C, o = i < Math.min(e, z) && r > i;
609
+ this.panel.toggleAttribute("data-drop", o), this.panel.style.maxHeight = `${Math.max(Q, Math.min(z, o ? r : i))}px`;
606
610
  }
607
611
  /** Düzen değişince (ör. kompakt ↔ normal) açık menüyü kapat — eski konumunda asılı kalmasın. */
608
612
  closeMenu() {
@@ -686,12 +690,10 @@ class Me {
686
690
  renderQuality() {
687
691
  this.panel.innerHTML = "", this.panel.appendChild(this.backRow(this.labels.quality, () => this.renderMain()));
688
692
  for (const t of this.qualities) {
689
- const e = t.label === this.activeQualityLabel;
690
- this.panel.appendChild(
691
- this.row(t.label, e ? '<i class="hp-icon hp-icon-check"></i>' : "", () => {
692
- t.onSelect(), this.close();
693
- })
694
- );
693
+ const e = t.label === this.activeQualityLabel, i = this.row(t.label, t.locked ? Re : e ? '<i class="hp-icon hp-icon-check"></i>' : "", () => {
694
+ t.onSelect(), this.close();
695
+ });
696
+ t.locked && i.setAttribute("data-locked", ""), this.panel.appendChild(i);
695
697
  }
696
698
  }
697
699
  renderCaptions() {
@@ -723,17 +725,17 @@ class Me {
723
725
  );
724
726
  const t = this.captionAppearance;
725
727
  if (!t) return;
726
- 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>` : "";
728
+ const e = (a) => a ? `<span class="hp:inline-block hp:w-3 hp:h-3 hp:rounded-full hp:border hp:border-on-surface/30" style="background:${a}"></span>` : "";
727
729
  this.panel.appendChild(
728
- this.row(t.sizeLabel, ((i = t.getSizeOptions().find((n) => n.active)) == null ? void 0 : i.label) ?? "", () => {
730
+ this.row(t.sizeLabel, ((i = t.getSizeOptions().find((a) => a.active)) == null ? void 0 : i.label) ?? "", () => {
729
731
  this.currentPanel = "captions-size", this.renderCaptionsSize();
730
732
  })
731
733
  ), this.panel.appendChild(
732
- this.row(t.bgColorLabel, e((r = t.getBgColorOptions().find((n) => n.active)) == null ? void 0 : r.value), () => {
734
+ this.row(t.bgColorLabel, e((r = t.getBgColorOptions().find((a) => a.active)) == null ? void 0 : r.value), () => {
733
735
  this.currentPanel = "captions-bg", this.renderCaptionColorPanel("bg");
734
736
  })
735
737
  ), this.panel.appendChild(
736
- this.row(t.textColorLabel, e((o = t.getTextColorOptions().find((n) => n.active)) == null ? void 0 : o.value), () => {
738
+ this.row(t.textColorLabel, e((o = t.getTextColorOptions().find((a) => a.active)) == null ? void 0 : o.value), () => {
737
739
  this.currentPanel = "captions-text", this.renderCaptionColorPanel("text");
738
740
  })
739
741
  ), this.panel.appendChild(
@@ -761,10 +763,10 @@ class Me {
761
763
  const r = document.createElement("div");
762
764
  r.className = "hp:flex hp:flex-wrap hp:gap-2 hp:px-3 hp:py-2";
763
765
  const o = t === "bg" ? e.getBgColorOptions() : e.getTextColorOptions();
764
- for (const n of o) {
766
+ for (const a of o) {
765
767
  const l = document.createElement("button");
766
- 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", () => {
767
- n.onSelect(), this.render();
768
+ l.type = "button", l.setAttribute("aria-label", a.ariaLabel), l.className = "hp:w-7 hp:h-7 hp:rounded-full hp:cursor-pointer hp:flex-shrink-0 hp:border hp:border-on-surface/20", l.style.background = a.value, l.style.outline = a.active ? "2px solid currentColor" : "2px solid transparent", l.style.outlineOffset = "2px", l.addEventListener("click", () => {
769
+ a.onSelect(), this.render();
768
770
  }), r.appendChild(l);
769
771
  }
770
772
  this.panel.appendChild(r);
@@ -777,27 +779,27 @@ class Me {
777
779
  document.removeEventListener("click", this.onDocumentClick, !0), this.panelObserver.disconnect();
778
780
  }
779
781
  }
780
- function pe(a, t) {
781
- const e = a.seekable.length ? a.seekable.start(0) : 0, i = Number.isFinite(a.duration) ? a.duration : a.seekable.length ? a.seekable.end(a.seekable.length - 1) : a.currentTime;
782
- a.currentTime = Math.max(e, Math.min(i, a.currentTime + t));
782
+ function ce(n, t) {
783
+ const e = n.seekable.length ? n.seekable.start(0) : 0, i = Number.isFinite(n.duration) ? n.duration : n.seekable.length ? n.seekable.end(n.seekable.length - 1) : n.currentTime;
784
+ n.currentTime = Math.max(e, Math.min(i, n.currentTime + t));
783
785
  }
784
- const Re = 15, Be = 480, ze = 150, $ = ["waiting", "seeking"], U = ["playing", "canplay", "canplaythrough", "seeked", "pause", "error", "emptied"];
785
- function j(a, t) {
786
- const { btn: e } = L("", `skip-${a}`);
786
+ const Ne = 15, Ie = 480, Oe = 150, $ = ["waiting", "seeking"], K = ["playing", "canplay", "canplaythrough", "seeked", "pause", "error", "emptied"];
787
+ function j(n, t) {
788
+ const { btn: e } = P("", `skip-${n}`);
787
789
  e.classList.add("hp-skip-btn"), e.setAttribute("part", t);
788
790
  const i = document.createElement("span");
789
791
  return i.className = "hp-skip-num", i.setAttribute("aria-hidden", "true"), e.appendChild(i), e.style.display = "none", { btn: e, num: i };
790
792
  }
791
- function T(a, t) {
792
- a.setAttribute("aria-label", t);
793
+ function T(n, t) {
794
+ n.setAttribute("aria-label", t);
793
795
  }
794
- function L(a, t, e) {
796
+ function P(n, t, e) {
795
797
  const i = document.createElement("button");
796
- i.type = "button", T(i, a), 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";
798
+ i.type = "button", T(i, n), e && (i.dataset.shortcut = e), i.className = "hp-chip hp:flex hp:items-center hp:justify-center hp:w-[var(--hp-ctrl-btn-size)] hp:h-[var(--hp-ctrl-btn-size)] hp:cursor-pointer hp:shrink-0";
797
799
  const r = E(t, "hp:text-[length:var(--hp-ctrl-icon-size)]");
798
800
  return i.appendChild(r), { btn: i, icon: r };
799
801
  }
800
- class Ie {
802
+ class Fe {
801
803
  constructor(t, e, i, r) {
802
804
  s(this, "el");
803
805
  s(this, "seekBar");
@@ -854,28 +856,28 @@ class Ie {
854
856
  s(this, "renderPlayState", () => {
855
857
  var e;
856
858
  const t = this.callbacks.isAdActive() ? this.callbacks.adIsPaused() : this.video.paused && !this.pendingPlay;
857
- P(this.playIcon, t ? "play" : "pause"), T(this.playButton, t ? this.labels.play : this.labels.pause), (e = this.barMetaEl) == null || e.toggleAttribute("data-playing", !t && !this.callbacks.isAdActive());
859
+ M(this.playIcon, t ? "play" : "pause"), T(this.playButton, t ? this.labels.play : this.labels.pause), (e = this.barMetaEl) == null || e.toggleAttribute("data-playing", !t && !this.callbacks.isAdActive());
858
860
  });
859
861
  s(this, "renderTime", () => {
860
862
  var r, o;
861
863
  const t = this.video.duration === 1 / 0;
862
864
  if (this.timeLabel.style.display = this.adMode || t ? "none" : "", this.liveBadge.style.display = !this.adMode && t ? "" : "none", !t) {
863
- const n = this.video.duration, l = this.video.currentTime;
865
+ const a = this.video.duration, l = this.video.currentTime;
864
866
  if (this.showRemaining) {
865
- const d = Number.isFinite(n) ? Math.floor(n) : 0, u = Math.max(0, d - Math.floor(l));
866
- this.timeLabel.textContent = `-${w(u)} / ${w(n)}`;
867
+ const p = Number.isFinite(a) ? Math.floor(a) : 0, u = Math.max(0, p - Math.floor(l));
868
+ this.timeLabel.textContent = `-${w(u)} / ${w(a)}`;
867
869
  } else
868
- this.timeLabel.textContent = `${w(l)} / ${w(n)}`;
870
+ this.timeLabel.textContent = `${w(l)} / ${w(a)}`;
869
871
  return;
870
872
  }
871
- const e = ((o = (r = this.callbacks).liveSyncPosition) == null ? void 0 : o.call(r)) ?? this.liveEdge(), i = e !== null && e - this.video.currentTime > Re;
873
+ const e = ((o = (r = this.callbacks).liveSyncPosition) == null ? void 0 : o.call(r)) ?? this.liveEdge(), i = e !== null && e - this.video.currentTime > Ne;
872
874
  this.liveBadge.toggleAttribute("data-behind", i);
873
875
  });
874
876
  /** Buffer bekleniyor (oynarken takılma ya da buffer'lanmamış bir yere atlama). */
875
877
  s(this, "onLoadingStart", (t) => {
876
878
  t.type === "seeking" && this.video.readyState >= HTMLMediaElement.HAVE_FUTURE_DATA || this.loadingTimer || this.loadingReasons.has("media") || (this.loadingTimer = setTimeout(() => {
877
879
  this.loadingTimer = null, this.setLoading("media", !0);
878
- }, ze));
880
+ }, Oe));
879
881
  });
880
882
  s(this, "onLoadingEnd", (t) => {
881
883
  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));
@@ -886,29 +888,29 @@ class Ie {
886
888
  e === null && t == null || (this.video.currentTime = t ?? Math.max(0, e - 1), this.video.paused && this.video.play().catch(() => {
887
889
  }), this.renderTime());
888
890
  });
889
- this.video = t, this.callbacks = i, this.labels = r, this.el = document.createElement("div"), this.el.setAttribute("part", "control-bar"), this.el.className = "hp:absolute hp:inset-x-0 hp:bottom-0 hp:flex hp:flex-col hp:gap-1 hp:px-3 hp:pb-2 hp:pt-6 hp:pointer-events-none hp:transition-opacity hp:duration-200", this.seekBar = new Ae(t, r), this.seekBar.el.classList.add("hp:pointer-events-auto"), this.el.appendChild(this.seekBar.el);
891
+ this.video = t, this.callbacks = i, this.labels = r, this.el = document.createElement("div"), this.el.setAttribute("part", "control-bar"), this.el.className = "hp:absolute hp:inset-x-0 hp:bottom-0 hp:flex hp:flex-col hp:gap-1 hp:px-3 hp:pb-2 hp:pt-6 hp:pointer-events-none hp:transition-opacity hp:duration-200", this.seekBar = new Pe(t, r), this.seekBar.el.classList.add("hp:pointer-events-auto"), this.el.appendChild(this.seekBar.el);
890
892
  const o = document.createElement("div");
891
893
  o.className = "hp:flex hp:items-center hp:gap-2", this.el.appendChild(o), this.bottomRow = o;
892
- const n = document.createElement("div");
893
- 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", o.appendChild(n), this.leftGroup = n;
894
+ const a = document.createElement("div");
895
+ a.className = "hp-group hp-group-left hp:flex hp:items-center hp:gap-1 hp:px-1.5 hp:py-1 hp:shrink-0 hp:pointer-events-auto", o.appendChild(a), this.leftGroup = a;
894
896
  const l = document.createElement("span");
895
897
  l.className = "hp-loading-ring", l.setAttribute("aria-hidden", "true");
898
+ const p = document.createElement("span");
899
+ p.className = "hp-loading-ring-mask", p.appendChild(document.createElement("span")), l.appendChild(p), a.appendChild(l);
900
+ const u = P(r.play, "play", "K");
901
+ this.playButton = u.btn, this.playIcon = u.icon, this.playButton.setAttribute("part", "play-pause-button"), this.playButton.addEventListener("click", () => this.togglePlay()), a.appendChild(this.playButton), this.skipBack = j("back", "skip-back-button"), this.skipBack.btn.addEventListener("click", () => this.skip(-(this.skipSeconds.back ?? 0))), this.skipForward = j("forward", "skip-forward-button"), this.skipForward.btn.addEventListener("click", () => this.skip(this.skipSeconds.forward ?? 0)), a.append(this.skipBack.btn, this.skipForward.btn), this.volumePanel = new Be(t, r, i.adVolume), a.appendChild(this.volumePanel.el), this.timeLabel = document.createElement("button"), this.timeLabel.type = "button", this.timeLabel.setAttribute("part", "time-display"), this.timeLabel.className = "hp:text-xs hp:text-on-surface hp:tabular-nums hp:whitespace-nowrap hp:px-1 hp:bg-transparent hp:border-0 hp:cursor-pointer hp:select-none hp:p-0 hp:hover:opacity-80 hp:transition-opacity hp:focus-visible:outline-none hp:focus-visible:ring-1 hp:focus-visible:ring-accent hp:rounded", this.timeLabel.textContent = "0:00 / 0:00", this.timeLabel.addEventListener("click", this.onTimeClick), a.appendChild(this.timeLabel), this.adInfoEl = document.createElement("span"), this.adInfoEl.setAttribute("part", "ad-countdown"), this.adInfoEl.className = "hp:text-xs hp:text-on-surface hp:tabular-nums hp:whitespace-nowrap hp:px-1 hp:select-none", this.adInfoEl.setAttribute("aria-live", "off"), this.adInfoEl.style.display = "none", this.liveBadge = document.createElement("button"), this.liveBadge.type = "button", this.liveBadge.className = "hp-live-badge", this.liveBadge.setAttribute("part", "live-badge"), this.liveBadge.setAttribute("aria-label", r.goToLive);
896
902
  const d = document.createElement("span");
897
- d.className = "hp-loading-ring-mask", d.appendChild(document.createElement("span")), l.appendChild(d), n.appendChild(l);
898
- const u = L(r.play, "play", "K");
899
- this.playButton = u.btn, this.playIcon = u.icon, this.playButton.setAttribute("part", "play-pause-button"), this.playButton.addEventListener("click", () => this.togglePlay()), n.appendChild(this.playButton), this.skipBack = j("back", "skip-back-button"), this.skipBack.btn.addEventListener("click", () => this.skip(-(this.skipSeconds.back ?? 0))), this.skipForward = j("forward", "skip-forward-button"), this.skipForward.btn.addEventListener("click", () => this.skip(this.skipSeconds.forward ?? 0)), n.append(this.skipBack.btn, this.skipForward.btn), this.volumePanel = new Pe(t, r, 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:focus-visible:outline-none hp:focus-visible:ring-1 hp:focus-visible:ring-accent hp:rounded", this.timeLabel.textContent = "0:00 / 0:00", this.timeLabel.addEventListener("click", this.onTimeClick), 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", r.goToLive);
900
- const c = document.createElement("span");
901
- c.className = "hp-live-dot", this.liveText = document.createElement("span"), this.liveText.textContent = r.live, this.liveBadge.append(c, this.liveText), this.liveBadge.style.display = "none", this.liveBadge.addEventListener("click", this.goToLive), n.appendChild(this.liveBadge), n.appendChild(this.adInfoEl);
902
- const b = document.createElement("div");
903
- b.className = "hp:flex-1 hp:min-w-0", o.appendChild(b), this.spacerEl = b;
903
+ d.className = "hp-live-dot", this.liveText = document.createElement("span"), this.liveText.textContent = r.live, this.liveBadge.append(d, this.liveText), this.liveBadge.style.display = "none", this.liveBadge.addEventListener("click", this.goToLive), a.appendChild(this.liveBadge), a.appendChild(this.adInfoEl);
904
+ const m = document.createElement("div");
905
+ m.className = "hp:flex-1 hp:min-w-0", o.appendChild(m), this.spacerEl = m;
904
906
  const h = document.createElement("div");
905
- h.className = "hp-group hp:flex hp:items-center hp:gap-1 hp:px-1.5 hp:py-1 hp:shrink-0 hp:pointer-events-auto", o.appendChild(h), this.rightGroup = h, this.settingsMenu = new Me(t, e, r), h.appendChild(this.settingsMenu.el), this.extraButtonAnchor = this.settingsMenu.el, this.row = h;
906
- const p = L(r.pip, "pip");
907
- this.pipButton = p.btn, this.pipButton.addEventListener("click", () => this.togglePip()), document.pictureInPictureEnabled || (this.pipButton.style.display = "none"), h.appendChild(this.pipButton);
908
- const m = L(r.fullscreenEnter, "fullscreen-enter", "F");
909
- this.fullscreenButton = m.btn, this.fullscreenIcon = m.icon, this.fullscreenButton.addEventListener("click", () => this.toggleFullscreen()), h.appendChild(this.fullscreenButton), this.topEl = document.createElement("div"), this.topEl.className = "hp-top-bar", this.topEl.setAttribute("part", "top-bar"), this.fullscreenSlot = document.createElement("div"), this.fullscreenSlot.className = "hp-group hp:items-center hp:px-1.5 hp:py-1 hp:shrink-0 hp:pointer-events-auto", this.fullscreenSlot.style.display = "none", o.appendChild(this.fullscreenSlot), this.resizeObserver = new ResizeObserver(() => this.updateLayout()), this.resizeObserver.observe(this.el), t.addEventListener("play", this.renderPlayState), t.addEventListener("pause", this.renderPlayState), t.addEventListener("timeupdate", this.renderTime), t.addEventListener("loadedmetadata", this.renderTime), t.addEventListener("durationchange", this.renderTime), t.addEventListener("progress", this.renderTime), t.addEventListener("emptied", this.renderTime);
910
- for (const g of $) t.addEventListener(g, this.onLoadingStart);
911
- for (const g of U) t.addEventListener(g, this.onLoadingEnd);
907
+ h.className = "hp-group hp:flex hp:items-center hp:gap-1 hp:px-1.5 hp:py-1 hp:shrink-0 hp:pointer-events-auto", o.appendChild(h), this.rightGroup = h, this.settingsMenu = new ze(t, e, r), h.appendChild(this.settingsMenu.el), this.extraButtonAnchor = this.settingsMenu.el, this.row = h;
908
+ const c = P(r.pip, "pip");
909
+ this.pipButton = c.btn, this.pipButton.addEventListener("click", () => this.togglePip()), document.pictureInPictureEnabled || (this.pipButton.style.display = "none"), h.appendChild(this.pipButton);
910
+ const g = P(r.fullscreenEnter, "fullscreen-enter", "F");
911
+ this.fullscreenButton = g.btn, this.fullscreenIcon = g.icon, this.fullscreenButton.addEventListener("click", () => this.toggleFullscreen()), h.appendChild(this.fullscreenButton), this.topEl = document.createElement("div"), this.topEl.className = "hp-top-bar", this.topEl.setAttribute("part", "top-bar"), this.fullscreenSlot = document.createElement("div"), this.fullscreenSlot.className = "hp-group hp:items-center hp:px-1.5 hp:py-1 hp:shrink-0 hp:pointer-events-auto", this.fullscreenSlot.style.display = "none", o.appendChild(this.fullscreenSlot), this.resizeObserver = new ResizeObserver(() => this.updateLayout()), this.resizeObserver.observe(this.el), t.addEventListener("play", this.renderPlayState), t.addEventListener("pause", this.renderPlayState), t.addEventListener("timeupdate", this.renderTime), t.addEventListener("loadedmetadata", this.renderTime), t.addEventListener("durationchange", this.renderTime), t.addEventListener("progress", this.renderTime), t.addEventListener("emptied", this.renderTime);
912
+ for (const b of $) t.addEventListener(b, this.onLoadingStart);
913
+ for (const b of K) t.addEventListener(b, this.onLoadingEnd);
912
914
  this.renderPlayState(), this.renderTime();
913
915
  }
914
916
  /** 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. */
@@ -916,7 +918,7 @@ class Ie {
916
918
  var i;
917
919
  const t = this.el.getBoundingClientRect().width;
918
920
  if (t === 0) return;
919
- const e = !this.forceInline && t < Be;
921
+ const e = !this.forceInline && t < Ie;
920
922
  e !== this.compact && (this.compact = e, this.settingsMenu.closeMenu(), this.el.toggleAttribute("data-compact", e), (i = this.el.closest(".video-area")) == null || i.toggleAttribute("data-compact", e), e ? (this.fullscreenSlot.appendChild(this.fullscreenButton), this.fullscreenSlot.style.display = this.adMode || this.audioMode ? "none" : "flex", this.topEl.appendChild(this.rightGroup)) : (this.rightGroup.appendChild(this.fullscreenButton), this.bottomRow.insertBefore(this.rightGroup, this.fullscreenSlot), this.fullscreenSlot.style.display = "none"));
921
923
  }
922
924
  /**
@@ -940,7 +942,7 @@ class Ie {
940
942
  this.audioMode = t, this.fullscreenButton.style.display = t ? "none" : "", this.compact && (this.fullscreenSlot.style.display = t || this.adMode ? "none" : "flex"), this.pipButton.style.display = t || !document.pictureInPictureEnabled ? "none" : "";
941
943
  }
942
944
  setFullscreenState(t) {
943
- P(this.fullscreenIcon, t ? "fullscreen-exit" : "fullscreen-enter"), T(this.fullscreenButton, t ? this.labels.fullscreenExit : this.labels.fullscreenEnter);
945
+ M(this.fullscreenIcon, t ? "fullscreen-exit" : "fullscreen-enter"), T(this.fullscreenButton, t ? this.labels.fullscreenExit : this.labels.fullscreenEnter);
944
946
  }
945
947
  /** Dil sonradan değişince (`options.locale`/`labels`) statik (reaktif olarak yeniden render edilmeyen) etiketleri tazeler. */
946
948
  /** Geri/ileri sarma butonları — `null` süre o butonu gizler. */
@@ -959,7 +961,7 @@ class Ie {
959
961
  }
960
962
  skip(t) {
961
963
  var e;
962
- !t || !this.seekingEnabled || (pe(this.video, t), (e = this.onSkip) == null || e.call(this, t));
964
+ !t || !this.seekingEnabled || (ce(this.video, t), (e = this.onSkip) == null || e.call(this, t));
963
965
  }
964
966
  refreshLabels() {
965
967
  this.renderPlayState(), this.renderSkipButtons(), T(this.pipButton, this.labels.pip), T(this.liveBadge, this.labels.goToLive), this.liveText.textContent = this.labels.live, this.setFullscreenState(this.callbacks.isFullscreen()), this.seekBar.refreshLabels(), this.volumePanel.refreshLabels(), this.settingsMenu.refreshLabels();
@@ -993,7 +995,7 @@ class Ie {
993
995
  }
994
996
  /** Plugin'lerin (loop-section vb.) kontrol çubuğuna kendi butonlarını eklemesi için — ayarlar menüsünden önce yerleştirilir. */
995
997
  addButton(t, e, i) {
996
- const { btn: r, icon: o } = L(t, e);
998
+ const { btn: r, icon: o } = P(t, e);
997
999
  return r.addEventListener("click", i), this.row.insertBefore(r, this.extraButtonAnchor), { btn: r, icon: o };
998
1000
  }
999
1001
  toggleTimeMode() {
@@ -1054,15 +1056,15 @@ class Ie {
1054
1056
  destroy() {
1055
1057
  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);
1056
1058
  for (const t of $) this.video.removeEventListener(t, this.onLoadingStart);
1057
- for (const t of U) this.video.removeEventListener(t, this.onLoadingEnd);
1059
+ for (const t of K) this.video.removeEventListener(t, this.onLoadingEnd);
1058
1060
  this.loadingTimer && clearTimeout(this.loadingTimer), this.resizeObserver.disconnect(), this.topEl.remove(), this.seekBar.destroy(), this.settingsMenu.destroy();
1059
1061
  }
1060
1062
  }
1061
- const Ne = 450, Oe = 60, K = 8, D = 6, De = /* @__PURE__ */ new Set(["seek-bar", "time-display"]);
1062
- function Fe() {
1063
+ const De = 450, He = 60, Y = 8, D = 6, qe = /* @__PURE__ */ new Set(["seek-bar", "time-display"]);
1064
+ function Ve() {
1063
1065
  return typeof window.matchMedia != "function" || window.matchMedia("(hover: hover)").matches;
1064
1066
  }
1065
- class He {
1067
+ class _e {
1066
1068
  constructor(t) {
1067
1069
  s(this, "el");
1068
1070
  s(this, "labelEl");
@@ -1116,18 +1118,18 @@ class He {
1116
1118
  const e = t, i = (o = e == null ? void 0 : e.closest) == null ? void 0 : o.call(e, 'button[aria-label], [role="slider"][aria-label]');
1117
1119
  if (!i) return null;
1118
1120
  const r = i.getAttribute("part");
1119
- return r && De.has(r) || i.offsetParent === null && i !== document.activeElement ? null : i;
1121
+ return r && qe.has(r) || i.offsetParent === null && i !== document.activeElement ? null : i;
1120
1122
  }
1121
1123
  scheduleShow(t) {
1122
1124
  this.hideTimer && (clearTimeout(this.hideTimer), this.hideTimer = null), this.showTimer && clearTimeout(this.showTimer), this.pendingTarget = t, this.showTimer = setTimeout(() => {
1123
1125
  this.showTimer = null, this.pendingTarget = null, this.show(t);
1124
- }, Ne);
1126
+ }, De);
1125
1127
  }
1126
1128
  scheduleHide() {
1127
- this.showTimer && (clearTimeout(this.showTimer), this.showTimer = null), this.pendingTarget = null, this.hideTimer && clearTimeout(this.hideTimer), this.hideTimer = setTimeout(() => this.hideNow(), Oe);
1129
+ this.showTimer && (clearTimeout(this.showTimer), this.showTimer = null), this.pendingTarget = null, this.hideTimer && clearTimeout(this.hideTimer), this.hideTimer = setTimeout(() => this.hideNow(), He);
1128
1130
  }
1129
1131
  show(t) {
1130
- if (!Fe()) return;
1132
+ if (!Ve()) return;
1131
1133
  const e = t.getAttribute("aria-label");
1132
1134
  if (!e) return;
1133
1135
  this.currentTarget = t, this.labelEl.textContent = e;
@@ -1139,14 +1141,14 @@ class He {
1139
1141
  }
1140
1142
  position(t) {
1141
1143
  const e = this.mountEl.getBoundingClientRect(), i = t.getBoundingClientRect(), r = this.el.getBoundingClientRect();
1142
- let o = i.top - e.top - r.height - K;
1143
- o < D && (o = i.bottom - e.top + K);
1144
- let n = i.left - e.left + i.width / 2 - r.width / 2;
1144
+ let o = i.top - e.top - r.height - Y;
1145
+ o < D && (o = i.bottom - e.top + Y);
1146
+ let a = i.left - e.left + i.width / 2 - r.width / 2;
1145
1147
  const l = e.width - r.width - D;
1146
- n = Math.max(D, Math.min(n, l)), this.el.style.top = `${o}px`, this.el.style.left = `${n}px`;
1148
+ a = Math.max(D, Math.min(a, l)), this.el.style.top = `${o}px`, this.el.style.left = `${a}px`;
1147
1149
  }
1148
1150
  }
1149
- class _e {
1151
+ class Ge {
1150
1152
  constructor(t, e, i) {
1151
1153
  s(this, "host");
1152
1154
  s(this, "video");
@@ -1158,7 +1160,7 @@ class _e {
1158
1160
  /** Space/K'den önce sorulur — true dönerse işlenmiştir (ör. preroll beklemesini iptal). */
1159
1161
  s(this, "interceptTogglePlay", null);
1160
1162
  s(this, "onKeyDown", (t) => {
1161
- var r, o, n;
1163
+ var r, o, a;
1162
1164
  if (t.defaultPrevented) return;
1163
1165
  const e = t.composedPath()[0];
1164
1166
  if ((t.key === " " || t.key === "Enter") && e instanceof HTMLButtonElement) return;
@@ -1178,7 +1180,7 @@ class _e {
1178
1180
  break;
1179
1181
  case "ArrowLeft":
1180
1182
  case "j":
1181
- this.video.currentTime = Math.max(0, this.video.currentTime - this.seekStep), (n = this.onSeek) == null || n.call(this, -this.seekStep), t.preventDefault();
1183
+ this.video.currentTime = Math.max(0, this.video.currentTime - this.seekStep), (a = this.onSeek) == null || a.call(this, -this.seekStep), t.preventDefault();
1182
1184
  break;
1183
1185
  case "ArrowUp":
1184
1186
  this.video.volume = Math.min(1, this.video.volume + 0.1), this.video.muted = !1, t.preventDefault();
@@ -1200,7 +1202,7 @@ class _e {
1200
1202
  this.host.removeEventListener("keydown", this.onKeyDown);
1201
1203
  }
1202
1204
  }
1203
- class Ve {
1205
+ class Ue {
1204
1206
  constructor(t) {
1205
1207
  s(this, "el");
1206
1208
  s(this, "video");
@@ -1212,8 +1214,8 @@ class Ve {
1212
1214
  this.video.removeEventListener("waiting", this.show), this.video.removeEventListener("playing", this.hide), this.video.removeEventListener("canplay", this.hide), this.video.removeEventListener("pause", this.hide);
1213
1215
  }
1214
1216
  }
1215
- const qe = '<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>';
1216
- class Ge {
1217
+ const We = '<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20 11a8 8 0 1 0-2.3 5.7"/><path d="M20 4v7h-7"/></svg>';
1218
+ class Xe {
1217
1219
  constructor(t, e) {
1218
1220
  s(this, "el");
1219
1221
  s(this, "video");
@@ -1233,7 +1235,7 @@ class Ge {
1233
1235
  const i = document.createElement("div");
1234
1236
  i.className = "hp-error-card";
1235
1237
  const r = document.createElement("div");
1236
- r.className = "hp-error-icon", r.appendChild(E("warning")), i.appendChild(r), this.messageEl = document.createElement("p"), this.messageEl.className = "hp-error-message", i.appendChild(this.messageEl), this.codeEl = document.createElement("p"), this.codeEl.className = "hp-error-code", i.appendChild(this.codeEl), this.retryBtn = document.createElement("button"), this.retryBtn.type = "button", this.retryBtn.className = "hp-error-retry", this.retryBtn.innerHTML = qe, this.retryText = document.createElement("span"), this.retryText.textContent = e.retry, this.retryBtn.appendChild(this.retryText), this.retryBtn.addEventListener("click", () => {
1238
+ r.className = "hp-error-icon", r.appendChild(E("warning")), i.appendChild(r), this.messageEl = document.createElement("p"), this.messageEl.className = "hp-error-message", i.appendChild(this.messageEl), this.codeEl = document.createElement("p"), this.codeEl.className = "hp-error-code", i.appendChild(this.codeEl), this.retryBtn = document.createElement("button"), this.retryBtn.type = "button", this.retryBtn.className = "hp-error-retry", this.retryBtn.innerHTML = We, this.retryText = document.createElement("span"), this.retryText.textContent = e.retry, this.retryBtn.appendChild(this.retryText), this.retryBtn.addEventListener("click", () => {
1237
1239
  var o;
1238
1240
  this.dismiss(), (o = this.onRetry) == null || o.call(this);
1239
1241
  }), i.appendChild(this.retryBtn), this.el.appendChild(i), t.addEventListener("error", this.show);
@@ -1279,129 +1281,129 @@ class Ge {
1279
1281
  this.video.removeEventListener("error", this.show);
1280
1282
  }
1281
1283
  }
1282
- const F = /* @__PURE__ */ new WeakMap(), ce = /* @__PURE__ */ new WeakSet(), N = /* @__PURE__ */ new WeakMap();
1283
- function We(a) {
1284
- return ce.has(a);
1284
+ const H = /* @__PURE__ */ new WeakMap(), ue = /* @__PURE__ */ new WeakSet(), O = /* @__PURE__ */ new WeakMap();
1285
+ function Qe(n) {
1286
+ return ue.has(n);
1285
1287
  }
1286
- function de(a, t, e, i, r) {
1287
- let o = F.get(a);
1288
- o || F.set(a, o = /* @__PURE__ */ new Map());
1289
- const n = `${t}\0${e}\0${i}\0${r}`;
1290
- let l = o.get(n);
1291
- return l || (l = a.addTextTrack(e, i, r), ce.add(l), o.set(n, l)), l;
1288
+ function me(n, t, e, i, r) {
1289
+ let o = H.get(n);
1290
+ o || H.set(n, o = /* @__PURE__ */ new Map());
1291
+ const a = `${t}\0${e}\0${i}\0${r}`;
1292
+ let l = o.get(a);
1293
+ return l || (l = n.addTextTrack(e, i, r), ue.add(l), o.set(a, l)), l;
1292
1294
  }
1293
- function ue(a, t) {
1294
- for (const [e, i] of F.get(a) ?? [])
1295
+ function ge(n, t) {
1296
+ for (const [e, i] of H.get(n) ?? [])
1295
1297
  if (e.startsWith(`${t}\0`)) {
1296
1298
  i.mode = "hidden";
1297
1299
  for (const r of Array.from(i.cues ?? [])) i.removeCue(r);
1298
1300
  i.mode = "disabled";
1299
1301
  }
1300
1302
  }
1301
- function Xe(a, t) {
1302
- me(a);
1303
- const e = N.get(a), i = [];
1303
+ function $e(n, t) {
1304
+ be(n);
1305
+ const e = O.get(n), i = [];
1304
1306
  for (const r of t) {
1305
- const o = de(a, "options", "subtitles", r.label, r.srclang);
1306
- o.mode = r.default ? "hidden" : "disabled", i.push({ label: r.label, track: o }), Ue(a, o, r.src, e);
1307
+ const o = me(n, "options", "subtitles", r.label, r.srclang);
1308
+ o.mode = r.default ? "hidden" : "disabled", i.push({ label: r.label, track: o }), je(n, o, r.src, e);
1307
1309
  }
1308
1310
  return i;
1309
1311
  }
1310
- function me(a) {
1311
- N.set(a, (N.get(a) ?? 0) + 1), ue(a, "options");
1312
+ function be(n) {
1313
+ O.set(n, (O.get(n) ?? 0) + 1), ge(n, "options");
1312
1314
  }
1313
- function $e(a, t) {
1315
+ function Ke(n, t) {
1314
1316
  let e = null;
1315
- for (const { label: i, track: r } of a) {
1317
+ for (const { label: i, track: r } of n) {
1316
1318
  const o = i === t;
1317
1319
  r.mode = o ? "hidden" : "disabled", o && (e = r);
1318
1320
  }
1319
1321
  return e;
1320
1322
  }
1321
- async function Ue(a, t, e, i) {
1323
+ async function je(n, t, e, i) {
1322
1324
  let r;
1323
1325
  try {
1324
1326
  const o = await fetch(e);
1325
1327
  if (!o.ok) throw new Error(`HTTP ${o.status}`);
1326
1328
  r = await o.text();
1327
1329
  } catch (o) {
1328
- console.warn("[HopePlayer] altyazı yüklenemedi:", e, o), a.dispatchEvent(new CustomEvent("hp-internal:subtitle-error", { detail: { src: e, message: String(o) } }));
1330
+ console.warn("[HopePlayer] altyazı yüklenemedi:", e, o), n.dispatchEvent(new CustomEvent("hp-internal:subtitle-error", { detail: { src: e, message: String(o) } }));
1329
1331
  return;
1330
1332
  }
1331
- if (!(N.get(a) !== i || typeof VTTCue != "function"))
1332
- for (const o of Ke(r)) {
1333
- const n = new VTTCue(o.start, o.end, o.text);
1334
- Qe(n, o.settings), t.addCue(n);
1333
+ if (!(O.get(n) !== i || typeof VTTCue != "function"))
1334
+ for (const o of Ze(r)) {
1335
+ const a = new VTTCue(o.start, o.end, o.text);
1336
+ Je(a, o.settings), t.addCue(a);
1335
1337
  }
1336
1338
  }
1337
- const Q = "(?:\\d+:)?\\d{1,2}:\\d{2}(?:[.,]\\d{1,3})?", je = new RegExp(`^(${Q})\\s+-->\\s+(${Q})(.*)$`);
1338
- function Y(a) {
1339
- return a.replace(",", ".").split(":").reduce((t, e) => t * 60 + Number(e), 0);
1339
+ const Z = "(?:\\d+:)?\\d{1,2}:\\d{2}(?:[.,]\\d{1,3})?", Ye = new RegExp(`^(${Z})\\s+-->\\s+(${Z})(.*)$`);
1340
+ function J(n) {
1341
+ return n.replace(",", ".").split(":").reduce((t, e) => t * 60 + Number(e), 0);
1340
1342
  }
1341
- function Ke(a) {
1342
- const t = [], e = a.replace(/^/, "").replace(/\r\n?/g, `
1343
+ function Ze(n) {
1344
+ const t = [], e = n.replace(/^/, "").replace(/\r\n?/g, `
1343
1345
  `).split(/\n{2,}/);
1344
1346
  for (const i of e) {
1345
1347
  const r = i.split(`
1346
- `), o = r.findIndex((d) => d.includes("-->"));
1348
+ `), o = r.findIndex((p) => p.includes("-->"));
1347
1349
  if (o < 0) continue;
1348
- const n = je.exec(r[o].trim());
1349
- if (!n) continue;
1350
+ const a = Ye.exec(r[o].trim());
1351
+ if (!a) continue;
1350
1352
  const l = r.slice(o + 1).join(`
1351
1353
  `);
1352
- l.trim() && t.push({ start: Y(n[1]), end: Y(n[2]), settings: n[3].trim(), text: l });
1354
+ l.trim() && t.push({ start: J(a[1]), end: J(a[2]), settings: a[3].trim(), text: l });
1353
1355
  }
1354
1356
  return t;
1355
1357
  }
1356
- function Qe(a, t) {
1358
+ function Je(n, t) {
1357
1359
  for (const e of t.split(/\s+/)) {
1358
1360
  const [i, r] = e.split(":");
1359
1361
  if (!i || !r) continue;
1360
1362
  const [o] = r.split(",");
1361
1363
  try {
1362
- i === "align" ? a.align = o : i === "vertical" ? a.vertical = o : i === "size" ? a.size = parseFloat(o) : i === "position" ? a.position = parseFloat(o) : i === "line" && (a.snapToLines = !o.endsWith("%"), a.line = parseFloat(o));
1364
+ i === "align" ? n.align = o : i === "vertical" ? n.vertical = o : i === "size" ? n.size = parseFloat(o) : i === "position" ? n.position = parseFloat(o) : i === "line" && (n.snapToLines = !o.endsWith("%"), n.line = parseFloat(o));
1363
1365
  } catch {
1364
1366
  }
1365
1367
  }
1366
1368
  }
1367
- const I = 6, Ye = 20, Ze = 14, Je = 6, et = 10, tt = 3, be = "hope-caption-row", ge = "hope-caption-font-size", Z = "hope-caption-bg-color", J = "hope-caption-text-color", it = {
1369
+ const I = 6, et = 20, tt = 14, it = 6, st = 10, rt = 3, fe = "hope-caption-row", ve = "hope-caption-font-size", ee = "hope-caption-bg-color", te = "hope-caption-text-color", ot = {
1368
1370
  small: 0.78,
1369
1371
  normal: 1,
1370
1372
  large: 1.35
1371
- }, ee = [
1373
+ }, ie = [
1372
1374
  "rgba(0, 0, 0, 0.75)",
1373
1375
  "rgba(0, 0, 0, 0)",
1374
1376
  "rgba(255, 255, 255, 0.85)",
1375
1377
  "rgba(183, 28, 28, 0.8)",
1376
1378
  "rgba(13, 71, 161, 0.8)",
1377
1379
  "rgba(27, 94, 32, 0.8)"
1378
- ], te = ["#ffffff", "#000000", "#ffeb3b", "#ff5252", "#18ffff", "#69f0ae"];
1379
- function st() {
1380
+ ], se = ["#ffffff", "#000000", "#ffeb3b", "#ff5252", "#18ffff", "#69f0ae"];
1381
+ function at() {
1380
1382
  try {
1381
- const a = window.localStorage.getItem(be), t = a === null ? 0 : Number(a);
1383
+ const n = window.localStorage.getItem(fe), t = n === null ? 0 : Number(n);
1382
1384
  return Number.isFinite(t) && t >= 0 && t < I ? t : 0;
1383
1385
  } catch {
1384
1386
  return 0;
1385
1387
  }
1386
1388
  }
1387
- function rt() {
1389
+ function nt() {
1388
1390
  try {
1389
- const a = window.localStorage.getItem(ge);
1390
- return a === "small" || a === "normal" || a === "large" ? a : "normal";
1391
+ const n = window.localStorage.getItem(ve);
1392
+ return n === "small" || n === "normal" || n === "large" ? n : "normal";
1391
1393
  } catch {
1392
1394
  return "normal";
1393
1395
  }
1394
1396
  }
1395
- function ie(a, t) {
1397
+ function re(n, t) {
1396
1398
  const e = t[0] ?? "";
1397
1399
  try {
1398
- const i = window.localStorage.getItem(a);
1400
+ const i = window.localStorage.getItem(n);
1399
1401
  return i !== null && t.includes(i) ? i : e;
1400
1402
  } catch {
1401
1403
  return e;
1402
1404
  }
1403
1405
  }
1404
- class M {
1406
+ class B {
1405
1407
  constructor(t, e, i, r) {
1406
1408
  s(this, "layerEl");
1407
1409
  s(this, "bubbleEl");
@@ -1409,10 +1411,10 @@ class M {
1409
1411
  s(this, "seekBarEl");
1410
1412
  s(this, "labels");
1411
1413
  s(this, "activeTrack", null);
1412
- s(this, "fontSize", rt());
1413
- s(this, "bgColor", ie(Z, ee));
1414
- s(this, "textColor", ie(J, te));
1415
- s(this, "rowIndex", st());
1414
+ s(this, "fontSize", nt());
1415
+ s(this, "bgColor", re(ee, ie));
1416
+ s(this, "textColor", re(te, se));
1417
+ s(this, "rowIndex", at());
1416
1418
  s(this, "dragging", !1);
1417
1419
  /** Kontrol çubuğu görünür mü — görünürken altyazı seek bar'ın üstünde, değilken en altta. */
1418
1420
  s(this, "chromeVisible", !0);
@@ -1441,7 +1443,7 @@ class M {
1441
1443
  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));
1442
1444
  });
1443
1445
  s(this, "onPointerMove", (t) => {
1444
- this.dragging && (this.pendingDeltaPx = t.clientY - this.dragStartClientY, Math.abs(this.pendingDeltaPx) > tt && (this.dragMoved = !0), this.rafId === null && (this.rafId = requestAnimationFrame(this.applyPendingDrag)));
1446
+ this.dragging && (this.pendingDeltaPx = t.clientY - this.dragStartClientY, Math.abs(this.pendingDeltaPx) > rt && (this.dragMoved = !0), this.rafId === null && (this.rafId = requestAnimationFrame(this.applyPendingDrag)));
1445
1447
  });
1446
1448
  s(this, "applyPendingDrag", () => {
1447
1449
  if (this.rafId = null, !this.dragging) return;
@@ -1450,8 +1452,8 @@ class M {
1450
1452
  });
1451
1453
  s(this, "onPointerUp", (t) => {
1452
1454
  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;
1453
- const { min: e, max: i } = this.bounds(), r = Math.min(i, Math.max(e, this.dragStartBottomPx - this.pendingDeltaPx)), o = i > e ? (r - e) / (i - e) : 0, n = Math.round(o * (I - 1));
1454
- this.setRowIndex(n, !0);
1455
+ const { min: e, max: i } = this.bounds(), r = Math.min(i, Math.max(e, this.dragStartBottomPx - this.pendingDeltaPx)), o = i > e ? (r - e) / (i - e) : 0, a = Math.round(o * (I - 1));
1456
+ this.setRowIndex(a, !0);
1455
1457
  });
1456
1458
  this.videoArea = e, this.seekBarEl = i, this.labels = r, this.layerEl = document.createElement("div"), this.layerEl.className = "hp-caption-layer", this.layerEl.setAttribute("part", "caption-layer"), this.bubbleEl = document.createElement("div"), this.bubbleEl.className = "hp-caption-bubble", this.bubbleEl.setAttribute("part", "caption-bubble"), this.bubbleEl.setAttribute("role", "note"), this.bubbleEl.setAttribute("aria-label", r.captionDragHandle), this.bubbleEl.tabIndex = -1, this.applyFontSizeVar(), this.bubbleEl.style.setProperty("--hp-caption-bg", this.bgColor), this.bubbleEl.style.setProperty("--hp-caption-text", this.textColor), this.layerEl.appendChild(this.bubbleEl), this.bubbleEl.addEventListener("pointerdown", this.onPointerDown), this.resizeObserver = new ResizeObserver(() => this.recomputePosition()), this.resizeObserver.observe(this.videoArea), this.recomputePosition();
1457
1459
  }
@@ -1465,7 +1467,7 @@ class M {
1465
1467
  setFontSize(t) {
1466
1468
  this.fontSize = t, this.applyFontSizeVar(), this.recomputePosition();
1467
1469
  try {
1468
- window.localStorage.setItem(ge, t);
1470
+ window.localStorage.setItem(ve, t);
1469
1471
  } catch {
1470
1472
  }
1471
1473
  }
@@ -1475,7 +1477,7 @@ class M {
1475
1477
  setBgColor(t) {
1476
1478
  this.bgColor = t, this.bubbleEl.style.setProperty("--hp-caption-bg", t);
1477
1479
  try {
1478
- window.localStorage.setItem(Z, t);
1480
+ window.localStorage.setItem(ee, t);
1479
1481
  } catch {
1480
1482
  }
1481
1483
  }
@@ -1485,7 +1487,7 @@ class M {
1485
1487
  setTextColor(t) {
1486
1488
  this.textColor = t, this.bubbleEl.style.setProperty("--hp-caption-text", t);
1487
1489
  try {
1488
- window.localStorage.setItem(J, t);
1490
+ window.localStorage.setItem(te, t);
1489
1491
  } catch {
1490
1492
  }
1491
1493
  }
@@ -1498,11 +1500,11 @@ class M {
1498
1500
  this.labels = t, this.bubbleEl.setAttribute("aria-label", t.captionDragHandle);
1499
1501
  }
1500
1502
  applyFontSizeVar() {
1501
- this.bubbleEl.style.setProperty("--hp-caption-size-multiplier", String(it[this.fontSize]));
1503
+ this.bubbleEl.style.setProperty("--hp-caption-size-multiplier", String(ot[this.fontSize]));
1502
1504
  }
1503
1505
  bounds() {
1504
- const t = this.videoArea.getBoundingClientRect(), e = this.seekBarEl.getBoundingClientRect(), r = (this.bubbleEl.getBoundingClientRect().height || 32) + Ye, o = Math.max(et, 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") ? Je : Ze))) : o, l = Math.max(n, Math.round(t.height - r));
1505
- return { min: n, max: l };
1506
+ const t = this.videoArea.getBoundingClientRect(), e = this.seekBarEl.getBoundingClientRect(), r = (this.bubbleEl.getBoundingClientRect().height || 32) + et, o = Math.max(st, Math.round(t.height * 0.04)), a = this.chromeVisible && e.height > 0 ? Math.max(0, Math.round(t.bottom - e.top + (this.videoArea.hasAttribute("data-compact") ? it : tt))) : o, l = Math.max(a, Math.round(t.height - r));
1507
+ return { min: a, max: l };
1506
1508
  }
1507
1509
  pxForRow(t) {
1508
1510
  const { min: e, max: i } = this.bounds(), r = t / (I - 1);
@@ -1528,7 +1530,7 @@ class M {
1528
1530
  const i = this.pxForRow(this.rowIndex), r = this.visualBottomPx();
1529
1531
  e && Math.abs(r - i) > 0.5 ? (this.bubbleEl.classList.add("hp-caption-no-transition"), this.bubbleEl.style.bottom = `${i}px`, this.bubbleEl.style.transform = `translateX(-50%) translateY(${i - r}px)`, this.bubbleEl.offsetHeight, this.bubbleEl.classList.remove("hp-caption-no-transition"), this.bubbleEl.style.transform = "translateX(-50%)") : (this.bubbleEl.classList.add("hp-caption-no-transition"), this.bubbleEl.style.transform = "translateX(-50%)", this.bubbleEl.style.bottom = `${i}px`, this.bubbleEl.offsetHeight, this.bubbleEl.classList.remove("hp-caption-no-transition"));
1530
1532
  try {
1531
- window.localStorage.setItem(be, String(this.rowIndex));
1533
+ window.localStorage.setItem(fe, String(this.rowIndex));
1532
1534
  } catch {
1533
1535
  }
1534
1536
  }
@@ -1544,8 +1546,8 @@ class M {
1544
1546
  this.activeTrack && this.activeTrack.removeEventListener("cuechange", this.onCueChange), this.resizeObserver.disconnect(), this.rafId !== null && cancelAnimationFrame(this.rafId), this.bubbleEl.removeEventListener("pointerdown", this.onPointerDown);
1545
1547
  }
1546
1548
  }
1547
- s(M, "BG_COLOR_PRESETS", ee), s(M, "TEXT_COLOR_PRESETS", te);
1548
- class ot {
1549
+ s(B, "BG_COLOR_PRESETS", ie), s(B, "TEXT_COLOR_PRESETS", se);
1550
+ class lt {
1549
1551
  constructor(t) {
1550
1552
  s(this, "el");
1551
1553
  s(this, "bufferedEl");
@@ -1584,8 +1586,8 @@ class ot {
1584
1586
  this.rafId !== null && cancelAnimationFrame(this.rafId), this.rafId = null;
1585
1587
  }
1586
1588
  }
1587
- const nt = 1e3, at = 800, lt = '<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>';
1588
- class ht {
1589
+ const ht = 1e3, pt = 800, dt = '<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M9.3 5.3a1.2 1.2 0 0 1 1.7 0l5.8 5.8a1.2 1.2 0 0 1 0 1.8l-5.8 5.8a1.2 1.2 0 0 1-1.7-1.7l4.9-5-4.9-5a1.2 1.2 0 0 1 0-1.7z"/></svg>';
1590
+ class ct {
1589
1591
  constructor(t) {
1590
1592
  s(this, "el");
1591
1593
  s(this, "valueEl");
@@ -1596,7 +1598,7 @@ class ht {
1596
1598
  s(this, "hideTimer", null);
1597
1599
  this.labels = t, this.el = document.createElement("div"), this.el.className = "hp-seek-fb", this.el.setAttribute("part", "seek-feedback");
1598
1600
  const e = document.createElement("span");
1599
- e.className = "hp-seek-fb-chevrons", e.innerHTML = lt.repeat(3);
1601
+ e.className = "hp-seek-fb-chevrons", e.innerHTML = dt.repeat(3);
1600
1602
  const i = document.createElement("span");
1601
1603
  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);
1602
1604
  }
@@ -1604,17 +1606,17 @@ class ht {
1604
1606
  show(t) {
1605
1607
  if (!t) return;
1606
1608
  const e = Date.now(), i = Math.sign(t) === Math.sign(this.total);
1607
- this.total = i && e - this.lastAt < nt ? this.total + t : t, this.lastAt = e;
1609
+ this.total = i && e - this.lastAt < ht ? this.total + t : t, this.lastAt = e;
1608
1610
  const r = Math.round(Math.abs(this.total) * 10) / 10, o = this.total > 0;
1609
1611
  this.el.dataset.side = o ? "forward" : "back", this.valueEl.textContent = `${o ? "+" : "−"}${r}`, this.unitEl.textContent = this.labels.secondsShort, this.liveEl.textContent = (o ? this.labels.skipForward : this.labels.skipBack)(r), this.valueEl.classList.remove("hp-seek-fb-bump"), this.valueEl.offsetWidth, this.valueEl.classList.add("hp-seek-fb-bump"), this.el.setAttribute("data-visible", ""), this.hideTimer && clearTimeout(this.hideTimer), this.hideTimer = setTimeout(() => {
1610
1612
  this.el.removeAttribute("data-visible"), this.total = 0;
1611
- }, at);
1613
+ }, pt);
1612
1614
  }
1613
1615
  destroy() {
1614
1616
  this.hideTimer && clearTimeout(this.hideTimer), this.el.remove();
1615
1617
  }
1616
1618
  }
1617
- class pt {
1619
+ class ut {
1618
1620
  constructor(t) {
1619
1621
  s(this, "el");
1620
1622
  s(this, "open", !1);
@@ -1636,28 +1638,28 @@ class pt {
1636
1638
  show(t, e, i) {
1637
1639
  var u;
1638
1640
  this.el.replaceChildren(
1639
- ...i.map((c) => {
1640
- const b = document.createElement(c.onSelect ? "button" : "div");
1641
- b.className = "hp-context-menu-item", c.onSelect ? (b.type = "button", b.setAttribute("role", "menuitem"), b.addEventListener("click", () => {
1642
- this.close(), c.onSelect();
1643
- })) : b.setAttribute("data-info", "");
1641
+ ...i.map((d) => {
1642
+ const m = document.createElement(d.onSelect ? "button" : "div");
1643
+ m.className = "hp-context-menu-item", d.onSelect ? (m.type = "button", m.setAttribute("role", "menuitem"), m.addEventListener("click", () => {
1644
+ this.close(), d.onSelect();
1645
+ })) : m.setAttribute("data-info", "");
1644
1646
  const h = document.createElement("span");
1645
- if (h.textContent = c.label, b.appendChild(h), c.meta) {
1646
- const p = document.createElement("span");
1647
- p.className = "hp-context-menu-meta", p.textContent = c.meta, b.appendChild(p);
1647
+ if (h.textContent = d.label, m.appendChild(h), d.meta) {
1648
+ const c = document.createElement("span");
1649
+ c.className = "hp-context-menu-meta", c.textContent = d.meta, m.appendChild(c);
1648
1650
  }
1649
- return b;
1651
+ return m;
1650
1652
  })
1651
1653
  ), this.el.setAttribute("data-open", ""), this.open = !0;
1652
- const r = this.container.getBoundingClientRect(), { width: o, height: n } = this.el.getBoundingClientRect(), l = Math.max(4, Math.min(t - r.left, r.width - o - 4)), d = Math.max(4, Math.min(e - r.top, r.height - n - 4));
1653
- this.el.style.left = `${l}px`, this.el.style.top = `${d}px`, (u = this.el.querySelector("button")) == null || u.focus({ preventScroll: !0 }), document.addEventListener("pointerdown", this.onOutside, !0), document.addEventListener("keydown", this.onKeyDown, !0), window.addEventListener("blur", this.close), window.addEventListener("resize", this.close), window.addEventListener("scroll", this.close, !0);
1654
+ const r = this.container.getBoundingClientRect(), { width: o, height: a } = this.el.getBoundingClientRect(), l = Math.max(4, Math.min(t - r.left, r.width - o - 4)), p = Math.max(4, Math.min(e - r.top, r.height - a - 4));
1655
+ this.el.style.left = `${l}px`, this.el.style.top = `${p}px`, (u = this.el.querySelector("button")) == null || u.focus({ preventScroll: !0 }), document.addEventListener("pointerdown", this.onOutside, !0), document.addEventListener("keydown", this.onKeyDown, !0), window.addEventListener("blur", this.close), window.addEventListener("resize", this.close), window.addEventListener("scroll", this.close, !0);
1654
1656
  }
1655
1657
  destroy() {
1656
1658
  this.close(), this.el.remove();
1657
1659
  }
1658
1660
  }
1659
- const ct = 3e3, se = 200;
1660
- class dt {
1661
+ const mt = 3e3, oe = 200;
1662
+ class gt {
1661
1663
  constructor() {
1662
1664
  s(this, "list", []);
1663
1665
  /** Kayıt eklenince / temizlenince (açık panel canlı güncellenir). */
@@ -1669,11 +1671,11 @@ class dt {
1669
1671
  add(t) {
1670
1672
  var r, o;
1671
1673
  const e = Date.now(), i = this.list[this.list.length - 1];
1672
- if (i && e - i.time < ct && i.source === t.source && i.message === t.message && JSON.stringify(i.details ?? {}) === JSON.stringify(t.details ?? {})) {
1674
+ if (i && e - i.time < mt && i.source === t.source && i.message === t.message && JSON.stringify(i.details ?? {}) === JSON.stringify(t.details ?? {})) {
1673
1675
  i.count = (i.count ?? 1) + 1, i.time = e, (r = this.onChange) == null || r.call(this);
1674
1676
  return;
1675
1677
  }
1676
- this.list.push({ time: e, ...t }), this.list.length > se && this.list.splice(0, this.list.length - se), (o = this.onChange) == null || o.call(this);
1678
+ this.list.push({ time: e, ...t }), this.list.length > oe && this.list.splice(0, this.list.length - oe), (o = this.onChange) == null || o.call(this);
1677
1679
  }
1678
1680
  clear() {
1679
1681
  var t;
@@ -1688,13 +1690,13 @@ class dt {
1688
1690
  `);
1689
1691
  }
1690
1692
  }
1691
- const ut = '@font-face{font-family:hope-icons;src:url(data:font/woff2;base64,d09GMgABAAAAAAq4AAsAAAAAIQwAAAprAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGYACEUAqySKthATYCJANICyYABCAFhC4HgWgbvBwzo8LGASCo7UymWhxkcsp3plRjG4rgPXRJJ9fVhsrU04g9KovY4vJpzld+YERwXGwRdmsE0Nr/Zk+ea/0/eUbEQ4UkolEzJRAyHrJGXayR33zvZk3CzJDWKUloHZmgFSSUioXQOu8CNQvUV7Fz8RXl3Ff898T9fqr+cyupw8KUzXXM2Pc+Y3RIJIjjFblsLVvy9ORekUJtZff2i6NK8HjGMyiHsTj9XUbnwv7/5kp7XCD8BeOOdcGZSfIPsrM5QkzeZXkOQfZVEUhABwAKUDggdBWmwp5bI3wNxmYesGjMYIr2ErZ95PkIqFi1QbLtbd8xjZO6BExkeO9AXDacdLVGaREsKykblAQF2QOGr+GZnLCNToCd/mP/b+whiTzFT+iQ3V55GcVWeDl7aTn8s6k7GfaeIEeKxYmFhovl0aeRhuKiTyui6MwWuvtMILZmMyJXmPauCBKpTL74D15RSVlFVU1dQ1NLm1DAaQ2OX3LaRDYIRJAQQUoEGRHkRFAggiIRlIigTAQVIqgSQY0I6kTQIIImEbSI1bRBx608h/NQqSHkKT7yEZrrR2RPz6ctjRGDG5nJdrydkGbZiKODliytnkQsNhY5zUiogdvU37V1d09VV/e/414obRN7aOtEcNuERYBt776fN6bYNjY63h7GWD6eyOzdToMjKDRrjCXJZr6PdPyOdIdliibDmY2DqAUiWGJXYrWbDrSyw7NEkZiDxS9mCaRGQoacgc4Vp4BTwymzoEiV7PaZGCgBITVhA7JtEsZc5ASmgO2SkAMyMFgQmuq5iujoEyqvKQfh+ukR7o4c9Ap115TXFY7qFaoorcaYFmYCFyoiBGkBrw9PQZUv3e3GSCR5o5UBQA8LWNGSDhBOBCPsUr6WQw5qT07UrqNN4zsQ4OlmQZFen2wp7PHCFdfIKYioSnqbs3Pk8WigFxYQNeXWa0IbetamJN7LPsyq18kUrjtzOiK77e168SK3kAwhq8pHFH0E2shMekcD9uECvCfHMxqJQIxCafozKBVerE1Atb0FbZuybniE50mGWDJmhE8a4XPlCFeJYw+K6N7pjtZhdEynJ3U6GuWotlP9NzzMceyjTscMc0nDXJ5TjnLsQQBE2kRA25Uu056bc3Guzv00q35/s2NVVdXVNWVfE8XGxhZnfXV1b++sw95W2m7MHXcIgm2uy1VR0TF0wsriUh5VSuLUKzGzoYAqoVzXDm0Ogm2nRdc41sTVGggQ7XUWXSh3kOjR8GZS0i4NL6TUQCoshWvmQL3wmWstTCYUjGn1s4Ga9/gWSblci2NEZu58tHd2LLw71dOjP9jOQ0+Drd5R+1jgk4rnOo2qkX/55OIpo0pBCZg/vx40NI+GyPM2iJ6KUOblTr92xmfF2KzavOf/0LpOlQ/ELz1GcdPDYYhvaNSjw6iqRIdF7mkRC345pqgR2S8gPCyGIqoSC4nCnp3IJIZpG3lpruEwRS3IwfXGpVcd0uCnq7yif/c06tJhXFxEFDAaEeWHPslZ3z+Nw2IfXCJd0GqHKyRediMy8NPoIVoRKcjB72WtBlblT8QteSs5oihS/gURYkVZUpSILLK//5swQZT+3MTuXDyGQPRkf/03YYwqVAF9/6v1Kn+K8+B9WCDBKMbRIBFwzDIl6sg8mgWuFrcVeArvNKm3HsuyqHGXTNBTl0ffUumpqqqrEQTm27Kevu6Cz0VnzDtWccpph/F3jdEqrrk5jXwa+tWhImBggMGCgl+3qMqEGTUuyaKgWBvWYp6IcjCmJsIJNRKVRdaKmYtpQMMiH6UHHg0Fr8FazAkrGq+niSp6oICj4tjKinI0QobGnjab8Fi7+8wiy+H67e8e6ttyeJyHA4ZeCDlDlmHdj7qSnk9cn+QrCJ+GV1K6Il5CECYWX6RLkXw+tkM0nHhneUW2di9SkLAIsiQoGR35BM4+PpBMJncxoGAKAlBMS5JPJsgSyu2aQstGZVjn2Hm/ghoboGAd+QgVPuRysUlHECWGxLEcldmFXozgeEZ6TrdFyozDykOVqQlbdM+F3H+wxHuH8Jb7/IFTKKho7htfuvDG57eYtzx/44VL433NFQXvC176RgRtFpPnAqv7QpNFX/px6kOge5cgtJpNpuQGd9xkpg1DyDgtjQGC+52MliNeCSup9HNrmRE/gZD4RzLz+ySdUrDkJZyWAd+8qyk2lHg86r7njTrdE60ajWWLn4WawM/ZtAZKw/let8adzehoWFWv15uMXZ9cnzTp9bi+gq665Isatzd/WJqaLnwqkMH6t1g0PPKpXp1M4j6Pp6SB1ZZ1/Ccpvg1pbYGensXFdCpx3nmJVHpxsacnYCsyjOgmgf9nMxu4t4I7m3q/iGXJ+tTJs/a07xHbyoHkCeatcPXZx7qvz36+b8+zizl3hevv+mv03uy+bqwRCnUS4jYyzZvhPt+/Rbaw+006C7LoRhol2khxm5DeRNNR8L93X/be0b/uqg/flbP47J59n2ev7z52dnX4LeZE8sCK7RHf0/zsyWk9yca+6G3aGXyL25A5qScTNIISJ9eLRZYUvwWC+loJzuQYJdoEhivMGmkpIspTODwZdO7HGpvZnHLb79t30cVdjRljyxxG85x/DY2ZrsaLL9qn1LlTZrNNg/PWxNDa+tbFWn5t6/y6y8WPTBP9jkJH/xWdZzccoxSEWMtZJ/pYkJzh4FiYJEsIT2rXthduO+20tXUDA60uVz4nrm9r/KVZt3baabfd9/7Y+LWKvZSmS+3KteNj7zdcxQGAo+gsB+X56HHIjIp1mzb9aLF0vF56bE6jQuU9pJNN3NPpro2XARycHu8OSV1dUqh7/HFrnxVD6PPGEzljOYm41wchzl+mpyeggcgJJiETQ5IncpJJyqQkx/0oJBbZE0Eo4pEtBGZQ+hgROPf/LQAAAKhnqTYAAKDGqBVjwk3USO/XqNP8Ca9Qp0x4iZqecBY1NuFLav2ubqbCAPx/iPqWusMQf5ehV8LuRaEL+7C0Ho6fZn1ApQE1+0AAPNz25r/zRW2/MlHVBNycf+4uvLuNUXIsOvAfhHfS3Ked1y/GzZ3Y+xPQCZv0tCdWaBozPLbl/dA0CDGOTBQXCDENpTZsM8cp5KrmoaBiFSoWrDlwVddxqZCVBT1XDUg0PIJUz3PbzPEF5AZeQ0HPB6i4/wf/QHM8hKdGIq+ckZA/1J3XKSMjD/IjZSdB7dbbgtvxLnDShSt1uKh8rPcVq2ySVr1JKOy9qJjkj01ZN6XEx83Grv7SayMtGogItuIYiICMD1Cj46Gl0gbz1X9AQobbbb6yw2ylbN9pkFxaK2DVuR9wgZJxRI09QoGFYpEgWihvzXhkenjInEbxnv7ADArWmgaZEY82pjkrS9cDS62yrgIwBL+yd9SjPg1oSCMa04SmNKM5LWhJV3RNN3RLd3SPoWnY/C/cn3dMElaebRkaL5lvbOd9Nok5rDgUTteZK3t2ZVAnVw28SBxG3WXuRxcH0evLJHMpLtR5mv9dXB1010J4QlbSSadqfhTftbxqXN3MFqleTgtWqO0KV+NKYmgeBAA=) format("woff2");font-weight:400;font-style:normal;font-display:block}', re = "hope-player-icon-font";
1692
- function mt() {
1693
- if (typeof document > "u" || document.getElementById(re)) return;
1694
- const a = document.createElement("style");
1695
- a.id = re, a.textContent = ut, document.head.appendChild(a);
1693
+ const bt = '@font-face{font-family:hope-icons;src:url(data:font/woff2;base64,d09GMgABAAAAAAq4AAsAAAAAIQwAAAprAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGYACEUAqySKthATYCJANICyYABCAFhC4HgWgbvBwzo8LGASCo7UymWhxkcsp3plRjG4rgPXRJJ9fVhsrU04g9KovY4vJpzld+YERwXGwRdmsE0Nr/Zk+ea/0/eUbEQ4UkolEzJRAyHrJGXayR33zvZk3CzJDWKUloHZmgFSSUioXQOu8CNQvUV7Fz8RXl3Ff898T9fqr+cyupw8KUzXXM2Pc+Y3RIJIjjFblsLVvy9ORekUJtZff2i6NK8HjGMyiHsTj9XUbnwv7/5kp7XCD8BeOOdcGZSfIPsrM5QkzeZXkOQfZVEUhABwAKUDggdBWmwp5bI3wNxmYesGjMYIr2ErZ95PkIqFi1QbLtbd8xjZO6BExkeO9AXDacdLVGaREsKykblAQF2QOGr+GZnLCNToCd/mP/b+whiTzFT+iQ3V55GcVWeDl7aTn8s6k7GfaeIEeKxYmFhovl0aeRhuKiTyui6MwWuvtMILZmMyJXmPauCBKpTL74D15RSVlFVU1dQ1NLm1DAaQ2OX3LaRDYIRJAQQUoEGRHkRFAggiIRlIigTAQVIqgSQY0I6kTQIIImEbSI1bRBx608h/NQqSHkKT7yEZrrR2RPz6ctjRGDG5nJdrydkGbZiKODliytnkQsNhY5zUiogdvU37V1d09VV/e/414obRN7aOtEcNuERYBt776fN6bYNjY63h7GWD6eyOzdToMjKDRrjCXJZr6PdPyOdIdliibDmY2DqAUiWGJXYrWbDrSyw7NEkZiDxS9mCaRGQoacgc4Vp4BTwymzoEiV7PaZGCgBITVhA7JtEsZc5ASmgO2SkAMyMFgQmuq5iujoEyqvKQfh+ukR7o4c9Ap115TXFY7qFaoorcaYFmYCFyoiBGkBrw9PQZUv3e3GSCR5o5UBQA8LWNGSDhBOBCPsUr6WQw5qT07UrqNN4zsQ4OlmQZFen2wp7PHCFdfIKYioSnqbs3Pk8WigFxYQNeXWa0IbetamJN7LPsyq18kUrjtzOiK77e168SK3kAwhq8pHFH0E2shMekcD9uECvCfHMxqJQIxCafozKBVerE1Atb0FbZuybniE50mGWDJmhE8a4XPlCFeJYw+K6N7pjtZhdEynJ3U6GuWotlP9NzzMceyjTscMc0nDXJ5TjnLsQQBE2kRA25Uu056bc3Guzv00q35/s2NVVdXVNWVfE8XGxhZnfXV1b++sw95W2m7MHXcIgm2uy1VR0TF0wsriUh5VSuLUKzGzoYAqoVzXDm0Ogm2nRdc41sTVGggQ7XUWXSh3kOjR8GZS0i4NL6TUQCoshWvmQL3wmWstTCYUjGn1s4Ga9/gWSblci2NEZu58tHd2LLw71dOjP9jOQ0+Drd5R+1jgk4rnOo2qkX/55OIpo0pBCZg/vx40NI+GyPM2iJ6KUOblTr92xmfF2KzavOf/0LpOlQ/ELz1GcdPDYYhvaNSjw6iqRIdF7mkRC345pqgR2S8gPCyGIqoSC4nCnp3IJIZpG3lpruEwRS3IwfXGpVcd0uCnq7yif/c06tJhXFxEFDAaEeWHPslZ3z+Nw2IfXCJd0GqHKyRediMy8NPoIVoRKcjB72WtBlblT8QteSs5oihS/gURYkVZUpSILLK//5swQZT+3MTuXDyGQPRkf/03YYwqVAF9/6v1Kn+K8+B9WCDBKMbRIBFwzDIl6sg8mgWuFrcVeArvNKm3HsuyqHGXTNBTl0ffUumpqqqrEQTm27Kevu6Cz0VnzDtWccpph/F3jdEqrrk5jXwa+tWhImBggMGCgl+3qMqEGTUuyaKgWBvWYp6IcjCmJsIJNRKVRdaKmYtpQMMiH6UHHg0Fr8FazAkrGq+niSp6oICj4tjKinI0QobGnjab8Fi7+8wiy+H67e8e6ttyeJyHA4ZeCDlDlmHdj7qSnk9cn+QrCJ+GV1K6Il5CECYWX6RLkXw+tkM0nHhneUW2di9SkLAIsiQoGR35BM4+PpBMJncxoGAKAlBMS5JPJsgSyu2aQstGZVjn2Hm/ghoboGAd+QgVPuRysUlHECWGxLEcldmFXozgeEZ6TrdFyozDykOVqQlbdM+F3H+wxHuH8Jb7/IFTKKho7htfuvDG57eYtzx/44VL433NFQXvC176RgRtFpPnAqv7QpNFX/px6kOge5cgtJpNpuQGd9xkpg1DyDgtjQGC+52MliNeCSup9HNrmRE/gZD4RzLz+ySdUrDkJZyWAd+8qyk2lHg86r7njTrdE60ajWWLn4WawM/ZtAZKw/let8adzehoWFWv15uMXZ9cnzTp9bi+gq665Isatzd/WJqaLnwqkMH6t1g0PPKpXp1M4j6Pp6SB1ZZ1/Ccpvg1pbYGensXFdCpx3nmJVHpxsacnYCsyjOgmgf9nMxu4t4I7m3q/iGXJ+tTJs/a07xHbyoHkCeatcPXZx7qvz36+b8+zizl3hevv+mv03uy+bqwRCnUS4jYyzZvhPt+/Rbaw+006C7LoRhol2khxm5DeRNNR8L93X/be0b/uqg/flbP47J59n2ev7z52dnX4LeZE8sCK7RHf0/zsyWk9yca+6G3aGXyL25A5qScTNIISJ9eLRZYUvwWC+loJzuQYJdoEhivMGmkpIspTODwZdO7HGpvZnHLb79t30cVdjRljyxxG85x/DY2ZrsaLL9qn1LlTZrNNg/PWxNDa+tbFWn5t6/y6y8WPTBP9jkJH/xWdZzccoxSEWMtZJ/pYkJzh4FiYJEsIT2rXthduO+20tXUDA60uVz4nrm9r/KVZt3baabfd9/7Y+LWKvZSmS+3KteNj7zdcxQGAo+gsB+X56HHIjIp1mzb9aLF0vF56bE6jQuU9pJNN3NPpro2XARycHu8OSV1dUqh7/HFrnxVD6PPGEzljOYm41wchzl+mpyeggcgJJiETQ5IncpJJyqQkx/0oJBbZE0Eo4pEtBGZQ+hgROPf/LQAAAKhnqTYAAKDGqBVjwk3USO/XqNP8Ca9Qp0x4iZqecBY1NuFLav2ubqbCAPx/iPqWusMQf5ehV8LuRaEL+7C0Ho6fZn1ApQE1+0AAPNz25r/zRW2/MlHVBNycf+4uvLuNUXIsOvAfhHfS3Ked1y/GzZ3Y+xPQCZv0tCdWaBozPLbl/dA0CDGOTBQXCDENpTZsM8cp5KrmoaBiFSoWrDlwVddxqZCVBT1XDUg0PIJUz3PbzPEF5AZeQ0HPB6i4/wf/QHM8hKdGIq+ckZA/1J3XKSMjD/IjZSdB7dbbgtvxLnDShSt1uKh8rPcVq2ySVr1JKOy9qJjkj01ZN6XEx83Grv7SayMtGogItuIYiICMD1Cj46Gl0gbz1X9AQobbbb6yw2ylbN9pkFxaK2DVuR9wgZJxRI09QoGFYpEgWihvzXhkenjInEbxnv7ADArWmgaZEY82pjkrS9cDS62yrgIwBL+yd9SjPg1oSCMa04SmNKM5LWhJV3RNN3RLd3SPoWnY/C/cn3dMElaebRkaL5lvbOd9Nok5rDgUTteZK3t2ZVAnVw28SBxG3WXuRxcH0evLJHMpLtR5mv9dXB1010J4QlbSSadqfhTftbxqXN3MFqleTgtWqO0KV+NKYmgeBAA=) format("woff2");font-weight:400;font-style:normal;font-display:block}', ae = "hope-player-icon-font";
1694
+ function ft() {
1695
+ if (typeof document > "u" || document.getElementById(ae)) return;
1696
+ const n = document.createElement("style");
1697
+ n.id = ae, n.textContent = bt, document.head.appendChild(n);
1696
1698
  }
1697
- const fe = {
1699
+ const ye = {
1698
1700
  play: "Oynat",
1699
1701
  pause: "Duraklat",
1700
1702
  mute: "Sessize al",
@@ -1703,8 +1705,8 @@ const fe = {
1703
1705
  seekBar: "Video konumu",
1704
1706
  settings: "Ayarlar",
1705
1707
  pip: "Resim içinde resim",
1706
- skipBack: (a) => `${a} saniye geri`,
1707
- skipForward: (a) => `${a} saniye ileri`,
1708
+ skipBack: (n) => `${n} saniye geri`,
1709
+ skipForward: (n) => `${n} saniye ileri`,
1708
1710
  secondsShort: "sn",
1709
1711
  audioTrack: "Ses",
1710
1712
  statsTitle: "İstatistikler",
@@ -1744,6 +1746,19 @@ const fe = {
1744
1746
  captions: "Altyazı",
1745
1747
  captionsOff: "Kapalı",
1746
1748
  captionSettings: "Altyazı ayarları",
1749
+ rewardedButton: "{quality} kilidini aç",
1750
+ rewardedTitle: "{quality} kalitesini aç",
1751
+ rewardedBody: "Kısa bir reklam izleyin, {quality} kalitesi {duration} açık kalsın. Vazgeçerseniz video şu anki kalitede devam eder.",
1752
+ rewardedWatch: "Reklamı izle",
1753
+ rewardedDecline: "Vazgeç",
1754
+ rewardedLoading: "Reklam hazırlanıyor…",
1755
+ rewardedNoFill: "Şu an gösterilecek reklam yok. Biraz sonra tekrar deneyin.",
1756
+ rewardedOk: "Tamam",
1757
+ rewardedUnlocked: "{quality} açıldı",
1758
+ rewardedForVideo: "bu video boyunca",
1759
+ rewardedForSession: "bu oturum boyunca",
1760
+ rewardedForMinutes: "{n} dakika boyunca",
1761
+ sponsorPresents: "{name} sunar",
1747
1762
  captionSize: "Yazı Boyutu",
1748
1763
  captionSizeSmall: "Küçük",
1749
1764
  captionSizeNormal: "Normal",
@@ -1767,7 +1782,7 @@ const fe = {
1767
1782
  geoUnknownCountry: "Ülke bilgisi bulunamadı.",
1768
1783
  redirectCancel: "İptal",
1769
1784
  redirectPlayNow: "Şimdi Oynat",
1770
- redirectCountdown: (a) => `Sıradaki video ${a} saniye içinde oynatılacak.`,
1785
+ redirectCountdown: (n) => `Sıradaki video ${n} saniye içinde oynatılacak.`,
1771
1786
  redirectNowPlaying: "Video oynatılıyor...",
1772
1787
  qrResumeTitle: "Devam etmek için kodu telefonunuzla okutun",
1773
1788
  qrResumeDontShowAgain: "Bir daha gösterme",
@@ -1783,7 +1798,7 @@ const fe = {
1783
1798
  playlistTitle: "Oynatma Listesi",
1784
1799
  playlistPrev: "Önceki",
1785
1800
  playlistNext: "Sonraki",
1786
- videoFallbackTitle: (a) => `Video ${a + 1}`,
1801
+ videoFallbackTitle: (n) => `Video ${n + 1}`,
1787
1802
  storyPrev: "Önceki video",
1788
1803
  storyNext: "Sonraki video",
1789
1804
  storyAllVideos: "Tüm videolar",
@@ -1791,7 +1806,7 @@ const fe = {
1791
1806
  liveClock: "Canlı saat",
1792
1807
  live: "CANLI",
1793
1808
  goToLive: "Canlıya git"
1794
- }, bt = {
1809
+ }, vt = {
1795
1810
  play: "Play",
1796
1811
  pause: "Pause",
1797
1812
  mute: "Mute",
@@ -1800,8 +1815,8 @@ const fe = {
1800
1815
  seekBar: "Seek",
1801
1816
  settings: "Settings",
1802
1817
  pip: "Picture-in-picture",
1803
- skipBack: (a) => `Back ${a} seconds`,
1804
- skipForward: (a) => `Forward ${a} seconds`,
1818
+ skipBack: (n) => `Back ${n} seconds`,
1819
+ skipForward: (n) => `Forward ${n} seconds`,
1805
1820
  secondsShort: "s",
1806
1821
  audioTrack: "Audio",
1807
1822
  statsTitle: "Stats",
@@ -1841,6 +1856,19 @@ const fe = {
1841
1856
  captions: "Captions",
1842
1857
  captionsOff: "Off",
1843
1858
  captionSettings: "Subtitle settings",
1859
+ rewardedButton: "Unlock {quality}",
1860
+ rewardedTitle: "Unlock {quality}",
1861
+ rewardedBody: "Watch a short ad to keep {quality} unlocked {duration}. If you skip it, the video keeps playing at the current quality.",
1862
+ rewardedWatch: "Watch ad",
1863
+ rewardedDecline: "No thanks",
1864
+ rewardedLoading: "Loading ad…",
1865
+ rewardedNoFill: "No ad is available right now. Please try again in a moment.",
1866
+ rewardedOk: "OK",
1867
+ rewardedUnlocked: "{quality} unlocked",
1868
+ rewardedForVideo: "for this video",
1869
+ rewardedForSession: "for this session",
1870
+ rewardedForMinutes: "for {n} minutes",
1871
+ sponsorPresents: "Presented by {name}",
1844
1872
  captionSize: "Font Size",
1845
1873
  captionSizeSmall: "Small",
1846
1874
  captionSizeNormal: "Normal",
@@ -1864,7 +1892,7 @@ const fe = {
1864
1892
  geoUnknownCountry: "No country information found.",
1865
1893
  redirectCancel: "Cancel",
1866
1894
  redirectPlayNow: "Play now",
1867
- redirectCountdown: (a) => `Next video will play in ${a} seconds.`,
1895
+ redirectCountdown: (n) => `Next video will play in ${n} seconds.`,
1868
1896
  redirectNowPlaying: "Now playing...",
1869
1897
  qrResumeTitle: "Scan to continue watching on your phone",
1870
1898
  qrResumeDontShowAgain: "Don't show again",
@@ -1880,7 +1908,7 @@ const fe = {
1880
1908
  playlistTitle: "Playlist",
1881
1909
  playlistPrev: "Previous",
1882
1910
  playlistNext: "Next",
1883
- videoFallbackTitle: (a) => `Video ${a + 1}`,
1911
+ videoFallbackTitle: (n) => `Video ${n + 1}`,
1884
1912
  storyPrev: "Previous video",
1885
1913
  storyNext: "Next video",
1886
1914
  storyAllVideos: "All videos",
@@ -1888,19 +1916,19 @@ const fe = {
1888
1916
  liveClock: "Live clock",
1889
1917
  live: "LIVE",
1890
1918
  goToLive: "Go to live"
1891
- }, gt = { tr: fe, en: bt };
1892
- function ve(a, t) {
1893
- return { ...gt[a ?? "tr"] ?? fe, ...t };
1919
+ }, yt = { tr: ye, en: vt };
1920
+ function xe(n, t) {
1921
+ return { ...yt[n ?? "tr"] ?? ye, ...t };
1894
1922
  }
1895
- function ft(a, t, e) {
1896
- Object.assign(a, ve(t, e));
1923
+ function xt(n, t, e) {
1924
+ Object.assign(n, xe(t, e));
1897
1925
  }
1898
- const H = 8e3;
1899
- function vt(a) {
1926
+ const q = 8e3;
1927
+ function kt(n) {
1900
1928
  var t;
1901
- return (t = a.live) != null && t.scte35 && !a.adTagPreroll && !a.adTagVmap ? !1 : !!(a.adTagPreroll || a.adTagVmap);
1929
+ return (t = n.live) != null && t.scte35 && !n.adTagPreroll && !n.adTagVmap ? !1 : !!(n.adTagPreroll || n.adTagVmap);
1902
1930
  }
1903
- class yt {
1931
+ class wt {
1904
1932
  constructor(t) {
1905
1933
  /** Kapı kurulu (preroll bekleniyor) mu. */
1906
1934
  s(this, "armed", !1);
@@ -1908,7 +1936,7 @@ class yt {
1908
1936
  s(this, "playIntent", !1);
1909
1937
  /** Kapının kendi pause() çağrısının ürettiği 'pause' olayı yutulsun. */
1910
1938
  s(this, "swallowNextPause", !1);
1911
- s(this, "timeoutMs", H);
1939
+ s(this, "timeoutMs", q);
1912
1940
  s(this, "timer", null);
1913
1941
  /** İlk oynatma isteği (reklam plugin'i bekleyen preroll'u başlatır). */
1914
1942
  s(this, "onPlayIntent", null);
@@ -1934,7 +1962,7 @@ class yt {
1934
1962
  get hasPlayIntent() {
1935
1963
  return this.playIntent;
1936
1964
  }
1937
- arm(t = H) {
1965
+ arm(t = q) {
1938
1966
  this.clearTimer(), this.armed = !0, this.playIntent = !1, this.timeoutMs = t;
1939
1967
  }
1940
1968
  /**
@@ -1971,24 +1999,24 @@ class yt {
1971
1999
  this.timer && clearTimeout(this.timer), this.timer = null;
1972
2000
  }
1973
2001
  }
1974
- const xt = [
2002
+ const Et = [
1975
2003
  "https://imasdk.googleapis.com",
1976
2004
  "https://pubads.g.doubleclick.net",
1977
2005
  "https://securepubads.g.doubleclick.net",
1978
2006
  "https://pagead2.googlesyndication.com"
1979
2007
  ];
1980
- let oe = !1;
1981
- function kt() {
1982
- if (!(oe || typeof document > "u")) {
1983
- oe = !0;
1984
- for (const a of xt) {
1985
- if (document.head.querySelector(`link[rel="preconnect"][href="${a}"]`)) continue;
2008
+ let ne = !1;
2009
+ function Ct() {
2010
+ if (!(ne || typeof document > "u")) {
2011
+ ne = !0;
2012
+ for (const n of Et) {
2013
+ if (document.head.querySelector(`link[rel="preconnect"][href="${n}"]`)) continue;
1986
2014
  const t = document.createElement("link");
1987
- t.rel = "preconnect", t.href = a, document.head.appendChild(t);
2015
+ t.rel = "preconnect", t.href = n, document.head.appendChild(t);
1988
2016
  }
1989
2017
  }
1990
2018
  }
1991
- const wt = [0.5, 0.75, 1, 1.25, 1.5, 2], ne = 1200, Et = 3e3, ae = 5e3, Ct = 10, le = 10, Tt = 5, he = "stream-audio", z = "1.0.14", St = (
2019
+ const Tt = [0.5, 0.75, 1, 1.25, 1.5, 2], le = 1200, St = 3e3, he = 5e3, At = 10, pe = 10, Lt = 5, de = "stream-audio", N = "1.0.15", Pt = (
1992
2020
  /* html */
1993
2021
  `
1994
2022
  <div class="video-area">
@@ -1999,13 +2027,13 @@ const wt = [0.5, 0.75, 1, 1.25, 1.5, 2], ne = 1200, Et = 3e3, ae = 5e3, Ct = 10,
1999
2027
  </div>
2000
2028
  `
2001
2029
  );
2002
- function At(a) {
2003
- if (typeof a == "number") return Number.isFinite(a) && a > 0 ? String(a) : null;
2004
- if (typeof a != "string") return null;
2005
- const t = a.trim().match(/^(\d+(?:\.\d+)?)\s*(?:[:/]\s*(\d+(?:\.\d+)?))?$/);
2030
+ function Mt(n) {
2031
+ if (typeof n == "number") return Number.isFinite(n) && n > 0 ? String(n) : null;
2032
+ if (typeof n != "string") return null;
2033
+ const t = n.trim().match(/^(\d+(?:\.\d+)?)\s*(?:[:/]\s*(\d+(?:\.\d+)?))?$/);
2006
2034
  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];
2007
2035
  }
2008
- class ye extends HTMLElement {
2036
+ class ke extends HTMLElement {
2009
2037
  constructor() {
2010
2038
  super();
2011
2039
  s(this, "root");
@@ -2044,7 +2072,7 @@ class ye extends HTMLElement {
2044
2072
  /** options.debug — sağ tık menüsündeki "Hata ayıklama" girişini açar. */
2045
2073
  s(this, "debugEnabled", !1);
2046
2074
  /** Player'ın tüm hataları (medya, yayın, reklam, altyazı) — her zaman tutulur; bkz. `errorLog`. */
2047
- s(this, "log", new dt());
2075
+ s(this, "log", new gt());
2048
2076
  /** Son basılan işaretçi türü — sağ tık menüsü yalnızca fareyle (dokunmatikte uzun basma gesture'a ait). */
2049
2077
  s(this, "lastPointerType", "mouse");
2050
2078
  /** options.tapGestures kuruluysa (plugins/tap-gestures). */
@@ -2058,6 +2086,15 @@ class ye extends HTMLElement {
2058
2086
  s(this, "gestureControls", null);
2059
2087
  s(this, "loopSection", null);
2060
2088
  s(this, "audioStage", null);
2089
+ /** Kalite kilidi (rewardedUnlock eklentisi) — kilitliyse yüksek kaliteler menüde kilitli, HLS'te üst sınır var. */
2090
+ s(this, "qualityGate", null);
2091
+ s(this, "rewardedUnlock", null);
2092
+ s(this, "sponsorship", null);
2093
+ /** Son uygulanan MP4 kaynak listesi ve seçili etiket — kilit açılınca menü yeniden kurulur. */
2094
+ s(this, "currentSources", []);
2095
+ s(this, "activeSourceLabel", "");
2096
+ s(this, "lastHlsLevels", []);
2097
+ s(this, "lastHlsActive", -1);
2061
2098
  /** options.audio — kapak + plak sahnesi, kontroller hep görünür, tam ekran yok. */
2062
2099
  s(this, "audioMode", !1);
2063
2100
  s(this, "inViewAutoplay", null);
@@ -2118,19 +2155,19 @@ class ye extends HTMLElement {
2118
2155
  s(this, "hideTimer", null);
2119
2156
  s(this, "cursorTimer", null);
2120
2157
  /** null = imleç hiç gizlenmez (options.cursorHideDelayMs: false). */
2121
- s(this, "cursorHideDelayMs", ae);
2158
+ s(this, "cursorHideDelayMs", he);
2122
2159
  /** Fare kontrollerin (buton/seek bar) üzerinde mi — üzerindeyken otomatik gizlenmez; videonun üstünde hareketsizse gizlenir. */
2123
2160
  s(this, "pointerOverControls", !1);
2124
2161
  /** Kalite menüsünde şu an HLS seviyeleri mi var (kaynak değişince temizlemek için). */
2125
2162
  s(this, "hlsQualitiesShown", !1);
2126
2163
  /** Son uygulanan options.showRemainingTime — bkz. applyOptions. */
2127
2164
  s(this, "appliedShowRemaining");
2128
- s(this, "autoHideDelayMs", ne);
2165
+ s(this, "autoHideDelayMs", le);
2129
2166
  s(this, "tapCandidate", !1);
2130
2167
  s(this, "tapStartX", 0);
2131
2168
  s(this, "tapStartY", 0);
2132
2169
  /** Tüm UI'ın paylaştığı tek, mutable sözlük — dil değişince referans değil alanlar güncellenir. */
2133
- s(this, "i18n", ve("tr"));
2170
+ s(this, "i18n", xe("tr"));
2134
2171
  /** IMA SDK'nın kendi ad-UI dili (skip butonu/sayaç metni) de aynı dili takip etsin diye — bkz. plugins/ads/AdsController. */
2135
2172
  s(this, "localeCode", "tr");
2136
2173
  s(this, "onMediaError", () => {
@@ -2155,7 +2192,7 @@ class ye extends HTMLElement {
2155
2192
  s(this, "onContextMenu", (e) => {
2156
2193
  const i = this.contextMenuConfig;
2157
2194
  !i || this.lastPointerType !== "mouse" || (e.preventDefault(), this.contextMenu.show(e.clientX, e.clientY, [
2158
- { label: "HopeCorePlayer", meta: `v${z}` },
2195
+ { label: "HopeCorePlayer", meta: `v${N}` },
2159
2196
  ...i.stats ? [{ label: this.i18n.statsTitle, onSelect: () => void this.toggleStats(!0) }] : [],
2160
2197
  // Yalnızca debug açıkken ve kayıtlı bir hata varsa.
2161
2198
  ...this.debugEnabled && this.log.entries.length ? [{ label: this.i18n.debugTitle, meta: String(this.log.entries.length), onSelect: () => void this.showDebugLog() }] : []
@@ -2164,77 +2201,87 @@ class ye extends HTMLElement {
2164
2201
  s(this, "onStreamTextTracks", (e) => {
2165
2202
  const i = this.streamTracks.filter((r) => r.id.startsWith("native:"));
2166
2203
  if (!e.length)
2167
- ue(this.videoEl, "stream"), this.streamCueKeys.clear(), this.streamTracks = i;
2204
+ ge(this.videoEl, "stream"), this.streamCueKeys.clear(), this.streamTracks = i;
2168
2205
  else {
2169
2206
  const r = new Set([...this.optionTracks, ...i].map((o) => o.label));
2170
2207
  this.streamTracks = [
2171
2208
  ...i,
2172
2209
  ...e.map((o) => {
2173
- const n = this.uniqueLabel(this.streamTrackLabel(o.label, o.lang) || o.id, o.kind === "captions" ? "CC" : o.lang || o.kind, r);
2174
- return { id: o.id, label: n, track: de(this.videoEl, "stream", o.kind, n, o.lang) };
2210
+ const a = this.uniqueLabel(this.streamTrackLabel(o.label, o.lang) || o.id, o.kind === "captions" ? "CC" : o.lang || o.kind, r);
2211
+ return { id: o.id, label: a, track: me(this.videoEl, "stream", o.kind, a, o.lang) };
2175
2212
  })
2176
2213
  ];
2177
2214
  }
2178
2215
  this.rebuildCaptions(this.activeCaptionLabel);
2179
2216
  });
2180
2217
  s(this, "onStreamCues", (e, i) => {
2181
- var n;
2182
- const r = (n = this.streamTracks.find((l) => l.id === e)) == null ? void 0 : n.track;
2218
+ var a;
2219
+ const r = (a = this.streamTracks.find((l) => l.id === e)) == null ? void 0 : a.track;
2183
2220
  if (!r) return;
2184
2221
  let o = this.streamCueKeys.get(r);
2185
2222
  o || this.streamCueKeys.set(r, o = /* @__PURE__ */ new Set());
2186
2223
  for (const l of i) {
2187
- const d = `${l.startTime}|${l.endTime}|${l.text}`;
2188
- o.has(d) || (o.add(d), r.addCue(l));
2224
+ const p = `${l.startTime}|${l.endTime}|${l.text}`;
2225
+ o.has(p) || (o.add(p), r.addCue(l));
2189
2226
  }
2190
2227
  });
2191
2228
  /** Tarayıcının kendi (native HLS) altyazı izleri — bizim havuz izlerimiz ve metadata izleri hariç. */
2192
2229
  s(this, "onNativeTextTracksChanged", () => {
2193
- const e = Array.from(this.videoEl.textTracks).filter((n) => (n.kind === "subtitles" || n.kind === "captions") && !We(n)), i = this.streamTracks.some((n) => n.id.startsWith("native:"));
2230
+ const e = Array.from(this.videoEl.textTracks).filter((a) => (a.kind === "subtitles" || a.kind === "captions") && !Qe(a)), i = this.streamTracks.some((a) => a.id.startsWith("native:"));
2194
2231
  if (!e.length && !i) return;
2195
- const r = this.streamTracks.filter((n) => !n.id.startsWith("native:")), o = new Set([...this.optionTracks, ...r].map((n) => n.label));
2232
+ const r = this.streamTracks.filter((a) => !a.id.startsWith("native:")), o = new Set([...this.optionTracks, ...r].map((a) => a.label));
2196
2233
  this.streamTracks = [
2197
2234
  ...r,
2198
- ...e.map((n, l) => ({
2235
+ ...e.map((a, l) => ({
2199
2236
  id: `native:${l}`,
2200
- label: this.uniqueLabel(n.label || n.language || `${this.i18n.captions} ${l + 1}`, n.language || String(l + 1), o),
2201
- track: n
2237
+ label: this.uniqueLabel(a.label || a.language || `${this.i18n.captions} ${l + 1}`, a.language || String(l + 1), o),
2238
+ track: a
2202
2239
  }))
2203
2240
  ], this.rebuildCaptions(this.activeCaptionLabel);
2204
2241
  });
2205
2242
  /** Yayında birden fazla ses izi varsa ayarlarda "Ses" alt menüsü (HLS alternatif ses / Safari audioTracks). */
2206
2243
  s(this, "onStreamAudioTracks", (e, i) => {
2207
2244
  this.streamAudio = { tracks: e, active: i };
2208
- const r = this.controlBar.settingsMenu, o = /* @__PURE__ */ new Set(), n = new Map(e.map((l) => [l.index, this.uniqueLabel(this.streamTrackLabel(l.label, l.lang), String(l.index + 1), o)]));
2245
+ const r = this.controlBar.settingsMenu, o = /* @__PURE__ */ new Set(), a = new Map(e.map((l) => [l.index, this.uniqueLabel(this.streamTrackLabel(l.label, l.lang), String(l.index + 1), o)]));
2209
2246
  if (e.length <= 1) {
2210
- r.unregisterSubmenu(he);
2247
+ r.unregisterSubmenu(de);
2211
2248
  return;
2212
2249
  }
2213
2250
  r.registerSubmenu({
2214
- key: he,
2251
+ key: de,
2215
2252
  title: this.i18n.audioTrack,
2216
- getValueLabel: () => n.get(i) ?? "",
2217
- getItems: () => e.map((l) => ({ label: n.get(l.index), active: l.index === i, onSelect: () => this.sourceManager.setAudioTrack(l.index) }))
2253
+ getValueLabel: () => a.get(i) ?? "",
2254
+ getItems: () => e.map((l) => ({ label: a.get(l.index), active: l.index === i, onSelect: () => this.sourceManager.setAudioTrack(l.index) }))
2218
2255
  });
2219
2256
  });
2220
2257
  /** Playlist panelinin monte edileceği, .video-area'nın ALTINDAKİ (shadow root içi) kapsayıcı — ilk ihtiyaçta oluşturulur. */
2221
2258
  s(this, "panelContainer", null);
2222
2259
  s(this, "onHlsLevelsChanged", (e, i) => {
2260
+ var l;
2223
2261
  if (e.length === 0 && this.hlsQualitiesShown) {
2224
2262
  this.hlsQualitiesShown = !1, this.controlBar.setQualities([], "");
2225
2263
  return;
2226
2264
  }
2227
- if (e.length <= 1) return;
2265
+ if (this.lastHlsLevels = e, this.lastHlsActive = i, e.length <= 1) return;
2228
2266
  this.hlsQualitiesShown = !0;
2229
- const r = (o) => `${o.height}p`;
2267
+ const r = (p) => `${p.height}p`, o = this.qualityGate, a = (p) => !!(o != null && o.isLocked(p.height));
2268
+ if (o) {
2269
+ const p = e.filter((d) => !a(d)), u = p.length ? p : [e.reduce((d, m) => m.height < d.height ? m : d)];
2270
+ this.sourceManager.setMaxLevel(u.reduce((d, m) => m.height > d.height ? m : d).index);
2271
+ } else
2272
+ this.sourceManager.setMaxLevel(-1);
2230
2273
  this.controlBar.setQualities(
2231
2274
  [
2232
2275
  { label: this.i18n.autoQuality, onSelect: () => this.sourceManager.setLevel(-1) },
2233
2276
  // Yüksekten düşüğe (hls.js artan sıralıyor) — l.index hls.js'teki gerçek seviye numarası, sıradan bağımsız.
2234
- ...[...e].sort((o, n) => n.height - o.height).map((o) => ({ label: r(o), onSelect: () => this.sourceManager.setLevel(o.index) }))
2277
+ ...[...e].sort((p, u) => u.height - p.height).map((p) => ({
2278
+ label: r(p),
2279
+ locked: a(p),
2280
+ onSelect: a(p) ? () => o == null ? void 0 : o.requestUnlock() : () => this.sourceManager.setLevel(p.index)
2281
+ }))
2235
2282
  ],
2236
- i === -1 ? this.i18n.autoQuality : r(e[i])
2237
- );
2283
+ i === -1 || !e[i] ? this.i18n.autoQuality : r(e[i])
2284
+ ), (l = this.rewardedUnlock) == null || l.onQualitiesChanged();
2238
2285
  });
2239
2286
  s(this, "onFullscreenChange", (e) => {
2240
2287
  this.controlBar.setFullscreenState(this.isFullscreenActive()), (e == null ? void 0 : e.type) === "webkitbeginfullscreen" ? this.showCaptionsNatively() : (e == null ? void 0 : e.type) === "webkitendfullscreen" && this.syncCaptionsFromNative();
@@ -2258,21 +2305,21 @@ class ye extends HTMLElement {
2258
2305
  i && (this.tapStartX = i.clientX, this.tapStartY = i.clientY);
2259
2306
  });
2260
2307
  s(this, "onVideoPressEnd", (e) => {
2261
- var l, d;
2308
+ var l, p;
2262
2309
  if (!this.tapCandidate || (this.tapCandidate = !1, this.isChromeBlocked) || (l = this.gestureControls) != null && l.isCurrentlyHolding()) return;
2263
2310
  const i = "changedTouches" in e;
2264
2311
  if (!i && Date.now() - this.lastTouchEndAt < 800) return;
2265
2312
  i && (this.lastTouchEndAt = Date.now());
2266
2313
  const r = i ? e.changedTouches[0] : e;
2267
- if (r && Math.hypot(r.clientX - this.tapStartX, r.clientY - this.tapStartY) > Ct) {
2314
+ if (r && Math.hypot(r.clientX - this.tapStartX, r.clientY - this.tapStartY) > At) {
2268
2315
  i && !this.isChromeBlocked && this.scheduleAutoHide();
2269
2316
  return;
2270
2317
  }
2271
- const o = i ? "touch" : this.lastPointerType, n = () => this.onBackgroundTap(o, () => {
2318
+ const o = i ? "touch" : this.lastPointerType, a = () => this.onBackgroundTap(o, () => {
2272
2319
  this.videoEl.paused ? this.videoEl.play().catch(() => {
2273
2320
  }) : this.videoEl.pause();
2274
2321
  });
2275
- r && ((d = this.tapGestures) != null && d.handleTap(r.clientX, o === "pen" ? "pen" : o, n)) || n();
2322
+ r && ((p = this.tapGestures) != null && p.handleTap(r.clientX, o === "pen" ? "pen" : o, a)) || a();
2276
2323
  });
2277
2324
  s(this, "onVideoPressCancel", () => {
2278
2325
  this.tapCandidate = !1;
@@ -2290,21 +2337,21 @@ class ye extends HTMLElement {
2290
2337
  s(this, "scheduleAutoHide", () => {
2291
2338
  this.showChrome(), this.hideTimer && clearTimeout(this.hideTimer), !(this.videoEl.paused || this.loadingActive) && (this.audioMode || (this.hideTimer = setTimeout(() => {
2292
2339
  this.audioMode || this.videoEl.paused || this.loadingActive || this.pointerOverControls || this.controlBar.settingsMenu.isOpen || this.setChromeOpacity("0");
2293
- }, this.lastPointerType === "mouse" ? this.autoHideDelayMs : Math.max(this.autoHideDelayMs, Et))));
2340
+ }, this.lastPointerType === "mouse" ? this.autoHideDelayMs : Math.max(this.autoHideDelayMs, St))));
2294
2341
  });
2295
- mt(), this.root = this.attachShadow({ mode: "open" });
2342
+ ft(), this.root = this.attachShadow({ mode: "open" });
2296
2343
  const e = document.createElement("style");
2297
- e.textContent = we, this.root.appendChild(e);
2344
+ e.textContent = Ce, this.root.appendChild(e);
2298
2345
  const i = document.createElement("div");
2299
- i.className = "hp-root", i.innerHTML = St, 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 yt(this.videoEl), this.prerollGate.onWaitChange = (o) => this.onPrerollWaitChange(o), this.videoEl.addEventListener("error", this.onMediaError), this.videoEl.addEventListener("hp-internal:subtitle-error", this.onSubtitleError), this.loadingSpinner = new Ve(this.videoEl), this.root.querySelector(".media-layer").appendChild(this.loadingSpinner.el), this.errorScreen = new Ge(this.videoEl, this.i18n), this.errorScreen.setOnRetry(() => void this.sourceManager.reload()), this.videoArea.appendChild(this.errorScreen.el), this.centerPlayButton = document.createElement("button"), this.centerPlayButton.type = "button", this.centerPlayButton.setAttribute("part", "center-play-button"), this.centerPlayButton.setAttribute("aria-label", this.i18n.play), this.centerPlayButton.className = "hp-center-play hp:absolute hp:inset-0 hp:flex hp:items-center hp:justify-center hp:bg-transparent hp:border-0 hp:cursor-pointer hp:text-on-surface hp:transition-opacity";
2346
+ i.className = "hp-root", i.innerHTML = Pt, this.root.appendChild(i), this.videoArea = this.root.querySelector(".video-area"), this.videoEl = this.root.querySelector("video"), this.adLayerEl = this.root.querySelector('[part="ad-layer"]'), this.instanceKey = `hp-${Math.random().toString(36).slice(2, 10)}`, this.prerollGate = new wt(this.videoEl), this.prerollGate.onWaitChange = (o) => this.onPrerollWaitChange(o), this.videoEl.addEventListener("error", this.onMediaError), this.videoEl.addEventListener("hp-internal:subtitle-error", this.onSubtitleError), this.loadingSpinner = new Ue(this.videoEl), this.root.querySelector(".media-layer").appendChild(this.loadingSpinner.el), this.errorScreen = new Xe(this.videoEl, this.i18n), this.errorScreen.setOnRetry(() => void this.sourceManager.reload()), this.videoArea.appendChild(this.errorScreen.el), this.centerPlayButton = document.createElement("button"), this.centerPlayButton.type = "button", this.centerPlayButton.setAttribute("part", "center-play-button"), this.centerPlayButton.setAttribute("aria-label", this.i18n.play), this.centerPlayButton.className = "hp-center-play hp:absolute hp:inset-0 hp:flex hp:items-center hp:justify-center hp:bg-transparent hp:border-0 hp:cursor-pointer hp:text-on-surface hp:transition-opacity";
2300
2347
  const r = document.createElement("span");
2301
2348
  r.className = "hp-chip hp:flex hp:items-center hp:justify-center hp:w-16 hp:h-16", r.style.borderRadius = "9999px", r.appendChild(E("play", "hp:text-2xl")), this.centerPlayButton.appendChild(r), this.centerPlayButton.addEventListener("click", (o) => {
2302
- var c;
2303
- const n = () => {
2349
+ var d;
2350
+ const a = () => {
2304
2351
  this.videoEl.paused && this.videoEl.play();
2305
- }, l = this.lastPointerType === "pen" ? "pen" : this.lastPointerType === "touch" ? "touch" : null, u = o.composedPath().includes(r) ? n : () => this.onBackgroundTap(l ?? "mouse", n);
2306
- l && ((c = this.tapGestures) != null && c.handleTap(o.clientX, l, u)) || u();
2307
- }), 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 Ce(this.videoEl, {
2352
+ }, l = this.lastPointerType === "pen" ? "pen" : this.lastPointerType === "touch" ? "touch" : null, u = o.composedPath().includes(r) ? a : () => this.onBackgroundTap(l ?? "mouse", a);
2353
+ l && ((d = this.tapGestures) != null && d.handleTap(o.clientX, l, u)) || u();
2354
+ }), this.videoArea.appendChild(this.centerPlayButton), this.centerPlayObserver = new ResizeObserver(() => requestAnimationFrame(() => this.layoutCenterPlay())), this.centerPlayObserver.observe(this.videoArea), this.chromeEl = document.createElement("div"), this.chromeEl.className = "hp-chrome hp:absolute hp:inset-0 hp:z-20 hp:pointer-events-none", this.videoArea.appendChild(this.chromeEl), this.sourceManager = new Se(this.videoEl, {
2308
2355
  onLevelsChanged: this.onHlsLevelsChanged,
2309
2356
  onAudioTracksChanged: this.onStreamAudioTracks,
2310
2357
  onTextTracksFound: this.onStreamTextTracks,
@@ -2316,9 +2363,9 @@ class ye extends HTMLElement {
2316
2363
  fatal: o.fatal,
2317
2364
  details: { url: o.url, httpStatus: o.httpStatus, reason: o.reason, engine: "hls.js" }
2318
2365
  })
2319
- }), this.errorScreen.setShouldShow(() => !this.sourceManager.isRecovering()), this.controlBar = new Ie(
2366
+ }), this.errorScreen.setShouldShow(() => !this.sourceManager.isRecovering()), this.controlBar = new Fe(
2320
2367
  this.videoEl,
2321
- wt,
2368
+ Tt,
2322
2369
  {
2323
2370
  onRequestFullscreen: () => this.requestFullscreenCompat(),
2324
2371
  liveSyncPosition: () => {
@@ -2346,8 +2393,8 @@ class ye extends HTMLElement {
2346
2393
  return ((o = this.adsController) == null ? void 0 : o.getAdVolume()) ?? 1;
2347
2394
  },
2348
2395
  setVolume: (o) => {
2349
- var n;
2350
- return (n = this.adsController) == null ? void 0 : n.setAdVolume(o);
2396
+ var a;
2397
+ return (a = this.adsController) == null ? void 0 : a.setAdVolume(o);
2351
2398
  },
2352
2399
  toggleMute: () => {
2353
2400
  var o;
@@ -2356,11 +2403,11 @@ class ye extends HTMLElement {
2356
2403
  }
2357
2404
  },
2358
2405
  this.i18n
2359
- ), this.chromeEl.appendChild(this.controlBar.el), this.chromeEl.appendChild(this.controlBar.topEl), this.videoArea.appendChild(this.controlBar.volumePanel.unmuteBadge), this.captionRenderer = new M(this.videoEl, this.videoArea, this.controlBar.seekBar.el, this.i18n), this.videoArea.appendChild(this.captionRenderer.layerEl), this.keyboard = new _e(
2406
+ ), this.chromeEl.appendChild(this.controlBar.el), this.chromeEl.appendChild(this.controlBar.topEl), this.videoArea.appendChild(this.controlBar.volumePanel.unmuteBadge), this.captionRenderer = new B(this.videoEl, this.videoArea, this.controlBar.seekBar.el, this.i18n), this.videoArea.appendChild(this.captionRenderer.layerEl), this.keyboard = new Ge(
2360
2407
  this,
2361
2408
  this.videoEl,
2362
2409
  () => this.isFullscreenActive() ? this.exitFullscreenCompat() : this.requestFullscreenCompat()
2363
- ), this.tooltip = new He(this.videoArea), this.contextMenu = new pt(this.videoArea), this.seekFeedback = new ht(this.i18n), this.videoArea.appendChild(this.seekFeedback.el), this.controlBar.onSkip = (o) => this.seekFeedback.show(o), this.keyboard.onSeek = (o) => this.seekFeedback.show(o), this.keyboard.interceptTogglePlay = () => this.cancelPrerollWait(), this.controlBar.seekBar.onKeyboardSeek = (o) => this.seekFeedback.show(o), this.blockChrome("boot");
2410
+ ), this.tooltip = new _e(this.videoArea), this.contextMenu = new ut(this.videoArea), this.seekFeedback = new ct(this.i18n), this.videoArea.appendChild(this.seekFeedback.el), this.controlBar.onSkip = (o) => this.seekFeedback.show(o), this.keyboard.onSeek = (o) => this.seekFeedback.show(o), this.keyboard.interceptTogglePlay = () => this.cancelPrerollWait(), this.controlBar.seekBar.onKeyboardSeek = (o) => this.seekFeedback.show(o), this.blockChrome("boot");
2364
2411
  }
2365
2412
  static get observedAttributes() {
2366
2413
  return ["src", "poster", "autoplay", "muted", "loop", "theme", "locale"];
@@ -2376,8 +2423,8 @@ class ye extends HTMLElement {
2376
2423
  }), this.videoEl.addEventListener("mousedown", this.onVideoPressStart), this.videoEl.addEventListener("mouseup", this.onVideoPressEnd), this.videoEl.addEventListener("mouseleave", this.onVideoPressCancel), this.videoEl.addEventListener("touchstart", this.onVideoPressStart, { passive: !0 }), this.videoEl.addEventListener("touchend", this.onVideoPressEnd), this.videoEl.addEventListener("touchcancel", this.onVideoPressCancel), this.dispatchEvent(new CustomEvent("hp:ready"));
2377
2424
  }
2378
2425
  disconnectedCallback() {
2379
- var e, i, r, o, n, l, d, u, c, b, h, p, m, g, v, y, f, x, S, k, A, _, V, q;
2380
- (e = this.centerPlayObserver) == null || e.disconnect(), this.showCursor(), (i = this.miniProgress) == null || i.destroy(), this.miniProgress = null, this.videoEl.removeEventListener("play", this.onPlay), this.videoEl.removeEventListener("pause", this.onPause), this.removeEventListener("pointermove", this.onPointerMove), this.removeEventListener("pointerleave", this.onPointerLeave), this.removeEventListener("pointerdown", this.onPointerDownFocus), this.controlBar.settingsMenu.onOpenChange = null, document.removeEventListener("fullscreenchange", this.onFullscreenChange), document.removeEventListener("webkitfullscreenchange", this.onFullscreenChange), this.videoEl.removeEventListener("webkitbeginfullscreen", this.onFullscreenChange), this.videoEl.removeEventListener("webkitendfullscreen", this.onFullscreenChange), this.removeEventListener("contextmenu", this.onContextMenu), this.removeEventListener("pointerdown", this.onPointerTypeTrack, !0), this.videoEl.textTracks.removeEventListener("addtrack", this.onNativeTextTracksChanged), this.videoEl.textTracks.removeEventListener("removetrack", this.onNativeTextTracksChanged), this.videoEl.removeEventListener("mousedown", this.onVideoPressStart), this.videoEl.removeEventListener("mouseup", this.onVideoPressEnd), this.videoEl.removeEventListener("mouseleave", this.onVideoPressCancel), this.videoEl.removeEventListener("touchstart", this.onVideoPressStart), this.videoEl.removeEventListener("touchend", this.onVideoPressEnd), this.videoEl.removeEventListener("touchcancel", this.onVideoPressCancel), this.controlBar.destroy(), this.captionRenderer.destroy(), this.keyboard.destroy(), this.tooltip.destroy(), this.loadingSpinner.destroy(), this.errorScreen.destroy(), this.seekFeedback.destroy(), this.contextMenu.destroy(), (r = this.statsPanel) == null || r.destroy(), (o = this.debugPanel) == null || o.destroy(), this.videoEl.removeEventListener("error", this.onMediaError), this.videoEl.removeEventListener("hp-internal:subtitle-error", this.onSubtitleError), (n = this.tapGestures) == null || n.destroy(), this.sourceManager.destroy(), (l = this.adsController) == null || l.destroy(), (d = this.gestureControls) == null || d.destroy(), (u = this.loopSection) == null || u.destroy(), (c = this.audioStage) == null || c.destroy(), this.audioStage = null, (b = this.inViewAutoplay) == null || b.destroy(), (h = this.unregisterSticky) == null || h.call(this), (p = this.playlistRunner) == null || p.destroy(), (m = this.hopeStory) == null || m.destroy(), (g = this.markProgress) == null || g.destroy(), (v = this.segments) == null || v.destroy(), (y = this.spriteThumbnails) == null || y.destroy(), (f = this.countdownScreen) == null || f.destroy(), (x = this.geoChecker) == null || x.destroy(), (S = this.redirectScreen) == null || S.destroy(), (k = this.qrResume) == null || k.destroy(), (A = this.pauseAd) == null || A.destroy(), this.pauseAd = null, (_ = this.dubbing) == null || _.destroy(), (V = this.liveWallClock) == null || V.destroy(), (q = this.daiController) == null || q.destroy(), this.prerollGate.release(!1), this.hideTimer && clearTimeout(this.hideTimer), this.bootGraceTimer && clearTimeout(this.bootGraceTimer), this.lastSynced = null;
2426
+ var e, i, r, o, a, l, p, u, d, m, h, c, g, b, v, y, f, x, S, A, k, L, V, _, G, U;
2427
+ (e = this.centerPlayObserver) == null || e.disconnect(), this.showCursor(), (i = this.miniProgress) == null || i.destroy(), this.miniProgress = null, this.videoEl.removeEventListener("play", this.onPlay), this.videoEl.removeEventListener("pause", this.onPause), this.removeEventListener("pointermove", this.onPointerMove), this.removeEventListener("pointerleave", this.onPointerLeave), this.removeEventListener("pointerdown", this.onPointerDownFocus), this.controlBar.settingsMenu.onOpenChange = null, document.removeEventListener("fullscreenchange", this.onFullscreenChange), document.removeEventListener("webkitfullscreenchange", this.onFullscreenChange), this.videoEl.removeEventListener("webkitbeginfullscreen", this.onFullscreenChange), this.videoEl.removeEventListener("webkitendfullscreen", this.onFullscreenChange), this.removeEventListener("contextmenu", this.onContextMenu), this.removeEventListener("pointerdown", this.onPointerTypeTrack, !0), this.videoEl.textTracks.removeEventListener("addtrack", this.onNativeTextTracksChanged), this.videoEl.textTracks.removeEventListener("removetrack", this.onNativeTextTracksChanged), this.videoEl.removeEventListener("mousedown", this.onVideoPressStart), this.videoEl.removeEventListener("mouseup", this.onVideoPressEnd), this.videoEl.removeEventListener("mouseleave", this.onVideoPressCancel), this.videoEl.removeEventListener("touchstart", this.onVideoPressStart), this.videoEl.removeEventListener("touchend", this.onVideoPressEnd), this.videoEl.removeEventListener("touchcancel", this.onVideoPressCancel), this.controlBar.destroy(), this.captionRenderer.destroy(), this.keyboard.destroy(), this.tooltip.destroy(), this.loadingSpinner.destroy(), this.errorScreen.destroy(), this.seekFeedback.destroy(), this.contextMenu.destroy(), (r = this.statsPanel) == null || r.destroy(), (o = this.debugPanel) == null || o.destroy(), this.videoEl.removeEventListener("error", this.onMediaError), this.videoEl.removeEventListener("hp-internal:subtitle-error", this.onSubtitleError), (a = this.tapGestures) == null || a.destroy(), this.sourceManager.destroy(), (l = this.adsController) == null || l.destroy(), (p = this.gestureControls) == null || p.destroy(), (u = this.loopSection) == null || u.destroy(), (d = this.audioStage) == null || d.destroy(), this.audioStage = null, (m = this.rewardedUnlock) == null || m.destroy(), this.rewardedUnlock = null, (h = this.sponsorship) == null || h.destroy(), this.sponsorship = null, (c = this.inViewAutoplay) == null || c.destroy(), (g = this.unregisterSticky) == null || g.call(this), (b = this.playlistRunner) == null || b.destroy(), (v = this.hopeStory) == null || v.destroy(), (y = this.markProgress) == null || y.destroy(), (f = this.segments) == null || f.destroy(), (x = this.spriteThumbnails) == null || x.destroy(), (S = this.countdownScreen) == null || S.destroy(), (A = this.geoChecker) == null || A.destroy(), (k = this.redirectScreen) == null || k.destroy(), (L = this.qrResume) == null || L.destroy(), (V = this.pauseAd) == null || V.destroy(), this.pauseAd = null, (_ = this.dubbing) == null || _.destroy(), (G = this.liveWallClock) == null || G.destroy(), (U = this.daiController) == null || U.destroy(), this.prerollGate.release(!1), this.hideTimer && clearTimeout(this.hideTimer), this.bootGraceTimer && clearTimeout(this.bootGraceTimer), this.lastSynced = null;
2381
2428
  }
2382
2429
  /** Reklam/consent-farkında plugin'lerin (gesture/sticky/in-view-autoplay) ortak sorgusu. */
2383
2430
  isAdPlaying() {
@@ -2410,7 +2457,7 @@ class ye extends HTMLElement {
2410
2457
  async showDebugLog() {
2411
2458
  if (!this.debugPanel) {
2412
2459
  const { installDebugPanel: e } = await import("./index-DCXX1ZJG.js");
2413
- this.debugPanel ?? (this.debugPanel = e({ containerEl: this.videoArea, i18n: this.i18n, log: this.log, version: z }));
2460
+ this.debugPanel ?? (this.debugPanel = e({ containerEl: this.videoArea, i18n: this.i18n, log: this.log, version: N }));
2414
2461
  }
2415
2462
  this.debugPanel.show();
2416
2463
  }
@@ -2423,7 +2470,7 @@ class ye extends HTMLElement {
2423
2470
  videoEl: this.videoEl,
2424
2471
  containerEl: this.videoArea,
2425
2472
  i18n: this.i18n,
2426
- version: z,
2473
+ version: N,
2427
2474
  getEngine: () => this.sourceManager.engine,
2428
2475
  getHls: () => this.sourceManager.hlsInstance
2429
2476
  }));
@@ -2481,23 +2528,23 @@ class ye extends HTMLElement {
2481
2528
  })), this.pluginApplyRun;
2482
2529
  }
2483
2530
  async applyOptions(e) {
2484
- var n, l, d, u, c, b, h, p, m, g, v, y, f, x, S, k, A;
2485
- e.poster && (this.videoEl.poster = e.poster), this.videoEl.autoplay = !!e.autoplay, this.videoEl.muted = !!e.muted, this.videoEl.loop = !!e.loop, this.videoEl.preload = e.preload ?? "metadata", this.videoEl.playsInline = !0, this.videoEl.setAttribute("webkit-playsinline", ""), this.autoHideDelayMs = e.autoHideDelayMs ?? ne, this.tapToPlay = e.tapToPlay ?? "auto", this.cursorHideDelayMs = e.cursorHideDelayMs === !1 ? null : e.cursorHideDelayMs ?? ae, this.cursorHideDelayMs === null && this.showCursor(), e.miniProgress && !this.miniProgress ? (this.miniProgress = new ot(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 || (n = this.debugPanel) == null || n.hide(), this.contextMenuConfig = e.contextMenu === !1 ? null : { stats: typeof e.contextMenu == "object" && e.contextMenu.stats === !0 }, this.contextMenuConfig || this.contextMenu.close();
2486
- const i = e.keyboardSeekStep && e.keyboardSeekStep > 0 ? e.keyboardSeekStep : Tt;
2531
+ var a, l, p, u, d, m, h, c, g, b, v, y, f, x, S, A, k, L;
2532
+ e.poster && (this.videoEl.poster = e.poster), this.videoEl.autoplay = !!e.autoplay, this.videoEl.muted = !!e.muted, this.videoEl.loop = !!e.loop, this.videoEl.preload = e.preload ?? "metadata", this.videoEl.playsInline = !0, this.videoEl.setAttribute("webkit-playsinline", ""), this.autoHideDelayMs = e.autoHideDelayMs ?? le, this.tapToPlay = e.tapToPlay ?? "auto", this.cursorHideDelayMs = e.cursorHideDelayMs === !1 ? null : e.cursorHideDelayMs ?? he, this.cursorHideDelayMs === null && this.showCursor(), e.miniProgress && !this.miniProgress ? (this.miniProgress = new lt(this.videoEl), this.videoArea.appendChild(this.miniProgress.el), this.updateMiniProgress()) : !e.miniProgress && this.miniProgress && (this.miniProgress.destroy(), this.miniProgress = null), this.debugEnabled = !!e.debug, this.debugEnabled || (a = this.debugPanel) == null || a.hide(), this.contextMenuConfig = e.contextMenu === !1 ? null : { stats: typeof e.contextMenu == "object" && e.contextMenu.stats === !0 }, this.contextMenuConfig || this.contextMenu.close();
2533
+ const i = e.keyboardSeekStep && e.keyboardSeekStep > 0 ? e.keyboardSeekStep : Lt;
2487
2534
  this.keyboard.seekStep = i, this.controlBar.seekBar.keyboardStep = i;
2488
2535
  const r = e.skipButtons === !0 ? {} : e.skipButtons || null;
2489
2536
  this.controlBar.setSkipButtons(
2490
- r && r.back !== !1 ? r.back ?? le : null,
2491
- r && r.forward !== !1 ? r.forward ?? le : null
2537
+ r && r.back !== !1 ? r.back ?? pe : null,
2538
+ r && r.forward !== !1 ? r.forward ?? pe : null
2492
2539
  ), e.showRemainingTime !== void 0 && e.showRemainingTime !== this.appliedShowRemaining && (this.appliedShowRemaining = e.showRemainingTime, this.controlBar.setShowRemaining(e.showRemainingTime));
2493
- const o = At(e.aspectRatio);
2494
- o ? this.style.setProperty("--hp-aspect-ratio", o) : this.style.removeProperty("--hp-aspect-ratio"), e.theme ? this.setAttribute("data-theme", e.theme) : this.removeAttribute("data-theme"), this.localeCode = e.locale ?? "tr", ft(this.i18n, e.locale, e.labels), this.centerPlayButton.setAttribute("aria-label", this.i18n.play), this.controlBar.refreshLabels(), this.captionRenderer.refreshLabels(this.i18n), this.captionTrackActive && this.controlBar.settingsMenu.setCaptionAppearance(this.buildCaptionAppearance()), this.errorScreen.refreshLabels(), (l = this.playlistRunner) == null || l.refreshLabels(), (d = this.hopeStory) == null || d.refreshLabels(), (u = this.countdownScreen) == null || u.refreshLabels(), (c = this.geoChecker) == null || c.refreshLabels(), (b = this.redirectScreen) == null || b.refreshLabels(), (h = this.qrResume) == null || h.refreshLabels(), (p = this.pauseAd) == null || p.refreshLabels(), (m = this.dubbing) == null || m.refreshLabels(), this.onStreamAudioTracks(this.streamAudio.tracks, this.streamAudio.active), (g = this.statsPanel) == null || g.refreshLabels(), (v = this.debugPanel) == null || v.refreshLabels(), (y = this.liveWallClock) == null || y.refreshLabels(), (f = this.loopSection) == null || f.refreshLabels(), (x = this.audioStage) == null || x.refreshLabels(), (S = this.markProgress) == null || S.refreshLabels(), (A = (k = this.unregisterSticky) == null ? void 0 : k.refreshLabels) == null || A.call(k), this.bootResolved && await this.queuePluginApply(e);
2540
+ const o = Mt(e.aspectRatio);
2541
+ o ? this.style.setProperty("--hp-aspect-ratio", o) : this.style.removeProperty("--hp-aspect-ratio"), e.theme ? this.setAttribute("data-theme", e.theme) : this.removeAttribute("data-theme"), this.localeCode = e.locale ?? "tr", xt(this.i18n, e.locale, e.labels), this.centerPlayButton.setAttribute("aria-label", this.i18n.play), this.controlBar.refreshLabels(), this.captionRenderer.refreshLabels(this.i18n), this.captionTrackActive && this.controlBar.settingsMenu.setCaptionAppearance(this.buildCaptionAppearance()), this.errorScreen.refreshLabels(), (l = this.playlistRunner) == null || l.refreshLabels(), (p = this.hopeStory) == null || p.refreshLabels(), (u = this.countdownScreen) == null || u.refreshLabels(), (d = this.geoChecker) == null || d.refreshLabels(), (m = this.redirectScreen) == null || m.refreshLabels(), (h = this.qrResume) == null || h.refreshLabels(), (c = this.pauseAd) == null || c.refreshLabels(), (g = this.dubbing) == null || g.refreshLabels(), this.onStreamAudioTracks(this.streamAudio.tracks, this.streamAudio.active), (b = this.statsPanel) == null || b.refreshLabels(), (v = this.debugPanel) == null || v.refreshLabels(), (y = this.liveWallClock) == null || y.refreshLabels(), (f = this.loopSection) == null || f.refreshLabels(), (x = this.audioStage) == null || x.refreshLabels(), (S = this.rewardedUnlock) == null || S.refreshLabels(), (A = this.markProgress) == null || A.refreshLabels(), (L = (k = this.unregisterSticky) == null ? void 0 : k.refreshLabels) == null || L.call(k), this.bootResolved && await this.queuePluginApply(e);
2495
2542
  }
2496
2543
  /** applyOptions'ın asenkron kısmı — yalnızca queuePluginApply üzerinden, sırayla çalışır. */
2497
2544
  async applyPluginsAndPlayback(e) {
2498
2545
  if (e.ads && !this.adsController) {
2499
2546
  const r = e.ads === !0 ? {} : e.ads;
2500
- vt(r) && !this.prerollGate.isArmed && this.prerollGate.arm(r.prerollTimeoutMs ?? H), kt(), e.countdownScreen || this.installAdsOnce(e);
2547
+ kt(r) && !this.prerollGate.isArmed && this.prerollGate.arm(r.prerollTimeoutMs ?? q), Ct(), e.countdownScreen || this.installAdsOnce(e);
2501
2548
  }
2502
2549
  await this.applyAudioMode(e);
2503
2550
  const i = () => ({
@@ -2521,46 +2568,42 @@ class ye extends HTMLElement {
2521
2568
  }))) : await this.initPlayback(e);
2522
2569
  }
2523
2570
  async initPlayback(e) {
2524
- var o, n, l, d, u, c, b;
2525
- this.sourceManager.configure(e.hls), this.errorScreen.dismiss();
2526
- const i = (o = e.sources) != null && o.length ? e.sources : e.src ? [{ src: e.src, label: this.i18n.autoQuality }] : [], r = i.find((h) => h.selected) ?? i[0];
2527
- if (r && !this.sourceManager.isLoaded(r.src, r.type) && (i.length <= 1 && (this.controlBar.setQualities([], ""), this.hlsQualitiesShown = !1), await this.sourceManager.load(r.src, r.type), e.autoplay && this.videoEl.play().catch(() => {
2528
- })), i.length > 1 && this.controlBar.setQualities(
2529
- i.map((h) => ({
2530
- label: h.label,
2531
- onSelect: () => void this.switchQualitySource(h)
2532
- })),
2533
- ((n = i.find((h) => h.selected)) == null ? void 0 : n.label) ?? i[0].label
2534
- ), await this.installAdsOnce(e), e.gesture && !this.gestureControls) {
2535
- const h = e.gesture === !0 ? {} : e.gesture, { installGesture: p } = await import("./index-Ca8hocby.js");
2536
- this.gestureControls = p(
2571
+ var a, l, p, u, d, m;
2572
+ this.sourceManager.configure(e.hls), this.errorScreen.dismiss(), await this.applyRewardedUnlock(e);
2573
+ const i = (a = e.sources) != null && a.length ? e.sources : e.src ? [{ src: e.src, label: this.i18n.autoQuality }] : [];
2574
+ this.currentSources = i;
2575
+ const o = i.find((h) => this.sourceManager.isLoaded(h.src, h.type) && !this.isSourceLocked(h)) ?? this.pickInitialSource(i);
2576
+ if (o && !this.sourceManager.isLoaded(o.src, o.type) && (i.length <= 1 && (this.controlBar.setQualities([], ""), this.hlsQualitiesShown = !1), await this.sourceManager.load(o.src, o.type), e.autoplay && this.videoEl.play().catch(() => {
2577
+ })), o && (this.activeSourceLabel = o.label), this.renderSourceQualities(), await this.installAdsOnce(e), await this.applySponsorship(e), e.gesture && !this.gestureControls) {
2578
+ const h = e.gesture === !0 ? {} : e.gesture, { installGesture: c } = await import("./index-Ca8hocby.js");
2579
+ this.gestureControls = c(
2537
2580
  { videoEl: this.videoEl, overlayContainerEl: this.videoArea, isAdActive: () => this.isAdPlaying() },
2538
2581
  h
2539
2582
  );
2540
2583
  }
2541
2584
  if (e.loopSection && !this.loopSection) {
2542
- const h = e.loopSection === !0 ? {} : e.loopSection, { installLoopSection: p } = await import("./index-f0vSgRIK.js");
2543
- this.loopSection = p(
2585
+ const h = e.loopSection === !0 ? {} : e.loopSection, { installLoopSection: c } = await import("./index-f0vSgRIK.js");
2586
+ this.loopSection = c(
2544
2587
  {
2545
2588
  videoEl: this.videoEl,
2546
2589
  seekBarEl: this.controlBar.seekBar.el,
2547
2590
  markers: this.controlBar.seekBar,
2548
- addControlButton: (m, g, v) => this.controlBar.addButton(m, g, v),
2591
+ addControlButton: (g, b, v) => this.controlBar.addButton(g, b, v),
2549
2592
  i18n: this.i18n
2550
2593
  },
2551
2594
  h
2552
2595
  );
2553
2596
  }
2554
2597
  if (e.inViewAutoplay && !this.inViewAutoplay) {
2555
- const h = e.inViewAutoplay === !0 ? {} : e.inViewAutoplay, { installInViewAutoplay: p } = await import("./index-3QALpwsf.js");
2556
- this.inViewAutoplay = p(
2598
+ const h = e.inViewAutoplay === !0 ? {} : e.inViewAutoplay, { installInViewAutoplay: c } = await import("./index-3QALpwsf.js");
2599
+ this.inViewAutoplay = c(
2557
2600
  { videoEl: this.videoEl, observeEl: this, isAdActive: () => this.isAdPlaying() },
2558
2601
  h
2559
2602
  );
2560
2603
  }
2561
2604
  if (e.sticky && !this.unregisterSticky) {
2562
- const h = e.sticky === !0 ? {} : e.sticky, { installSticky: p } = await import("./index-CDDke5rz.js");
2563
- this.unregisterSticky = p(
2605
+ const h = e.sticky === !0 ? {} : e.sticky, { installSticky: c } = await import("./index-CDDke5rz.js");
2606
+ this.unregisterSticky = c(
2564
2607
  {
2565
2608
  key: this.instanceKey,
2566
2609
  videoEl: this.videoEl,
@@ -2574,19 +2617,19 @@ class ye extends HTMLElement {
2574
2617
  );
2575
2618
  }
2576
2619
  if (e.playlist && !this.playlistRunner) {
2577
- const { installPlaylist: h } = await import("./index-DtqNHU7Y.js");
2620
+ const { installPlaylist: h } = await import("./index-DpUZXNJS.js");
2578
2621
  this.playlistRunner = h(
2579
2622
  {
2580
2623
  videoEl: this.videoEl,
2581
2624
  hostEl: this,
2582
2625
  panelEl: this.getOrCreatePanelContainer(),
2583
- loadSource: (p, m) => this.sourceManager.load(p, m),
2584
- setPoster: (p) => {
2585
- this.videoEl.poster = p;
2626
+ loadSource: (c, g) => this.sourceManager.load(c, g),
2627
+ setPoster: (c) => {
2628
+ this.videoEl.poster = c;
2586
2629
  },
2587
- requestFreshAd: (p) => {
2588
- var m;
2589
- return (m = this.adsController) == null ? void 0 : m.resetForNewItem(p);
2630
+ requestFreshAd: (c) => {
2631
+ var g;
2632
+ return (g = this.adsController) == null ? void 0 : g.resetForNewItem(c);
2590
2633
  },
2591
2634
  i18n: this.i18n
2592
2635
  },
@@ -2594,20 +2637,20 @@ class ye extends HTMLElement {
2594
2637
  );
2595
2638
  }
2596
2639
  if (e.story && !this.hopeStory) {
2597
- const { installStory: h } = await import("./index-Dy0Th0is.js");
2640
+ const { installStory: h } = await import("./index-ClQg_X1N.js");
2598
2641
  this.hopeStory = h(
2599
2642
  {
2600
2643
  videoEl: this.videoEl,
2601
2644
  hostEl: this,
2602
2645
  videoAreaEl: this.videoArea,
2603
2646
  playerBodyEls: [this.root.querySelector(".media-layer"), this.chromeEl, this.centerPlayButton],
2604
- loadSource: (p, m) => this.sourceManager.load(p, m),
2605
- setPoster: (p) => {
2606
- this.videoEl.poster = p;
2647
+ loadSource: (c, g) => this.sourceManager.load(c, g),
2648
+ setPoster: (c) => {
2649
+ this.videoEl.poster = c;
2607
2650
  },
2608
- requestFreshAd: (p) => {
2609
- var m;
2610
- return (m = this.adsController) == null ? void 0 : m.resetForNewItem(p);
2651
+ requestFreshAd: (c) => {
2652
+ var g;
2653
+ return (g = this.adsController) == null ? void 0 : g.resetForNewItem(c);
2611
2654
  },
2612
2655
  i18n: this.i18n
2613
2656
  },
@@ -2615,23 +2658,23 @@ class ye extends HTMLElement {
2615
2658
  );
2616
2659
  }
2617
2660
  if (e.markers && !this.markProgress) {
2618
- const { installMarkers: h } = await import("./index-DcVUXkXo.js");
2661
+ const { installMarkers: h } = await import("./index-DRlQC-ev.js");
2619
2662
  this.markProgress = h(
2620
2663
  {
2621
2664
  videoEl: this.videoEl,
2622
2665
  overlayContainerEl: this.videoArea,
2623
- addSeekBarMarker: (p, m) => this.controlBar.seekBar.addMarker(p, m),
2666
+ addSeekBarMarker: (c, g) => this.controlBar.seekBar.addMarker(c, g),
2624
2667
  i18n: this.i18n
2625
2668
  },
2626
2669
  e.markers
2627
2670
  );
2628
2671
  }
2629
2672
  if ((l = e.segments) != null && l.length && !this.segments) {
2630
- const { installSegments: h } = await import("./index-C2c71cGP.js");
2673
+ const { installSegments: h } = await import("./index-BOoNcKeR.js");
2631
2674
  this.segments = h({ videoEl: this.videoEl, seekBar: this.controlBar.seekBar }, e.segments);
2632
2675
  }
2633
2676
  if (e.spriteThumbnails && !this.spriteThumbnails) {
2634
- const { installSpriteThumbnails: h } = await import("./index-BTBAxNjr.js");
2677
+ const { installSpriteThumbnails: h } = await import("./index-BvoB2O1p.js");
2635
2678
  this.spriteThumbnails = h(
2636
2679
  {
2637
2680
  videoEl: this.videoEl,
@@ -2665,8 +2708,8 @@ class ye extends HTMLElement {
2665
2708
  this.tapGestures = h(
2666
2709
  {
2667
2710
  areaEl: this.videoArea,
2668
- seekBy: (p) => {
2669
- this.controlBar.seekBar.el.style.pointerEvents !== "none" && (pe(this.videoEl, p), this.seekFeedback.show(p));
2711
+ seekBy: (c) => {
2712
+ this.controlBar.seekBar.el.style.pointerEvents !== "none" && (ce(this.videoEl, c), this.seekFeedback.show(c));
2670
2713
  },
2671
2714
  togglePlay: () => this.videoEl.paused ? void this.videoEl.play().catch(() => {
2672
2715
  }) : this.videoEl.pause(),
@@ -2682,7 +2725,7 @@ class ye extends HTMLElement {
2682
2725
  const { DEFAULT_TAP_GESTURES: h } = await import("./index-C5oGMHF_.js");
2683
2726
  this.tapGestures.setGestures(e.tapGestures === !0 ? h : e.tapGestures || []);
2684
2727
  }
2685
- if ((d = e.pauseAd) != null && d.adUnitPath && !this.pauseAd) {
2728
+ if ((p = e.pauseAd) != null && p.adUnitPath && !this.pauseAd) {
2686
2729
  const { installPauseAd: h } = await import("./index-CaMVTgh0.js");
2687
2730
  this.pauseAd = h(
2688
2731
  { videoEl: this.videoEl, hostEl: this, videoArea: this.videoArea, i18n: this.i18n, isBlocked: () => this.isChromeBlocked },
@@ -2694,27 +2737,27 @@ class ye extends HTMLElement {
2694
2737
  this.dubbing = h(
2695
2738
  {
2696
2739
  videoEl: this.videoEl,
2697
- loadSource: (p, m) => this.sourceManager.load(p, m),
2698
- registerSubmenu: (p) => this.controlBar.settingsMenu.registerSubmenu(p),
2699
- unregisterSubmenu: (p) => this.controlBar.settingsMenu.unregisterSubmenu(p),
2740
+ loadSource: (c, g) => this.sourceManager.load(c, g),
2741
+ registerSubmenu: (c) => this.controlBar.settingsMenu.registerSubmenu(c),
2742
+ unregisterSubmenu: (c) => this.controlBar.settingsMenu.unregisterSubmenu(c),
2700
2743
  i18n: this.i18n
2701
2744
  },
2702
2745
  e.dubbing
2703
2746
  );
2704
2747
  }
2705
2748
  if (e.liveWallClock && !this.liveWallClock) {
2706
- const h = e.liveWallClock === !0 ? {} : e.liveWallClock, { installLiveWallClock: p } = await import("./index-7IBf8Y-R.js");
2707
- this.liveWallClock = p(
2749
+ const h = e.liveWallClock === !0 ? {} : e.liveWallClock, { installLiveWallClock: c } = await import("./index-7IBf8Y-R.js");
2750
+ this.liveWallClock = c(
2708
2751
  {
2709
2752
  videoEl: this.videoEl,
2710
2753
  seekBarEl: this.controlBar.seekBar.el,
2711
- addControlElement: (m) => this.controlBar.addElement(m),
2754
+ addControlElement: (g) => this.controlBar.addElement(g),
2712
2755
  i18n: this.i18n,
2713
2756
  getPlayingDate: () => {
2714
2757
  var y, f, x;
2715
- const m = (y = this.sourceManager.hlsInstance) == null ? void 0 : y.playingDate;
2716
- if (m) return m;
2717
- const g = (x = (f = this.videoEl).getStartDate) == null ? void 0 : x.call(f), v = (g == null ? void 0 : g.getTime()) ?? NaN;
2758
+ const g = (y = this.sourceManager.hlsInstance) == null ? void 0 : y.playingDate;
2759
+ if (g) return g;
2760
+ const b = (x = (f = this.videoEl).getStartDate) == null ? void 0 : x.call(f), v = (b == null ? void 0 : b.getTime()) ?? NaN;
2718
2761
  return Number.isFinite(v) && v > 0 ? new Date(v + this.videoEl.currentTime * 1e3) : null;
2719
2762
  }
2720
2763
  },
@@ -2728,14 +2771,14 @@ class ye extends HTMLElement {
2728
2771
  videoEl: this.videoEl,
2729
2772
  hostEl: this,
2730
2773
  adUiEl: this.adLayerEl,
2731
- loadStreamUrl: (p) => this.sourceManager.load(p),
2774
+ loadStreamUrl: (c) => this.sourceManager.load(c),
2732
2775
  disableSeeking: () => this.disableSeeking(),
2733
2776
  enableSeeking: () => this.enableSeeking()
2734
2777
  },
2735
2778
  e.dai
2736
2779
  );
2737
2780
  }
2738
- (u = e.subtitles) != null && u.length ? this.optionTracks = Xe(this.videoEl, e.subtitles) : (me(this.videoEl), this.optionTracks = []), this.rebuildCaptions(((b = (c = e.subtitles) == null ? void 0 : c.find((h) => h.default)) == null ? void 0 : b.label) ?? null);
2781
+ (u = e.subtitles) != null && u.length ? this.optionTracks = $e(this.videoEl, e.subtitles) : (be(this.videoEl), this.optionTracks = []), this.rebuildCaptions(((m = (d = e.subtitles) == null ? void 0 : d.find((h) => h.default)) == null ? void 0 : m.label) ?? null);
2739
2782
  }
2740
2783
  /** Altyazı menüsünü `options.subtitles` + yayın izlerinden kurar; `activeLabel` varsa onu seçer. */
2741
2784
  rebuildCaptions(e) {
@@ -2745,8 +2788,8 @@ class ye extends HTMLElement {
2745
2788
  }
2746
2789
  const i = (o) => {
2747
2790
  var l;
2748
- const n = $e(this.subtitleTracks, o);
2749
- this.activeCaptionLabel = n ? o : null, this.sourceManager.selectTextTrack(((l = this.streamTracks.find((d) => d.label === o)) == null ? void 0 : l.id) ?? null), this.captionRenderer.setActiveTrack(n), this.captionTrackActive = n !== null, this.controlBar.settingsMenu.setActiveCaption(n ? o : this.i18n.captionsOff), this.controlBar.settingsMenu.setCaptionAppearance(n !== null ? this.buildCaptionAppearance() : null);
2791
+ const a = Ke(this.subtitleTracks, o);
2792
+ this.activeCaptionLabel = a ? o : null, this.sourceManager.selectTextTrack(((l = this.streamTracks.find((p) => p.label === o)) == null ? void 0 : l.id) ?? null), this.captionRenderer.setActiveTrack(a), this.captionTrackActive = a !== null, this.controlBar.settingsMenu.setActiveCaption(a ? o : this.i18n.captionsOff), this.controlBar.settingsMenu.setCaptionAppearance(a !== null ? this.buildCaptionAppearance() : null);
2750
2793
  };
2751
2794
  this.selectCaption = i;
2752
2795
  const r = e && this.subtitleTracks.some((o) => o.label === e) ? e : null;
@@ -2778,11 +2821,11 @@ class ye extends HTMLElement {
2778
2821
  }
2779
2822
  /** 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). */
2780
2823
  buildCaptionAppearance() {
2781
- const e = ["small", "normal", "large"], i = (r, o, n, l) => r.map((d, u) => ({
2782
- value: d,
2783
- active: o() === d,
2824
+ const e = ["small", "normal", "large"], i = (r, o, a, l) => r.map((p, u) => ({
2825
+ value: p,
2826
+ active: o() === p,
2784
2827
  ariaLabel: `${l} ${u + 1}`,
2785
- onSelect: () => n(d)
2828
+ onSelect: () => a(p)
2786
2829
  }));
2787
2830
  return {
2788
2831
  sizeLabel: this.i18n.captionSize,
@@ -2793,14 +2836,14 @@ class ye extends HTMLElement {
2793
2836
  })),
2794
2837
  bgColorLabel: this.i18n.captionBgColor,
2795
2838
  getBgColorOptions: () => i(
2796
- M.BG_COLOR_PRESETS,
2839
+ B.BG_COLOR_PRESETS,
2797
2840
  () => this.captionRenderer.getBgColor(),
2798
2841
  (r) => this.captionRenderer.setBgColor(r),
2799
2842
  this.i18n.captionBgColor
2800
2843
  ),
2801
2844
  textColorLabel: this.i18n.captionTextColor,
2802
2845
  getTextColorOptions: () => i(
2803
- M.TEXT_COLOR_PRESETS,
2846
+ B.TEXT_COLOR_PRESETS,
2804
2847
  () => this.captionRenderer.getTextColor(),
2805
2848
  (r) => this.captionRenderer.setTextColor(r),
2806
2849
  this.i18n.captionTextColor
@@ -2812,8 +2855,123 @@ class ye extends HTMLElement {
2812
2855
  getOrCreatePanelContainer() {
2813
2856
  return this.panelContainer || (this.panelContainer = document.createElement("div"), this.root.appendChild(this.panelContainer)), this.panelContainer;
2814
2857
  }
2858
+ // ── Kalite kilidi (ödüllü reklam) ─────────────────────────────────────
2859
+ /** Kaynağın yüksekliği: `height` ya da etiketten ("1080p" → 1080); bilinmiyorsa null. */
2860
+ sourceHeight(e) {
2861
+ if (typeof e.height == "number" && e.height > 0) return e.height;
2862
+ const i = /(\d{3,4})\s*p\b/i.exec(e.label);
2863
+ return i ? Number(i[1]) : null;
2864
+ }
2865
+ isSourceLocked(e) {
2866
+ var i;
2867
+ return !!((i = this.qualityGate) != null && i.isLocked(this.sourceHeight(e)));
2868
+ }
2869
+ /** Başlangıç kaynağı: `selected` (ya da ilk); kilitliyse serbest kaynakların en yükseği. */
2870
+ pickInitialSource(e) {
2871
+ const i = e.find((o) => o.selected) ?? e[0];
2872
+ if (!i || !this.isSourceLocked(i)) return i;
2873
+ const r = e.filter((o) => !this.isSourceLocked(o));
2874
+ return r.length ? r.reduce((o, a) => (this.sourceHeight(a) ?? 0) > (this.sourceHeight(o) ?? 0) ? a : o) : i;
2875
+ }
2876
+ renderSourceQualities() {
2877
+ const e = this.currentSources;
2878
+ e.length <= 1 || this.controlBar.setQualities(
2879
+ e.map((i) => {
2880
+ const r = this.isSourceLocked(i);
2881
+ return {
2882
+ label: i.label,
2883
+ locked: r,
2884
+ onSelect: r ? () => {
2885
+ var o;
2886
+ return (o = this.qualityGate) == null ? void 0 : o.requestUnlock();
2887
+ } : () => void this.switchQualitySource(i)
2888
+ };
2889
+ }),
2890
+ this.activeSourceLabel || e[0].label
2891
+ );
2892
+ }
2893
+ /** Kilitli kalite var mı (ödüllü reklam butonu yalnızca o zaman görünür) ve en yükseğinin etiketi. */
2894
+ lockedQualityLabel() {
2895
+ if (!this.qualityGate) return null;
2896
+ const e = [];
2897
+ if (this.lastHlsLevels.length > 1)
2898
+ for (const i of this.lastHlsLevels) this.qualityGate.isLocked(i.height) && e.push(i.height);
2899
+ else
2900
+ for (const i of this.currentSources) {
2901
+ const r = this.sourceHeight(i);
2902
+ this.currentSources.length > 1 && this.qualityGate.isLocked(r) && e.push(r ?? 0);
2903
+ }
2904
+ return e.length ? `${Math.max(...e)}p` : null;
2905
+ }
2906
+ /** Kilit durumu değişti: menüleri yeniden kur, HLS üst sınırını güncelle; `upgrade` ise en iyi kaliteye geç. */
2907
+ refreshQualityGate(e) {
2908
+ var i;
2909
+ if (this.lastHlsLevels.length > 1)
2910
+ this.onHlsLevelsChanged(this.lastHlsLevels, e ? -1 : this.lastHlsActive), e && this.sourceManager.setLevel(-1);
2911
+ else if (this.currentSources.length > 1) {
2912
+ const r = e ? this.currentSources.filter((l) => !this.isSourceLocked(l)).reduce((l, p) => !l || (this.sourceHeight(p) ?? 0) > (this.sourceHeight(l) ?? 0) ? p : l, null) : null, o = this.currentSources.find((l) => l.label === this.activeSourceLabel), a = r ?? (o && this.isSourceLocked(o) ? this.pickInitialSource(this.currentSources) : null);
2913
+ a && a.label !== this.activeSourceLabel ? this.switchQualitySource(a) : this.renderSourceQualities();
2914
+ }
2915
+ (i = this.rewardedUnlock) == null || i.onQualitiesChanged();
2916
+ }
2917
+ async applyRewardedUnlock(e) {
2918
+ const i = e.rewardedUnlock;
2919
+ if (!i) {
2920
+ this.rewardedUnlock && (this.rewardedUnlock.destroy(), this.rewardedUnlock = null, this.qualityGate = null, this.refreshQualityGate(!1));
2921
+ return;
2922
+ }
2923
+ if (this.rewardedUnlock)
2924
+ this.rewardedUnlock.update(i);
2925
+ else {
2926
+ const { installRewardedUnlock: r } = await import("./index-TkG8IO6q.js");
2927
+ this.rewardedUnlock ?? (this.rewardedUnlock = r(
2928
+ {
2929
+ hostEl: this,
2930
+ videoEl: this.videoEl,
2931
+ overlayEl: this.videoArea,
2932
+ chromeEl: this.chromeEl,
2933
+ i18n: this.i18n,
2934
+ log: (o) => this.log.add({ source: "ads", ...o }),
2935
+ play: () => void this.play().catch(() => {
2936
+ }),
2937
+ exitFullscreen: () => {
2938
+ this.isFullscreenActive() && this.exitFullscreenCompat();
2939
+ },
2940
+ lockedQualityLabel: () => this.lockedQualityLabel(),
2941
+ // Kalite dosyası değil içerik: aynı videonun 240p ↔ 720p geçişi kilidi kapatmasın.
2942
+ contentKey: () => this.currentSources.map((o) => o.src).join("|"),
2943
+ onLockChange: (o) => this.refreshQualityGate(o)
2944
+ },
2945
+ i
2946
+ )), this.qualityGate = this.rewardedUnlock;
2947
+ }
2948
+ }
2949
+ async applySponsorship(e) {
2950
+ var r;
2951
+ const i = e.sponsorship;
2952
+ if (!(i != null && i.endpoint)) {
2953
+ (r = this.sponsorship) == null || r.destroy(), this.sponsorship = null;
2954
+ return;
2955
+ }
2956
+ if (this.sponsorship)
2957
+ this.sponsorship.update(i);
2958
+ else {
2959
+ const { installSponsorship: o } = await import("./index-D5P-LWbg.js");
2960
+ this.sponsorship ?? (this.sponsorship = o(
2961
+ {
2962
+ hostEl: this,
2963
+ videoEl: this.videoEl,
2964
+ overlayEl: this.videoArea,
2965
+ i18n: this.i18n,
2966
+ log: (a) => this.log.add({ source: "player", ...a })
2967
+ },
2968
+ i
2969
+ ));
2970
+ }
2971
+ }
2815
2972
  /** Kalite değişirken oynatma konumunu ve play/pause durumunu korur. */
2816
2973
  async switchQualitySource(e) {
2974
+ this.activeSourceLabel = e.label, this.renderSourceQualities();
2817
2975
  const i = this.videoEl.currentTime, r = !this.videoEl.paused;
2818
2976
  await this.sourceManager.load(e.src, e.type), this.videoEl.currentTime = i, r && this.videoEl.play().catch(() => {
2819
2977
  }), this.dispatchEvent(new CustomEvent("hp:qualitychange", { detail: { label: e.label } }));
@@ -2876,16 +3034,16 @@ class ye extends HTMLElement {
2876
3034
  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");
2877
3035
  };
2878
3036
  if (!i.height || !r.height || !e.hasAttribute("data-compact")) return o();
2879
- const n = 64, l = r.top - i.top - 8;
2880
- if (i.height / 2 + n / 2 <= l) return o();
2881
- const d = Math.max(40, Math.min(56, l - 12)), u = Math.max(d / 2 + 6, l - d / 2), c = Math.round(u - i.height / 2);
2882
- let b = 0;
3037
+ const a = 64, l = r.top - i.top - 8;
3038
+ if (i.height / 2 + a / 2 <= l) return o();
3039
+ const p = Math.max(40, Math.min(56, l - 12)), u = Math.max(p / 2 + 6, l - p / 2), d = Math.round(u - i.height / 2);
3040
+ let m = 0;
2883
3041
  const h = this.controlBar.topEl.getBoundingClientRect();
2884
- if (h.width > 0 && u - d / 2 < h.bottom - i.top) {
2885
- const p = h.left - i.left - 8 - d / 2;
2886
- i.width / 2 > p && (b = Math.round(Math.max(d / 2 + 8, p) - i.width / 2));
3042
+ if (h.width > 0 && u - p / 2 < h.bottom - i.top) {
3043
+ const c = h.left - i.left - 8 - p / 2;
3044
+ i.width / 2 > c && (m = Math.round(Math.max(p / 2 + 8, c) - i.width / 2));
2887
3045
  }
2888
- e.setAttribute("data-center-play-shifted", ""), e.style.setProperty("--hp-center-play-shift-x", `${b}px`), e.style.setProperty("--hp-center-play-size", `${d}px`), e.style.setProperty("--hp-center-play-shift", `${c}px`);
3046
+ e.setAttribute("data-center-play-shifted", ""), e.style.setProperty("--hp-center-play-shift-x", `${m}px`), e.style.setProperty("--hp-center-play-size", `${p}px`), e.style.setProperty("--hp-center-play-shift", `${d}px`);
2889
3047
  }
2890
3048
  /** Dar player'da dokunmatikte oynat/duraklat yerine kontrolleri göster/gizle (options.tapToPlay). */
2891
3049
  tapTogglesPlay(e) {
@@ -2966,7 +3124,7 @@ class ye extends HTMLElement {
2966
3124
  play: () => void this.play().catch(() => {
2967
3125
  }),
2968
3126
  i18n: this.i18n,
2969
- setBarMeta: (n) => this.controlBar.setAudioBar(n)
3127
+ setBarMeta: (a) => this.controlBar.setAudioBar(a)
2970
3128
  },
2971
3129
  i
2972
3130
  ));
@@ -2996,8 +3154,8 @@ class ye extends HTMLElement {
2996
3154
  onAdProgress: (o) => this.controlBar.setAdInfo(o),
2997
3155
  // Sürekli oynatma (vconp): playlist / story bir sonraki içeriği kendiliğinden başlatıyorsa.
2998
3156
  isContinuousPlayback: () => {
2999
- const o = this._options, n = (l) => !!l && l.autoplayNext !== !1;
3000
- return n(o.playlist) || n(o.story);
3157
+ const o = this._options, a = (l) => !!l && l.autoplayNext !== !1;
3158
+ return a(o.playlist) || a(o.story);
3001
3159
  },
3002
3160
  audioPoster: (() => {
3003
3161
  if (!e.audio) return;
@@ -3035,12 +3193,13 @@ class ye extends HTMLElement {
3035
3193
  }
3036
3194
  }
3037
3195
  /** Paket sürümü (ör. "1.0.4"). */
3038
- s(ye, "version", z);
3039
- typeof window < "u" && !customElements.get("hope-player") && customElements.define("hope-player", ye);
3196
+ s(ke, "version", N);
3197
+ typeof window < "u" && !customElements.get("hope-player") && customElements.define("hope-player", ke);
3040
3198
  export {
3041
- z as H,
3042
- ye as a,
3199
+ N as H,
3200
+ Re as L,
3201
+ ke as a,
3043
3202
  E as c,
3044
3203
  w as f
3045
3204
  };
3046
- //# sourceMappingURL=index-Dz0E1YPE.js.map
3205
+ //# sourceMappingURL=index-w7pACyTw.js.map