@serifpersia/dango 3.9.1 → 3.9.3

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 (66) hide show
  1. package/README.md +1 -1
  2. package/client/dist/assets/{AnimeCard-CocG9qrm.js → AnimeCard-BOrGtplc.js} +1 -1
  3. package/client/dist/assets/{AnimeInfo-C-ZFMCrd.js → AnimeInfo-C-PPfut4.js} +1 -1
  4. package/client/dist/assets/{AnimeInfoPage-DwL9Ax5L.js → AnimeInfoPage-BFY38gcp.js} +2 -2
  5. package/client/dist/assets/{Asmr-D1HNwHq-.js → Asmr-CRt4Q_2a.js} +1 -1
  6. package/client/dist/assets/{AsmrPopup-l0czpXly.js → AsmrPopup-Bg0CeGCm.js} +1 -1
  7. package/client/dist/assets/{AsmrResetProgressModal-DYEslZfI.js → AsmrResetProgressModal-ij785NHe.js} +1 -1
  8. package/client/dist/assets/{Home-Ck5Pv2w-.js → Home-BFjoIVUt.js} +1 -1
  9. package/client/dist/assets/{Home-ujV6ObHi.css → Home-D_Hd4SUo.css} +1 -1
  10. package/client/dist/assets/{Insights-BNgHB1hx.js → Insights-Cd3fz8RQ.js} +1 -1
  11. package/client/dist/assets/{LibraryListPage-D27ISh6l.js → LibraryListPage-BbSb5u6S.js} +1 -1
  12. package/client/dist/assets/{ListeningList-vXQfEFYE.js → ListeningList-CncJ_BUB.js} +1 -1
  13. package/client/dist/assets/{Manga-CeXla1mv.js → Manga-BBi76zXr.js} +1 -1
  14. package/client/dist/assets/{MangaInfoPage-B8IZSB-e.js → MangaInfoPage-DgDDd23Z.js} +1 -1
  15. package/client/dist/assets/{MangaReadPage-GpMss0tS.js → MangaReadPage-DUxP_V9q.js} +1 -1
  16. package/client/dist/assets/{MangaResetProgressModal-CSR-roX2.js → MangaResetProgressModal-CdLYwWHZ.js} +1 -1
  17. package/client/dist/assets/{Mature-D64IntyP.js → Mature-BACq3Kc4.js} +1 -1
  18. package/client/dist/assets/{MatureConsentModal-BHtqyO00.js → MatureConsentModal-yectlds9.js} +1 -1
  19. package/client/dist/assets/{MediaCard-9IiRZpbk.js → MediaCard-CpvY5GuT.js} +1 -1
  20. package/client/dist/assets/{OptionListMenu-D4J4Q9gM.js → OptionListMenu-BzRHsU6c.js} +1 -1
  21. package/client/dist/assets/Player-c3ZtthSI.js +56 -0
  22. package/client/dist/assets/{PlayerProvider-BmMsmdYb.js → PlayerProvider-Bll6epmz.js} +1 -1
  23. package/client/dist/assets/{PlayerSettings-BpQo55X9.js → PlayerSettings-CjE5s-vS.js} +1 -1
  24. package/client/dist/assets/{QueueOptionsButton-C__t6z-U.js → QueueOptionsButton-5UHmZLgC.js} +1 -1
  25. package/client/dist/assets/{QueueRail-ByZnqlUT.js → QueueRail-o5cgpFg4.js} +1 -1
  26. package/client/dist/assets/{ReadingList-DgvW6qH1.js → ReadingList-Q1-e3_GW.js} +1 -1
  27. package/client/dist/assets/{ResetProgressModal-DgzXKZJG.js → ResetProgressModal-TMqEVVii.js} +1 -1
  28. package/client/dist/assets/Search-ByFLr1Ki.js +1 -0
  29. package/client/dist/assets/{Settings-DtwXOUlW.js → Settings-O0h8SHQu.js} +1 -1
  30. package/client/dist/assets/{SkeletonGrid-aY7UYKGV.js → SkeletonGrid-DXPv28BD.js} +1 -1
  31. package/client/dist/assets/{Trackers-B2tFpPHi.js → Trackers-DOnb92AU.js} +1 -1
  32. package/client/dist/assets/Tv-C-bNPNTQ.css +1 -0
  33. package/client/dist/assets/Tv-CZleItJh.js +4 -0
  34. package/client/dist/assets/{TvInfo-DzdeVN1Y.js → TvInfo-DHSDQz21.js} +1 -1
  35. package/client/dist/assets/{TvPopup-BbrEhCCy.js → TvPopup-BCUEPv0r.js} +1 -1
  36. package/client/dist/assets/{TvSearch-CLj4jth8.js → TvSearch-D_6kW_NT.js} +1 -1
  37. package/client/dist/assets/{TvWatchlist-sq1VTglT.js → TvWatchlist-CyOlz9IC.js} +1 -1
  38. package/client/dist/assets/{VirtualKeyboard-CdG90MB4.js → VirtualKeyboard-DhtUWsN_.js} +1 -1
  39. package/client/dist/assets/{WatchAlong-CeIMQosP.js → WatchAlong-BE5l6tqm.js} +1 -1
  40. package/client/dist/assets/{WatchAlongPanel-75S2BYQN.js → WatchAlongPanel-Brkp7UMD.js} +1 -1
  41. package/client/dist/assets/{Watchlist-BC20a1Yr.js → Watchlist-JaLhOL0z.js} +1 -1
  42. package/client/dist/assets/index-CD7a-Eff.js +178 -0
  43. package/client/dist/assets/index-TGvIXMUj.css +1 -0
  44. package/client/dist/assets/{libraryInvalidation-ZMju1rNj.js → libraryInvalidation-nAOuYLiR.js} +1 -1
  45. package/client/dist/assets/playbackCompletion-BXBBtgdB.js +1 -0
  46. package/client/dist/assets/{useAnimeInfoData-Ba3HNec1.js → useAnimeInfoData-rUxvbr-T.js} +1 -1
  47. package/client/dist/assets/{useMangaLibrary-D_qIjbhI.js → useMangaLibrary-BEkb8jwc.js} +1 -1
  48. package/client/dist/assets/{useMangaPopup-BpPyLnyj.js → useMangaPopup-DR3qXoYv.js} +1 -1
  49. package/client/dist/assets/{useProviders-Cy_Qpq6t.js → useProviders-Cc8CTUYM.js} +1 -1
  50. package/client/dist/assets/{useTv-BDTl6Tsj.js → useTv-de0-A2mW.js} +1 -1
  51. package/client/dist/assets/{useTvLibrary-BcAQarFR.js → useTvLibrary-BsGpheKM.js} +1 -1
  52. package/client/dist/assets/useWatchAlongPlayer-BZs3033g.js +10 -0
  53. package/client/dist/assets/useWatchAlongPlayer-Dk7zB7P4.css +1 -0
  54. package/client/dist/index.html +2 -2
  55. package/package.json +2 -2
  56. package/server/dist/server.js +1 -1
  57. package/server/package.json +1 -1
  58. package/client/dist/assets/Player-BsXkumtD.js +0 -56
  59. package/client/dist/assets/Search-DaH6qV3W.js +0 -1
  60. package/client/dist/assets/Tv-Bbot3Klz.css +0 -1
  61. package/client/dist/assets/Tv-VxFnu6cA.js +0 -4
  62. package/client/dist/assets/index-Bi3wnovR.css +0 -1
  63. package/client/dist/assets/index-DAZg1_S9.js +0 -178
  64. package/client/dist/assets/playbackCompletion-Del9VqoH.js +0 -1
  65. package/client/dist/assets/useWatchAlongPlayer-CPj919ZS.js +0 -10
  66. package/client/dist/assets/useWatchAlongPlayer-DwQJwhql.css +0 -1
@@ -1,4 +0,0 @@
1
- import{u as t,d as g,A as U,h as v,S as Ue,g as Ss,q as _,o as _s,p as Ts,a as Cs,T as Te}from"./vendor-core-DfaOB3Rn.js";import{h as Yt,p as $,t as Tt,ac as ks,a6 as Es,S as Xn,e as Ns,ak as ws,J as xr,B as ce,a8 as Is}from"./index-DAZg1_S9.js";import{P as Ps,a as xs,b as As,F as Ls,f as Bs,c as Rs}from"./PlayerProvider-BmMsmdYb.js";import{u as Ms}from"./vendor-query-BBT5_sHx.js";import{I as oe}from"./vendor-icons-DrybRNxP.js";import{p as tr,M as $s,z as Mr,f as nr,c as Ds,C as Os,a as zs,P as Fs,b as gn,u as Vs,i as Us,j as Ws,n as Hs,h as qs,k as Ks,m as Ys,l as Qs,s as Jn,d as js,e as Gs,g as Xs,r as Js,o as Le,A as Zs,t as ea,E as ta,w as na,x as ra,v as Z,y as sa,R as aa,q as Ar}from"./useWatchAlongPlayer-CPj919ZS.js";import{S as oa,O as Zn,a as ia,A as la,b as ca}from"./OptionListMenu-D4J4Q9gM.js";import{M as da}from"./MatureConsentModal-BHtqyO00.js";import{u as ua}from"./useProviders-Cy_Qpq6t.js";import{e as ma,b as ha,f as ba,g as fa,d as pa,c as va,h as ga,i as ya}from"./useTvLibrary-BcAQarFR.js";import{i as Kt,l as Sa,a as _a,b as Ta,h as Lr}from"./playbackCompletion-Del9VqoH.js";import{u as Ca}from"./useIsMobile-Dvx1uJ82.js";import{S as ka}from"./SynopsisText-B3Sa5pRv.js";import{W as Ea}from"./WatchAlongPanel-75S2BYQN.js";import"./libraryInvalidation-ZMju1rNj.js";const Na="_fullscreenFlat_10bzs_1",wa="_timeDisplay_10bzs_12",Ia="_bottomControls_10bzs_16",Pa="_leftControls_10bzs_20",xa="_rightControls_10bzs_21",Aa="_controlBtn_10bzs_25",La="_controlsOverlay_10bzs_32",Ba="_hidden_10bzs_52",Ra="_topControls_10bzs_58",Ma="_backBtn_10bzs_78",$a="_videoTitleInfo_10bzs_98",Da="_animeTitle_10bzs_104",Oa="_episodeLabel_10bzs_112",za="_speedBoostBadge_10bzs_119",Fa="_progressBarContainer_10bzs_165",Va="_progressBar_10bzs_165",Ua="_thumb_10bzs_184",Wa="_bufferedBar_10bzs_202",Ha="_watchedBar_10bzs_212",qa="_scrubbing_10bzs_237",Ka="_timeBubble_10bzs_241",Ya="_bottomControlsRow_10bzs_255",Qa="_nextEpisodeBtn_10bzs_278",ja="_active_10bzs_340",Ga="_settingsPanel_10bzs_352",Xa="_settingsHeader_10bzs_371",Ja="_settingsBackBtn_10bzs_379",Za="_settingsTitle_10bzs_397",eo="_settingsContent_10bzs_408",to="_currentValue_10bzs_417",no="_menuItem_10bzs_423",ro="_menuNote_10bzs_456",so="_loadingOverlay_10bzs_465",ao="_loadingDots_10bzs_476",oo="_dot_10bzs_481",io="_bufferingOverlay_10bzs_510",lo="_bufferingSpinner_10bzs_519",a={fullscreenFlat:Na,timeDisplay:wa,bottomControls:Ia,leftControls:Pa,rightControls:xa,controlBtn:Aa,controlsOverlay:La,hidden:Ba,topControls:Ra,backBtn:Ma,videoTitleInfo:$a,animeTitle:Da,episodeLabel:Oa,speedBoostBadge:za,progressBarContainer:Fa,progressBar:Va,thumb:Ua,bufferedBar:Wa,watchedBar:Ha,scrubbing:qa,timeBubble:Ka,bottomControlsRow:Ya,nextEpisodeBtn:Qa,active:ja,settingsPanel:Ga,settingsHeader:Xa,settingsBackBtn:Ja,settingsTitle:Za,settingsContent:eo,currentValue:to,menuItem:no,menuNote:ro,loadingOverlay:so,loadingDots:ao,dot:oo,bufferingOverlay:io,bufferingSpinner:lo},co=({player:s,visible:b,settingsOpen:z,onOpenSettings:x,onCloseSettings:M,hasSubtitles:k,isSubtitleActive:w,subtitles:d,onSubtitleChange:c,showNextEpisodeButton:T,onNextEpisode:r,isTheaterMode:A,onTheaterModeToggle:ve,timeLabelRef:ee})=>{const{state:u,actions:Ne}=s,Be=()=>{if(w){c(-1);return}let ge=null;try{ge=$.getItem("tvLastSubtitle")}catch{}c(tr(d,{lastKey:ge,enabled:!0}))};return t("div",{className:`${a.controlsOverlay} ${b?"":a.hidden}`,"data-speed-boost-ignore":"true",style:{pointerEvents:"none",background:"none",justifyContent:"flex-end"},children:t("div",{className:a.bottomControls,onClick:ge=>ge.stopPropagation(),children:[t(Ps,{classes:{container:a.progressBarContainer,scrubbing:a.scrubbing,timeBubble:a.timeBubble,bar:a.progressBar,buffered:a.bufferedBar,watched:a.watchedBar,thumb:a.thumb},timeLabelRef:ee}),t("div",{className:a.bottomControlsRow,children:[t("div",{className:a.leftControls,children:[t(xs,{className:a.controlBtn}),t(As,{buttonClassName:a.controlBtn,onExpandedChange:Ne.setShowVolumeSlider}),t("span",{className:a.timeDisplay,ref:ee,children:[Yt(0)," / ",Yt(u.duration)]})]}),t("div",{className:a.rightControls,children:[T&&t("button",{className:a.nextEpisodeBtn,onClick:r,title:"Play next episode",children:"Next EP"}),k&&t("button",{className:`${a.controlBtn} ${w?a.active:""}`,onClick:Be,"aria-label":w?"Turn subtitles off":"Turn subtitles on",children:t(oe,{name:"closed-captioning"})}),t("button",{className:`${a.controlBtn} ${z?a.active:""}`,onClick:()=>z?M():x(),"aria-label":"Settings",children:t(oe,{name:"cog"})}),t("button",{className:`${a.controlBtn} ${A?a.active:""}`,onClick:ge=>{ge.stopPropagation(),ve()},title:A?"Exit Theater Mode":"Theater Mode","aria-label":A?"Exit Theater Mode":"Theater Mode",children:t(oe,{name:"tv"})}),t(Ls,{className:a.controlBtn})]})]})]})})},yn=-6e4,er=6e4,Br=500,uo=({classes:s,delayMs:b,onDelayChange:z})=>{const[x,M]=g(null),k=x??b,w=U(z);w.current=z;const d=U(b);d.current=b;const c=U(null);c.current=x,v(()=>{M(null)},[b]),v(()=>()=>{const A=c.current;A!==null&&A!==d.current&&w.current(A)},[]);const T=A=>{d.current=A,c.current=null,w.current(A),M(null)},r=A=>{const ve=c.current??d.current,ee=Math.max(yn,Math.min(er,ve+A));T(ee)};return t(Ue,{children:[t("div",{style:{display:"flex",gap:6,padding:"0.5rem 0.75rem 0.25rem"},children:[t("button",{type:"button",className:s.item,onClick:()=>r(-Br),"aria-label":"Show subtitles 0.5 seconds earlier",style:{flex:1,justifyContent:"center"},children:t("span",{children:"-0.5s"})}),t("button",{type:"button",className:s.item,onClick:()=>r(Br),"aria-label":"Show subtitles 0.5 seconds later",style:{flex:1,justifyContent:"center"},children:t("span",{children:"+0.5s"})}),t("button",{type:"button",className:s.item,onClick:()=>T(0),disabled:k===0,"aria-label":"Reset subtitle timing",style:{flex:1,justifyContent:"center"},children:t("span",{children:"Reset"})})]}),t($s,{label:"Subtitle timing",display:Mr(k),min:yn,max:er,step:100,value:k,percent:(k-yn)/(er-yn)*100,onChange:A=>{const ve=Math.round(A);c.current=ve,M(ve)},onCommit:()=>{const A=c.current;A!==null&&T(A)}}),t("div",{className:s.note,children:"Positive delays subtitles (show later). Negative shows them earlier. 0.0s is default."})]})},mo=({view:s,onSelectView:b,onClose:z,player:x,onSubtitleStyleChange:M,streams:k,resolutionIdx:w,onResolutionChange:d,hasSubtitles:c,subtitles:T,selectedSubtitle:r,isSubtitleActive:A,onSubtitleChange:ve,audioTracks:ee,selectedAudioTrack:u,onAudioTrackChange:Ne,videoDelayEnabled:Be,onVideoDelayToggle:ge,videoDelayMs:ye,onVideoDelayChange:S,onCalibrate:Ct,subtitleDelayMs:tt,onSubtitleDelayChange:E,ambientSettings:W,onAmbientChange:Y})=>{const{state:de}=x,kt=()=>t(Ue,{children:[k.length>1&&t("button",{className:a.menuItem,onClick:()=>b("resolution"),children:[t("span",{children:"Resolution"}),t("span",{className:a.currentValue,children:k[w]?.quality||"Auto"})]}),c&&t("button",{className:a.menuItem,onClick:()=>b("subtitles"),children:[t("span",{children:"Subtitles"}),t("span",{className:a.currentValue,children:A?T[r]?.label||T[r]?.language:"Off"})]}),c&&t("button",{className:a.menuItem,onClick:()=>b("subtitle-style"),children:[t("span",{children:"Subtitle Style"}),t("span",{className:a.currentValue,children:[de.subtitleFontSize.toFixed(1),"x · ",de.subtitlePosition]})]}),c&&t("button",{className:a.menuItem,onClick:()=>b("subtitle-timing"),children:[t("span",{children:"Subtitle Timing"}),t("span",{className:a.currentValue,children:Mr(tt)})]}),ee.length>0&&t("button",{className:a.menuItem,onClick:()=>b("audio"),children:[t("span",{children:"Audio Track"}),t("span",{className:a.currentValue,children:ee[u]?.label||ee[u]?.language})]}),t("button",{className:a.menuItem,onClick:()=>b("av-sync"),children:[t("span",{children:"A/V Sync"}),t("span",{className:a.currentValue,children:Be?`${ye}ms`:"Off"})]}),W&&Y&&t("button",{className:a.menuItem,onClick:()=>b("ambient"),children:[t("span",{children:"Ambient Light"}),t("span",{className:a.currentValue,children:W.enabled?"On":"Off"})]})]}),Re=()=>t(Zn,{classes:{item:a.menuItem,active:a.active},options:k.map((I,ne)=>({key:String(ne),label:I.quality,selected:ne===w})),onSelect:I=>d(Number(I))}),nt=()=>t(Zn,{classes:{item:a.menuItem,active:a.active},options:[{key:"off",label:"Off",selected:!A},...T.map((I,ne)=>({key:String(ne),label:I.label||I.language,selected:ne===r}))],onSelect:I=>ve(I==="off"?-1:Number(I))}),ut=()=>t(ia,{classes:{item:a.menuItem,active:a.active},values:{fontSize:de.subtitleFontSize,position:de.subtitlePosition,bgOpacity:de.subtitleBgOpacity,bgColor:de.subtitleBgColor,textColor:de.subtitleTextColor,edge:de.subtitleEdge,bold:de.subtitleBold},onChange:M}),ie=()=>t(uo,{classes:{item:a.menuItem,active:a.active,note:a.menuNote},delayMs:tt,onDelayChange:I=>E?.(I)}),Et=()=>t(Zn,{classes:{item:a.menuItem,active:a.active},options:ee.map((I,ne)=>({key:String(ne),label:I.label||I.language,selected:ne===u})),onSelect:I=>Ne(Number(I))}),rt=()=>t(la,{classes:{item:a.menuItem,active:a.active,note:a.menuNote},enabled:Be,delayMs:ye,onToggle:I=>ge?.(I),onDelayChange:I=>S?.(I),onCalibrate:Ct}),Q=()=>W&&Y?t(ca,{classes:{item:a.menuItem,active:a.active,note:a.menuNote},values:W,onChange:Y}):null;return t("div",{"data-speed-boost-ignore":"true",onClick:I=>I.stopPropagation(),children:t(oa,{classes:{panel:a.settingsPanel,header:a.settingsHeader,backBtn:a.settingsBackBtn,title:a.settingsTitle,content:a.settingsContent},title:s==="main"?"Settings":s==="subtitle-style"?"Subtitle Style":s==="subtitle-timing"?"Subtitle Timing":s==="audio"?"Audio Track":s==="resolution"?"Resolution":s==="av-sync"?"A/V Sync":s==="ambient"?"Ambient Light":s.charAt(0).toUpperCase()+s.slice(1),onBack:()=>s==="main"?z():b("main"),children:[s==="main"&&kt(),s==="resolution"&&Re(),s==="subtitles"&&nt(),s==="subtitle-style"&&ut(),s==="subtitle-timing"&&ie(),s==="audio"&&Et(),s==="av-sync"&&rt(),s==="ambient"&&Q()]})})},ho=({player:s,title:b,episodeLabel:z,server:x,audioTracks:M,selectedAudioTrack:k,onAudioTrackChange:w,subtitles:d,selectedSubtitle:c,onSubtitleChange:T,streams:r,resolutionIdx:A,onResolutionChange:ve,onBack:ee,children:u,videoDelayEnabled:Ne=!1,onVideoDelayToggle:Be,videoDelayMs:ge=0,onVideoDelayChange:ye,onCalibrateAvSync:S,subtitleDelayMs:Ct=0,onSubtitleDelayChange:tt,showNextEpisodeButton:E=!1,onNextEpisode:W,isLoading:Y=!1,isTheaterMode:de,onTheaterModeToggle:kt,ambientSettings:Re,onAmbientChange:nt,hideChrome:ut=!1})=>{const{state:ie,refs:Et,actions:rt}=s,Q=Et.videoRef,{subtitleFontSize:I,subtitlePosition:ne,subtitleBgOpacity:ue,subtitleBgColor:Me,subtitleTextColor:$e,subtitleEdge:re,subtitleBold:Nt}=ie,[We,Ce]=g(null),wt=U(null),[ke,It]=g(0);v(()=>{const he=Q.current;if(!he)return;const te=()=>It(he.clientHeight||0);te();const at=new ResizeObserver(te);return at.observe(he),()=>at.disconnect()},[Q]);const me=rt.setSubtitleStyle;v(()=>{const he="tv-player-subtitle-style";let te=document.getElementById(he);te||(te=document.createElement("style"),te.id=he,document.head.appendChild(te));const at={fontSize:I,position:ne,bgOpacity:ue,bgColor:Me,textColor:$e,edge:re,bold:Nt},se=Q.current,bt=nr(I,ke||se?.clientHeight||720);if(te.textContent=Ds({...at,fontSize:bt}),se){const At=()=>{const i=Number(ne);return isNaN(i)?0:Math.max(0,Math.min(100,i))},ot=(i,l)=>{try{const F=i;F.snapToLines=!1,F.line=l}catch{}},Se=()=>{const i=bt*16,l=se.videoHeight||se.clientHeight||720,F=se.videoWidth||se.clientWidth||1280;return{step:i*1.3/l*100,chars:Math.max(20,Math.floor(F/(i*.55)))}},Gt=i=>{const l=Math.max(0,Math.min(100,100-At())),F=Array.from(i.activeCues??[]);if(F.length<=1){F.forEach(Oe=>ot(Oe,l));return}const{step:le,chars:Xt}=Se();let Rt=l;for(let Oe=F.length-1;Oe>=0;Oe--){const Sn=String(F[Oe].text??"").replace(/<[^>]*>/g,"").split(`
2
- `).reduce((_n,be)=>_n+Math.max(1,Math.ceil(be.length/Xt)),0),Mt=Rt-Sn*le;ot(F[Oe],Math.max(0,Mt)),Rt=Mt-le*.4}},Ie=()=>{const i=Math.max(0,Math.min(100,100-At()));Array.from(se.textTracks).forEach(l=>{l.cues&&(Array.from(l.cues).forEach(F=>ot(F,i)),l.mode==="showing"&&Gt(l))})};Ie();const it=i=>{const l=i.target;l.mode==="showing"&&Gt(l)},Lt=()=>{Array.from(se.textTracks).forEach(i=>{i.removeEventListener("cuechange",it),i.addEventListener("cuechange",it)}),Ie()};Array.from(se.textTracks).forEach(i=>{i.addEventListener("cuechange",it)}),se.textTracks.addEventListener("addtrack",Lt);const Bt=Array.from(se.querySelectorAll("track")),ft=()=>Ie();return Bt.forEach(i=>i.addEventListener("load",ft)),()=>{Array.from(se.textTracks).forEach(i=>{i.removeEventListener("cuechange",it)}),se.textTracks.removeEventListener("addtrack",Lt),Bt.forEach(i=>i.removeEventListener("load",ft))}}},[I,ne,ue,Me,$e,re,Nt,c,d,Q,ke]);const De=d.length>0,we=c>=0,mt=()=>{Ce("main"),rt.setShowControls(!0)},He=()=>{Ce(null)},Qt=ie.showControls||!!We,st=Bs(s.engine),qe=st.audioTracks.find(he=>he.id===st.activeAudioTrack)??M[k],jt=c>=0?d[c]??st.subtitleTracks.find(he=>he.id===c):void 0,Pt=t(Os,{visible:Qt,title:b,episode:z,server:Y?void 0:x,audio:Y?void 0:qe?.label||qe?.language,subtitles:Y?void 0:jt?.label||jt?.language,onBack:ee,classes:{overlay:a.controlsOverlay,hidden:a.hidden,top:a.topControls,backBtn:a.backBtn,titleInfo:a.videoTitleInfo,title:a.animeTitle,episode:a.episodeLabel}}),K=!Y&&!ie.isBuffering&&ie.duration>0?t(zs,{}):null,ht=t(co,{player:s,visible:Qt,settingsOpen:!!We,onOpenSettings:mt,onCloseSettings:He,hasSubtitles:De,isSubtitleActive:we,subtitles:d,onSubtitleChange:T,showNextEpisodeButton:E,onNextEpisode:W,isTheaterMode:de,onTheaterModeToggle:kt,timeLabelRef:wt}),P=We?t(mo,{view:We,onSelectView:Ce,onClose:He,player:s,onSubtitleStyleChange:me,streams:r,resolutionIdx:A,onResolutionChange:ve,hasSubtitles:De,subtitles:d,selectedSubtitle:c,isSubtitleActive:we,onSubtitleChange:T,audioTracks:M,selectedAudioTrack:k,onAudioTrackChange:w,videoDelayEnabled:Ne,onVideoDelayToggle:Be,videoDelayMs:ge,onVideoDelayChange:ye,onCalibrate:()=>{Ce(null),S?.()},subtitleDelayMs:Ct,onSubtitleDelayChange:tt,ambientSettings:Re,onAmbientChange:nt}):null,xt=t(Ue,{children:[Y&&t("div",{className:a.loadingOverlay,"aria-hidden":"true",children:t("div",{className:a.loadingDots,children:[t("div",{className:a.dot}),t("div",{className:a.dot}),t("div",{className:a.dot})]})}),ie.isBuffering&&!Y&&t("div",{className:a.bufferingOverlay,"aria-hidden":"true",children:t("div",{className:a.bufferingSpinner})}),ie.isSpeedBoostActive&&t("div",{className:a.speedBoostBadge,"aria-hidden":"true",children:[t("span",{children:"2x"}),t(oe,{name:"forward",size:12})]})]});return t(Fs,{engine:s.engine,topBar:Pt,centerControls:K,bottomBar:!Y&&ie.duration>0?ht:null,settingsPanel:P,overlays:xt,isInteracting:!!We||ie.showVolumeSlider,nativeControls:ie.useNativeControls,onStageClick:He,className:ie.isFullscreen?a.fullscreenFlat:"",chromeDisabled:ut,children:u})},bo=({servers:s,selectedServer:b,onServerSelect:z})=>s.length===0?null:t("div",{className:gn.sourceSelectionContainer,children:[t("h4",{children:"Source"}),t("div",{className:gn.sourceButtons,children:s.map(x=>t("button",{className:`${gn.sourceButton} ${b===x?gn.active:""}`,onClick:()=>z(x),children:x},x))})]}),fo=Ss.memo(bo);function po({details:s,isMovie:b,season:z,episode:x,videoRef:M,active:k}){const w=U("");w.current||(w.current=`tv-${Date.now()}-${Math.random().toString(36).slice(2)}`);const d=_(()=>{if(!s)return;const c=M.current,T=b?"":`S${String(z).padStart(2,"0")}E${String(x).padStart(2,"0")}`;Tt.discord.tvPresence.mutate({title:s.title,episodeLabel:T,isPlaying:c?!c.paused&&!c.ended:!0,thumbnail:s.poster,currentTime:c?c.currentTime:0,duration:c&&c.duration||0,isAdult:s.adult===!0,sessionId:w.current}).catch(()=>{}),Tt.discord.heartbeat.mutate({sessionId:w.current}).catch(()=>{})},[s,b,z,x,M]);return v(()=>{if(!s)return;d();const c=window.setInterval(()=>{const T=M.current;(!T||!T.paused)&&d()},15e3);return()=>window.clearInterval(c)},[d,s,M]),v(()=>{if(!s||!k)return;const c=M.current;if(!c)return;const T=()=>d();return c.addEventListener("play",T),c.addEventListener("pause",T),c.addEventListener("seeked",T),()=>{c.removeEventListener("play",T),c.removeEventListener("pause",T),c.removeEventListener("seeked",T)}},[s,k,d,M]),v(()=>{const c=w.current,T=()=>ks(c),r=()=>T();return window.addEventListener("pagehide",r),window.addEventListener("beforeunload",r),()=>{window.removeEventListener("pagehide",r),window.removeEventListener("beforeunload",r),T()}},[]),{sendPresence:d}}function vo(s,b,z){const x=()=>{const k=Array.isArray(s.audioTracks)?s.audioTracks.length:0,w=z.getWant(),d=k>0?Math.min(Math.max(0,w),k-1):w;s.audioTrack=d,d!==w&&z.onResolve(d)},M=(k,w)=>{const d=z.getWant(),c=Array.isArray(s.audioTracks)?s.audioTracks.length:0;if(w.id!==d&&d>=0&&d<c){s.audioTrack!==d&&(s.audioTrack=d);return}z.onResolve(w.id)};return s.on(b.MANIFEST_PARSED,x),s.on(b.AUDIO_TRACK_SWITCHED,M),()=>{s.off(b.MANIFEST_PARSED,x),s.off(b.AUDIO_TRACK_SWITCHED,M)}}const go=/\b(SmartTV|SMART-TV|Tizen|Web0S|webOS|NetCast|HbbTV|AppleTV|CrKey|BRAVIA|AFT[A-Za-z]|Fire\s?TV|GoogleTV|Roku|VIDAA|DTV|PlayStation|Xbox|Opera TV|POV_TV)\b/i;function yo(){try{if(go.test(navigator.userAgent||""))return!0;const s=navigator.deviceMemory;if(typeof s=="number"&&s>0&&s<2)return!0}catch{}return!1}const So="_statusMsg_1bhd3_1",_o="_error_1bhd3_7",To="_spinner_1bhd3_11",Co="_spin_1bhd3_11",ko="_sourceLoader_1bhd3_16",Eo="_ringSpinner_1bhd3_22",No="_meta_1bhd3_40",wo="_year_1bhd3_48",Io="_rating_1bhd3_53",Po="_typeBadge_1bhd3_62",xo="_tv_1bhd3_70",Ao="_movie_1bhd3_75",Lo="_controlLabel_1bhd3_80",Bo="_select_1bhd3_90",Ro="_playerSection_1bhd3_102",Mo="_video_1bhd3_106",$o="_videoHidden_1bhd3_128",Do="_delayCanvas_1bhd3_133",Oo="_delayCanvasActive_1bhd3_146",zo="_subtitleOverlay_1bhd3_150",Fo="_videoIframe_1bhd3_169",Vo="_retryButton_1bhd3_177",Uo="_sidebarSeason_1bhd3_192",Wo="_mobileSeasonRow_1bhd3_208",Ho="_providerSelectWrap_1bhd3_222",qo="_genreRow_1bhd3_230",Ko="_genreChip_1bhd3_237",Yo="_metaRow_1bhd3_247",Qo="_detailGrid_1bhd3_256",jo="_detailItem_1bhd3_264",Go="_imdbLink_1bhd3_286",Xo="_watchedOverlay_1bhd3_296",Jo="_watchedTitle_1bhd3_318",Zo="_watchedSubtext_1bhd3_324",ei="_watchedActions_1bhd3_330",p={statusMsg:So,error:_o,spinner:To,spin:Co,sourceLoader:ko,ringSpinner:Eo,meta:No,year:wo,rating:Io,typeBadge:Po,tv:xo,movie:Ao,controlLabel:Lo,select:Bo,playerSection:Ro,video:Mo,videoHidden:$o,delayCanvas:Do,delayCanvasActive:Oo,subtitleOverlay:zo,videoIframe:Fo,retryButton:Vo,sidebarSeason:Uo,mobileSeasonRow:Wo,providerSelectWrap:Ho,genreRow:qo,genreChip:Ko,metaRow:Yo,detailGrid:Qo,detailItem:jo,imdbLink:Go,watchedOverlay:Xo,watchedTitle:Jo,watchedSubtext:Zo,watchedActions:ei},ti=[],ni=[];function Rr({error:s,onRetry:b}){return t("div",{className:`${p.statusMsg} ${p.error}`,style:{flexDirection:"column",alignItems:"stretch",gap:8},children:t("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[t("span",{style:{flex:1},children:s}),t("button",{className:p.retryButton,onClick:b,children:"Retry"})]})})}const gi=()=>{const{id:s}=_s(),[b]=Ts(),z=U(b);z.current=b;const x=Cs(),M=Ms(),k=b.get("type"),w=Es(),d=!!w.session,c=d&&!w.session?.host,T=c&&["tv","movie"].includes(w.room?.selection.kind||"")?w.room?.selection:null,[r,A]=g(null),[ve,ee]=g(()=>parseInt(b.get("s")||"1",10)||1),u=T?.season??ve,[Ne,Be]=g([]),[ge,ye]=g(()=>parseInt(b.get("e")||"1",10)||1),S=T?Number(T.episode):ge,[Ct,tt]=g(()=>{try{return $.getItem("tvProvider")||""}catch{return""}}),E=T?.provider??Ct,[W,Y]=g([]),[de,kt]=g(""),[Re,nt]=g(""),{options:ut,isFallback:ie,isLoading:Et}=ua(),rt=Te(()=>ut.filter(e=>(e.kind??"tv")==="tv").map(e=>({id:e.id,label:e.label,tier:e.tier==="embed"?"embed":"direct",servers:e.servers})),[ut]),Q=ie||rt.length===0?ti:rt,I=Q.filter(e=>e.tier==="direct"),ne=Q.filter(e=>e.tier==="embed"),[ue,Me]=g(!1),[$e,re]=g(""),[Nt,We]=g([]),[Ce,wt]=g(0),[ke,It]=g([]),[me,De]=g(-1),[we,mt]=g(0),[He,Qt]=g(""),[st,qe]=g(""),[jt,Pt]=g(()=>{try{return $.getItem("tvServer")||""}catch{return""}}),K=T?.source??jt,ht=Te(()=>Q.find(e=>e.id===E),[Q,E]),P=ht?.tier==="embed",[xt,he]=g([]),[te,at]=g(""),[se,bt]=g(""),[At,ot]=g(!1),Se=Te(()=>xt.length>0?xt:ht?.servers??[],[xt,ht]),Gt=Te(()=>te&&!d?["Embed",...Se]:Se,[Se,te,d]),Ie=At&&!!te,it=Ie?se||te:"";v(()=>{if(!te){bt("");return}let e=!1;return Xn(`/api/resolve?url=${encodeURIComponent(te)}`).then(n=>{!e&&n.finalUrl&&bt(n.finalUrl)}).catch(()=>{}),()=>{e=!0}},[te]);const Lt=U([]);v(()=>{Lt.current=W},[W]);const Bt=U(Ce);v(()=>{Bt.current=Ce},[Ce]);const ft=U(me);v(()=>{ft.current=me},[me]);const i=Vs({skipIntervals:ni}),l=i.refs.videoRef,F=U(null),le=U([]),Xt=U(null),Rt=U(null),{videoDelayMs:Oe,videoDelayEnabled:Jt,setDelayEnabled:Sn,handleVideoDelayChange:Mt,isCalibrating:_n,testClipActive:be,stopCalibration:Tn,openAvSyncCalibrator:$r,cancelAvSyncCalibrator:Dr,applyAvSyncCalibrator:Or,toggleTestClip:zr,calibReturnRef:Zt,effectiveVideoDelayMs:Cn}=Us(l),[pt,Fr]=g(()=>{try{const e=Number($.getItem("tvSubtitleDelayMs"));if(Number.isFinite(e)&&e>=-6e4&&e<=6e4)return Math.round(e)}catch{}return 0}),kn=U(pt);kn.current=pt;const Vr=_(e=>{const n=Math.max(-6e4,Math.min(6e4,Math.round(e)));if(kn.current!==n){kn.current=n,Fr(n);try{$.setItem("tvSubtitleDelayMs",String(n))}catch{}}},[]);Ws({videoRef:l,canvasRef:Xt,delayMs:Cn,enabled:Jt});const En=Jt,_e=En||pt!==0,{settings:Nn,update:Ur}=Hs(),wn=U(_e);wn.current=_e;const In=_(()=>{if(!wn.current)return;const e=l.current;e&&Array.from(e.textTracks).forEach(n=>{n.mode!=="hidden"&&(n.mode="hidden")})},[l]),{hasConsent:$t,grant:Wr}=Ns(),f=k==="movie";po({details:r,isMovie:f,season:u,episode:S,videoRef:l,active:!P&&!ue&&!$e&&W.length>0});const en=s?ws(k||"tv",s):"",j=en,ze=`${j}:${u}:${S}:${E}:${K}`,tn=Te(()=>!s||!r||P||Ie||ue||Re!==ze||W[we]?.type!=="hls"?null:{kind:f?"movie":"tv",...f?{}:{season:u},showId:s,episode:String(f?1:S),provider:E,source:K,mode:"sub",title:r.title},[s,r,P,Ie,ue,Re,ze,W,we,f,u,S,E,K]),rr=qs(i.engine,tn,ue||!r),sr=ma(),Pn=ha(),Ke=ba(),Ye=fa(),{toggle:ar,bookmarkedIds:Hr,pending:qr}=pa(),{data:or}=va(r?en:void 0),Dt=or?!!or.inLibrary:en?Hr.has(en):!1,Kr=_(()=>{!r||!s||ar({tmdbId:Number(s),mediaType:k||"tv",title:r.title,poster:r.poster,year:r.year,adult:r.adult})},[r,s,k,ar]),{data:Qe,isFetched:Ot,isFetching:xn}=ga(j||void 0,u,S),nn=Te(()=>Ne.map(e=>e.episode_number).sort((e,n)=>e-n),[Ne]),zt=nn.indexOf(S),An=zt>0?nn[zt-1]:null,L=zt>=0&&zt<nn.length-1?nn[zt+1]:null,rn=Te(()=>(r?.seasons??[]).map(e=>e.season_number).filter(e=>Number.isFinite(e)).sort((e,n)=>e-n),[r]),fe=Te(()=>{if(f||L!=null)return null;const e=rn.indexOf(u);return e>=0&&e<rn.length-1?rn[e+1]:(r?.number_of_seasons??0)>u?u+1:null},[f,L,rn,u,r?.number_of_seasons]),Pe=Qe?.currentTime??0,sn=U(null),[je,an]=g(!1),[vt,ir]=g(0),[Ft,lr]=g(!1),[gt,yt]=g(!1),[Yr,Ln]=g(!1),[Qr,jr]=g(""),[on,Gr]=g(!1),[Xr,Bn]=g(!1),[Rn,Mn]=g(!1),{isTheaterMode:Fe,toggleTheaterMode:$n,handleLayoutClick:Jr}=Ks(),cr=Qe?.duration??0,dr=Qe?.completed===1,Vt=`${j}:${u}:${S}`,[ur,Zr]=g(null);v(()=>{Ot&&Zr(e=>e?.key===Vt?e:{key:Vt,watched:dr||Kt(Pe,cr)})},[Ot,Vt,dr,Pe,cr]);const es=Ot&&ur?.key===Vt&&ur.watched,[mr]=g(Sa),[ts,hr]=g(!1);v(()=>{hr(!1)},[Vt]);const br=!d&&!be&&es&&!Rn,Ge=br&&mr,lt=br&&!mr&&!ts,fr=_(()=>Mn(!0),[]);v(()=>{const e=n=>{n.defaultPrevented||n.ctrlKey||n.metaKey||n.altKey||n.repeat||n.target.closest('input, textarea, button, select, a, [role="button"], [contenteditable="true"]')||n.key.toLowerCase()==="t"&&$n()};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}},[$n]),Ys(i,(W.length>0||st!=="")&&!Fe&&!je&&!gt&&!Ge&&!lt);const ns=Ca(),[St,rs]=g(_a),ss=_(e=>{rs(e),Ta(e)},[]),Xe=U(!1),Ve=U(null),Dn=U(0),G=U(null),pr=_(()=>{G.current=Pe,Mn(!0)},[Pe]),ln=U(""),as=Lr(Pe),Ut=!d&&!Xe.current&&!Rn&&(je||gt||as||Ge||lt),cn=U(Ut);cn.current=Ut;const dn=U(!1);v(()=>{dn.current=Ft},[Ft]);const Je=_((e,n)=>{if(!j||!n||n<30)return;const o=Kt(e,n);Math.abs(e-Dn.current)<10&&!o||(Dn.current=e,sr.mutate({mediaId:j,season:u,episode:S,currentTime:Math.floor(e),duration:Math.floor(n),completed:o,title:r?.title??null,poster:r?.poster??null,backdrop:r?.backdrop??null,year:r?.year??null,overview:r?.overview??null,tmdbId:r?.id??null,mediaType:k||"tv",adult:r?.adult?1:0}))},[j,u,S,sr,r,k]),xe=_((e,n)=>{Tn();const o=new URLSearchParams(b);o.set("type",b.get("type")||"tv"),o.set("s",String(e)),o.set("e",String(n)),x(`${window.location.pathname}?${o.toString()}`)},[b,x,Tn]),Wt=_(()=>{const e=l.current;if(!e||f||L==null){Ln(!1);return}const n=e.duration||0,o=e.currentTime||0;Ln(n>0&&o/n>=.8)},[f,L,l]),un=_((e,n)=>["tv-sources",E,f?"movie":"tv",s,e,n,K],[E,f,s,K]),mn=_(async(e,n)=>{if(!r||!s||!E)return{valid:!1,sources:[]};const o=f?"movie":"tv",m=await Tt.tv.sources.query({provider:E,type:o,tmdbId:String(s),season:e,episode:n,title:r.title||"",year:r.year||"",totalSeasons:String(r.number_of_seasons||1),imdbId:r.imdb_id||"",...K?{server:K}:{}});return{valid:"valid"in m?m.valid:!1,error:"error"in m?m.error:void 0,sources:m.sources,referer:"referer"in m?m.referer:void 0,audioTracks:m.audioTracks,subtitles:"subtitles"in m?m.subtitles:void 0,servers:"servers"in m?m.servers:void 0,server:"server"in m?m.server:void 0,embedUrl:"embedUrl"in m?m.embedUrl:void 0}},[r,s,E,f,K]),vr=_(()=>{if(f||!r||!s||!E||P||L==null)return;const e=un(u,L);M.getQueryState(e)?.status!=="success"&&M.prefetchQuery({queryKey:e,queryFn:()=>mn(u,L),staleTime:300*1e3,gcTime:1800*1e3})},[f,r,s,E,P,L,u,M,un,mn]),os=_(()=>{if(be)return;Wt();const e=l.current;!e||e.paused||e.ended||(e.duration>0&&e.duration-e.currentTime<=60&&vr(),!Ve.current&&(Ve.current=setTimeout(()=>{Ve.current=null,Je(e.currentTime,e.duration||0)},5e3)))},[Je,l,be,Wt,vr]),is=_(()=>{const e=l.current;if(!(!e||!r)&&(Ve.current&&clearTimeout(Ve.current),Ve.current=null,Je(e.currentTime,e.duration||0),!c)){if(L!=null){St&&(ye(L),xe(u,L));return}jr(f?r.title:`${r.title} - Season ${u}`),yt(!0),Xe.current=!0}},[f,r,u,L,St,Je,xe,l,c]),{checkEnd:hn,logDuration:gr}=Qs({videoRef:l,sourceType:P?"iframe":void 0,resetKey:`${j}:${u}:${S}:${Rn}`,onEnd:is}),ls=_(()=>{i.actions.onPlay()},[i.actions]),cs=_(()=>{i.actions.onPause();const e=l.current;e&&!e.ended&&Je(e.currentTime,e.duration||0)},[i.actions,Je,l]),ds=_(()=>{const e=l.current;if(e){try{const n=parseFloat($.getItem("playerVolume")||"");isNaN(n)||(e.volume=Math.max(0,Math.min(1,n))),e.muted=$.getItem("playerMuted")==="true"}catch{}if(G.current!=null&&G.current>0){try{e.currentTime=G.current}catch{}G.current=null}Wt()}},[l,Wt]),On=_(()=>{const e=l.current;if(e&&G.current!=null&&G.current>0){try{e.currentTime=G.current}catch{}G.current=null}},[l]),us=_(()=>{vt>0&&(G.current=vt);const e=l.current;if(e&&vt>0){try{e.currentTime=vt,G.current=null}catch{}e.play().catch(()=>{})}an(!1),Xe.current=!0},[vt,l]),yr=_(()=>{G.current=null;const e=l.current;e&&(e.currentTime=0,e.play().catch(()=>{})),an(!1),Xe.current=!0},[l]),zn=_(()=>{L!=null&&(Xe.current=!0,ye(L),xe(u,L))},[L,u,xe]),Fn=_(()=>{fe!=null&&(yt(!1),Xe.current=!0,ee(fe),ye(1),xe(fe,1))},[fe,xe]),Vn=_(async()=>{if(j)try{Dt?await Ke.mutateAsync({id:j,status:"Completed"}):r&&s&&(await Ye.mutateAsync({tmdbId:Number(s),mediaType:k||"tv",title:r.title,poster:r.poster,backdrop:r.backdrop,year:r.year,overview:r.overview,adult:r.adult,status:"Completed",silent:!0}),xr.success("Moved to Completed")),yt(!1),x("/")}catch{}},[j,Dt,Ke,Ye,r,s,k,x]);v(()=>{Xe.current=!1,sn.current=null,an(!1),Ln(!1),ir(0),lr(!1),Mn(!1),dn.current=!1,G.current=null,Dn.current=0},[j,u,S]),v(()=>{ln.current=ze},[ze]),v(()=>{Ot&&(lr(!0),dn.current=!0)},[Ot,j,u,S]),v(()=>{if(d||xn||!Qe||Xe.current)return;const e=`${j}:${u}:${S}`;if(sn.current===e)return;sn.current=e;const n=Qe,o=n.currentTime??0;Lr(o)&&n.completed!==1&&!Kt(o,n.duration??0)&&(ir(o),an(!0))},[Qe,xn,j,u,S,d]),v(()=>{!d&&je&&l.current&&l.current.pause()},[je,l,d]),v(()=>{!d&&lt&&l.current&&l.current.pause()},[lt,l,d]),v(()=>{(Ge||lt)&&i.state.isFullscreen&&i.actions.toggleFullscreen()},[Ge,lt,i.state.isFullscreen,i.actions]),v(()=>{const e=l.current;return()=>{Ve.current&&clearTimeout(Ve.current),Ve.current=null,!e?.ended&&i.engine.getState().duration>0&&Je(i.engine.getTimeline().currentTime,i.engine.getState().duration)}},[i.engine,Je,l]);const Un=_(e=>{let n=null,o=!0;try{n=$.getItem("tvLastSubtitle"),o=$.getItem("tvSubtitlesEnabled")!=="false"}catch{}return tr(e,{lastKey:n,enabled:o})},[]),Wn=_(e=>{if(!(e<0))try{$.setItem("tvSubtitlesEnabled","true"),$.setItem("tvSelectedSubtitle",String(e))}catch{}},[]),Sr=_(e=>{if(e.length===0)return 0;let n=null;try{n=$.getItem("tvLastAudio")}catch{}if(n){const o=e.findIndex(B=>Jn(B)===n);if(o>=0)return o;const m=n.indexOf("|||"),h=m>=0?n.slice(0,m):n,C=m>=0?n.slice(m+3):n,D=e.findIndex(B=>B.language===h||B.label===C);if(D>=0)return D}return tr(e,{lastKey:null,enabled:!0})},[]),_r=_(e=>{let n=null;try{n=$.getItem("tvLastQuality")}catch{}if(!n||e.length===0)return 0;const o=e.findIndex(B=>(B.quality||"")===n);if(o>=0)return o;const m=B=>{const J=/(\d{3,4})/.exec(B||"");return J?parseInt(J[1],10):0},h=m(n);if(!h)return 0;let C=0,D=1/0;return e.forEach((B,J)=>{const y=m(B.quality),H=Math.abs(y-h);y>0&&H<D&&(D=H,C=J)}),C},[]),{data:Tr}=ya(j||void 0),Cr=Te(()=>(Tr?.progress??[]).filter(n=>n.season===u&&(n.completed===1||Kt(n.currentTime,n.duration))).map(n=>String(n.episode)),[Tr,u]),kr=Te(()=>Ne.map(e=>({id:String(e.episode_number),label:`Episode ${e.episode_number}`,sublabel:e.name||void 0,thumbnail:e.still_path?`https://image.tmdb.org/t/p/w185${e.still_path}`:void 0})),[Ne]),Er=Te(()=>(r?.genres??[]).map(e=>e.name).slice(0,5),[r]),Hn=Te(()=>[r?.year,r?.status,r?.number_of_seasons?`${r.number_of_seasons} Season${r.number_of_seasons>1?"s":""}`:null,r?.number_of_episodes?`${r.number_of_episodes} Episodes`:null].filter(Boolean),[r]);v(()=>{if(!c&&Q.length!==0&&!Q.some(e=>e.id===E)){const e=Q.find(n=>n.tier==="direct")?.id??Q[0].id;tt(e);try{$.setItem("tvProvider",e)}catch{}}},[Q,E,c]),v(()=>{he([]),at(""),bt(""),ot(!1)},[E]),v(()=>{if(!c&&Se.length!==0&&!Se.includes(K)){Pt(Se[0]);try{$.setItem("tvServer",Se[0])}catch{}}},[Se,K,c]),v(()=>{if(!s){A(null),Y([]),nt(""),re(""),qe("");return}const e=Number(s),n=k||"tv";A(null),Y([]),nt(""),re(""),qe("");const o=parseInt(z.current.get("s")||"",10),m=parseInt(z.current.get("e")||"",10);ee(isNaN(o)?1:o),ye(isNaN(m)?1:m),mt(0),Tt.tv.details.query({type:n,id:String(e)}).then(h=>{const C={id:h.id,title:h.title||"",overview:h.overview||"",vote_average:h.vote_average,year:h.year,poster:h.poster,backdrop:h.backdrop,imdb_id:h.imdb_id||void 0,adult:h.adult,seasons:h.seasons,number_of_seasons:h.number_of_seasons};A(C),C.seasons&&C.seasons.length>0&&isNaN(o)&&ee(C.seasons[0].season_number)}).catch(()=>{})},[s,k]),v(()=>{if(!r||!s)return;if(!(r.seasons!==void 0||r.number_of_seasons!==void 0)){Be([]);return}const n=parseInt(b.get("e")||"",10);Tt.tv.episodes.query({id:String(s),season:String(u)}).then(o=>{const m=(o.episodes||[]).map(h=>({episode_number:h.episode_number,name:h.name||"",vote_average:h.vote_average,overview:h.overview||"",still_path:h.still_path||""}));Be(m),m.length!==0&&ye(h=>!isNaN(n)&&m.some(C=>C.episode_number===n)?n:m.some(C=>C.episode_number===h)?h:m[0].episode_number)}).catch(()=>{})},[r,s,u,b]),v(()=>{if(!P||!r||!s)return;Xn(`/api/tv/embed/${E}/${f?"movie":"tv"}/${s}?season=${u}&episode=${S}`).then(n=>{if(n.url)return qe(n.url),Xn(`/api/resolve?url=${encodeURIComponent(n.url)}`).then(o=>{o.finalUrl&&qe(o.finalUrl)})}).catch(()=>{})},[E,r,s,u,S,f,P]);const bn=_(async()=>{if(!r||!s||!E||P||r.adult&&!$t)return;const e=ze;Me(!0),re(""),Lt.current.length===0&&(Y([]),mt(0),We([]),It([]));try{const n=await M.fetchQuery({queryKey:un(u,S),queryFn:()=>mn(u,S),staleTime:3e5,gcTime:18e5});if(ln.current!==e)return;if(Me(!1),!n.valid||!n.sources?.length){re(n.error?`${n.error}`:Se.length>0?`No streams from ${K}. Try another server.`:"No streams available.");return}if(d&&K&&n.server&&n.server!==K){Y([]),re("The host's selected server is unavailable. Automatic source switching is disabled in watch-along rooms.");return}!c&&!K&&n.server&&Pt(n.server);const o=d?n.sources.filter(B=>B.type==="hls"):n.sources;if(d&&o.length===0){Y([]),re("The room requires a direct HLS source. No compatible stream is available here.");return}Y(o),kt(n.server||K),nt(e),n.servers?.length&&he(n.servers),n.embedUrl&&at(n.embedUrl),mt(_r(o)),n.referer&&Qt(n.referer);const m=n.audioTracks||[];We(m),wt(m.length>0?Sr(m):0);const h=n.subtitles||[];if(It(h),h.length>0){const B=Un(h);De(B),Wn(B)}else De(-1);const C=f?"movie":"tv",D=s;Tt.tv.subtitles.query({type:C,tmdbId:String(D),season:String(u),episode:String(S)}).then(B=>{if(ln.current!==e)return;const J=Array.isArray(B.subtitles)?B.subtitles:[];J.length!==0&&It(y=>{const H=[...y,...J.filter(X=>!y.some(V=>V.url===X.url))];if(y.length===0){const X=Un(H);De(X),Wn(X)}return H})}).catch(()=>{}),re("")}catch(n){if(ln.current!==e)return;Me(!1),re(n instanceof Error?n.message:"Failed to load streams.")}},[r,s,E,u,S,f,P,$t,Se,K,Un,Wn,Sr,_r,M,un,mn,ze,d,c]),qn=_(()=>{const e=l.current;e&&!isNaN(e.currentTime)&&(G.current=e.currentTime)},[l]),ms=_(e=>{if(!(c||d&&e==="Embed")){if(e==="Embed"){ot(!0);return}qn(),ot(!1),Pt(e);try{$.setItem("tvServer",e)}catch{}re("")}},[qn,c,d]),hs=_(e=>{tt(e);try{$.setItem("tvProvider",e)}catch{}},[]);v(()=>{E&&r&&!P&&bn()},[E,r,bn,P]),v(()=>{if(Ge){i.engine.unload();return}if(!l.current)return;if(F.current=null,P||Ie||d&&W[we]?.type!=="hls"){i.engine.unload();return}if(be&&!d)return i.engine.loadSource({url:"/av-sync-test.mp4"},{autoPlay:!cn.current});if(Zt.current!=null&&(G.current=Zt.current,Zt.current=null),Re===ze&&G.current==null&&!cn.current)try{const y=l.current;y&&!y.ended&&y.currentTime>1&&(G.current=y.currentTime)}catch{}const n=G.current??0,o=!ue&&Re===ze?Ie?"":W[we]?.url||"":"";if(!o){try{l.current?.pause(),l.current?.removeAttribute("src"),l.current?.load()}catch{}return}const m=l.current;m.pause(),m.removeAttribute("src"),m.load(),i.actions.resetMediaState();const h=`/api/tv/stream-proxy?url=${encodeURIComponent(o)}&referer=${encodeURIComponent(He)}&provider=${encodeURIComponent(E)}`,C=yo()||document.body.classList.contains("low-end"),D=C?60:180,B=i.engine.loadSource({url:h,hls:W[we]?.type==="hls"},{hlsConfig:{enableWorker:!0,lowLatencyMode:!1,startPosition:n>0?n:-1,maxBufferLength:D,maxMaxBufferLength:D+(C?30:60),backBufferLength:C?30:60,maxBufferSize:(C?120:360)*1e3*1e3,fragLoadPolicy:{default:{maxTimeToFirstByteMs:15e3,maxLoadTimeMs:45e3,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:3,retryDelayMs:800,maxRetryDelayMs:6e3}}},manifestLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:25e3,timeoutRetry:{maxNumRetry:1,retryDelayMs:500,maxRetryDelayMs:2e3},errorRetry:{maxNumRetry:2,retryDelayMs:800,maxRetryDelayMs:4e3}}}},onHls:(y,H)=>{F.current=y;const X=()=>{let O=!1,R=0;try{O=$.getItem("tvSubtitlesEnabled")==="true";const N=parseInt($.getItem("tvSelectedSubtitle")||"0",10);!isNaN(N)&&N>=0&&(R=N)}catch{}return{enabled:O,index:R}},V=()=>{if(typeof y.subtitleTrack!="number")return;if(le.current.length>0){y.subtitleTrack=-1;return}const O=Array.isArray(y.subtitleTracks)?y.subtitleTracks:[];if(O.length===0){y.subtitleTrack=-1;return}const R=X();if(R.enabled){const N=R.index<O.length?R.index:0;y.subtitleTrack=N,De(N),In()}else y.subtitleTrack=-1};vo(y,H.Events,{getWant:()=>Bt.current,onResolve:O=>wt(O)}),y.on(H.Events.MANIFEST_PARSED,V),y.on(H.Events.SUBTITLE_TRACKS_UPDATED,()=>{V()}),y.on(H.Events.SUBTITLE_TRACK_SWITCH,(O,R)=>{if(le.current.length>0){if(R.id!==-1)try{y.subtitleTrack=-1}catch{}return}const N=Array.isArray(y.subtitleTracks)?y.subtitleTracks:[];if(N.length!==0){if(R.id===-1){const Ee=X();if(Ee.enabled){const ae=Ee.index<N.length?Ee.index:0;y.subtitleTrack=ae;return}}De(R.id),In()}})},onReady:()=>{(n>0||!cn.current&&dn.current)&&i.engine.play()},onError:y=>{re(y.message),Me(!1),F.current=null}}),J=()=>{const X=m.error?.code===4?"Video source not supported or not found":"Failed to load video stream";re(`${X}. The source may be invalid or expired. Try switching source or reloading.`),Me(!1)};return m.addEventListener("error",J),()=>{B(),F.current=null,m.removeEventListener("error",J)}},[W,Re,ue,we,E,He,P,Ie,l,Zt,be,j,u,S,On,In,i.actions,i.engine,ze,d,Ge]),v(()=>{if(c||!Ft||je||gt||Ut||P||be)return;const e=l.current;!e||!e.paused||e.ended||e.readyState<1||(On(),i.engine.play())},[Ft,je,gt,Ut,P,be,On,l,c,i.engine]),v(()=>{const e=F.current;!e||typeof e.audioTrack!="number"||(e.audioTrack=Ce)},[Ce]),v(()=>{const e=F.current;!e||typeof e.subtitleTrack!="number"||!Array.isArray(e.subtitleTracks)||e.subtitleTracks.length===0||le.current.length>0||(me>=0?e.subtitleTrack=me:e.subtitleTrack=-1)},[me]),v(()=>{const e=l.current;if(!(!e||P)&&(e.querySelectorAll("track").forEach(n=>n.remove()),le.current=[],ke.length!==0&&(ke.forEach(n=>{const o=document.createElement("track");o.kind="subtitles",o.label=n.label||n.language||"Unknown",o.srclang=n.language||n.label||"en";const m=`/api/subtitle-proxy?url=${encodeURIComponent(n.url)}&referer=${encodeURIComponent(He)}`;o.src=m,o.addEventListener("load",()=>{const h=le.current.indexOf(o),C=o.track;if(C&&h>=0){const D=h===ft.current;C.mode=D&&!wn.current?"showing":"hidden"}}),e.appendChild(o),le.current.push(o)}),ke.length>0)))try{const n=F.current;n&&typeof n.subtitleTrack=="number"&&n.subtitleTrack!==-1&&(n.subtitleTrack=-1)}catch{}},[ke,He,P,E,K,l]),v(()=>{const e=l.current;if(!e||P)return;const n=F.current;le.current.length>0&&n&&typeof n.subtitleTrack=="number"&&Array.isArray(n.subtitleTracks)&&n.subtitleTracks.length>0&&(n.subtitleTrack=-1);const o=()=>{const C=nr(i.state.subtitleFontSize,e.clientHeight||720),D=Math.max(0,Math.min(100,100-i.state.subtitlePosition)),B=()=>{const V=C*16,O=e.videoHeight||e.clientHeight||720,R=e.videoWidth||e.clientWidth||1280;return{step:V*1.3/O*100,chars:Math.max(20,Math.floor(R/(V*.55)))}},J=(V,O)=>{const R=V;R.snapToLines=!1,R.line=O},y=V=>{if(!V.cues)return;Array.from(V.cues).forEach(ae=>J(ae,D));const O=Array.from(V.activeCues??[]);if(O.length<=1){O.forEach(ae=>J(ae,D));return}const{step:R,chars:N}=B();let Ee=D;for(let ae=O.length-1;ae>=0;ae--){const Ze=String(O[ae].text??"").replace(/<[^>]*>/g,"").split(`
3
- `).reduce((pn,Ht)=>pn+Math.max(1,Math.ceil(Ht.length/N)),0);Ee=Math.max(0,Ee-Ze*R),J(O[ae],Ee),Ee-=R*.4}},H=le.current;if(H.length>0){H.forEach((V,O)=>{const R=V.track;if(!R)return;const N=O===me;R.mode=N&&!_e?"showing":"hidden",N&&!_e&&y(R)});return}const X=Array.from(e.textTracks);X.length!==0&&X.forEach((V,O)=>{const R=O===me;V.mode=R&&!_e?"showing":"hidden",R&&!_e&&y(V)})};o();const m=()=>o();e.textTracks.addEventListener("addtrack",m),e.addEventListener("loadedmetadata",o,{once:!0});const h=window.setTimeout(o,600);return()=>{e.textTracks.removeEventListener("addtrack",m),e.removeEventListener("loadedmetadata",o),window.clearTimeout(h)}},[me,ke,P,E,l,_e,i.state.subtitleFontSize,i.state.subtitlePosition]),v(()=>{if(!_e)return;const e=l.current,n=Rt.current;if(!e||!n)return;const o=pt/1e3,m=Cn/1e3,h=new Set;let C=[],D=-1,B=-1,J=-1,y=-1,H=0,X=0,V=!1;const O=()=>{const q=ft.current;if(q<0)return null;const et=le.current;return et.length>0?et[q]?.track??null:Array.from(e.textTracks)[q]??null},R=(q,et)=>{const pe=q.cues;if(!pe||pe.length===0)return Array.from(q.activeCues??[]);let ct=0,dt=pe.length;for(;ct<dt;){const Ae=ct+dt>>>1;pe[Ae].endTime+o<et?ct=Ae+1:dt=Ae}const qt=[];for(let Ae=ct;Ae<pe.length;Ae++){const vn=pe[Ae];if(vn.startTime+o>et)break;vn.endTime+o>=et&&qt.push(vn)}return qt},N=()=>{const q=O(),et=e.currentTime-m,pe=q?R(q,et):[],ct=e.clientWidth,dt=e.clientHeight,qt=e.videoWidth,Ae=e.videoHeight;if(pe.length===C.length&&pe.every((Qn,jn)=>Qn===C[jn])&&ct===D&&dt===B&&qt===J&&Ae===y||(C=pe,D=ct,B=dt,J=qt,y=Ae,n.textContent="",pe.length===0))return;const Ir={fontSize:nr(i.state.subtitleFontSize,dt),position:i.state.subtitlePosition,bgOpacity:i.state.subtitleBgOpacity,bgColor:i.state.subtitleBgColor,textColor:i.state.subtitleTextColor,edge:i.state.subtitleEdge,bold:i.state.subtitleBold},vs=js(Ir),gs=Gs(e,Ir.position);pe.forEach((Qn,jn)=>{const Pr=String(Qn.text??"");if(!Xs(Pr).trim())return;const Gn=document.createElement("div"),ys=(pe.length-1-jn)*1.7;Gn.style.cssText=`${vs}
4
- bottom: calc(${gs}px + ${ys}em);`,Gn.innerHTML=Js(Pr),n.appendChild(Gn)})},Ee=()=>{Array.from(e.textTracks).forEach(q=>{h.has(q)||(h.add(q),q.addEventListener("cuechange",N))})},ae=()=>{Ee(),N()},Yn=()=>{if(V||X)return;const q=()=>{X=0,!(V||e.paused||e.ended)&&(N(),Yn())};X=window.requestAnimationFrame(q)},Ze=e,pn=()=>{H=0,N(),!V&&Ze.requestVideoFrameCallback&&(H=Ze.requestVideoFrameCallback(pn))},Ht=()=>{N(),Ze.requestVideoFrameCallback?H||(H=Ze.requestVideoFrameCallback(pn)):Yn()};Ee(),e.textTracks.addEventListener("addtrack",ae),e.textTracks.addEventListener("removetrack",ae),e.addEventListener("timeupdate",N),e.addEventListener("seeked",N),e.addEventListener("loadedmetadata",N),e.addEventListener("play",Ht);const Nr=Array.from(e.querySelectorAll("track"));Nr.forEach(q=>q.addEventListener("load",N));const wr=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>N());return wr?.observe(e),N(),Ht(),()=>{V=!0,h.forEach(q=>q.removeEventListener("cuechange",N)),e.textTracks.removeEventListener("addtrack",ae),e.textTracks.removeEventListener("removetrack",ae),e.removeEventListener("timeupdate",N),e.removeEventListener("seeked",N),e.removeEventListener("loadedmetadata",N),e.removeEventListener("play",Ht),Nr.forEach(q=>q.removeEventListener("load",N)),wr?.disconnect(),X&&window.cancelAnimationFrame(X),H&&Ze.cancelVideoFrameCallback&&Ze.cancelVideoFrameCallback(H),n.textContent=""}},[_e,pt,me,ke,Cn,l,i.state.subtitleFontSize,i.state.subtitlePosition,i.state.subtitleBgOpacity,i.state.subtitleBgColor,i.state.subtitleTextColor,i.state.subtitleEdge,i.state.subtitleBold]);const Kn=()=>{A(null),Y([]),qe(""),x(-1)},bs=_(e=>{c||(ee(e),ye(1),xe(e,1))},[xe,c]),fn=!f&&r?.seasons&&r.seasons.length>1?t("label",{className:p.sidebarSeason,children:[t("span",{children:"Season"}),t("select",{disabled:c,value:u,onChange:e=>bs(parseInt(e.currentTarget.value,10)||1),className:p.select,children:r.seasons.map(e=>t("option",{value:e.season_number,children:["Season ",e.season_number," (",e.episode_count," ep)"]},e.season_number))})]}):null,_t=_(e=>{if(c)return;const n=parseInt(e,10);if(!isNaN(n)){try{l.current?.pause()}catch{}ye(n),xe(u,n)}Bn(!1)},[u,xe,l,c]);v(()=>{if(f)return;const e=n=>{n.target.closest('input, textarea, button, select, a, [role="button"], [contenteditable="true"]')||n.key.toLowerCase()==="n"&&(L!=null?_t(String(L)):xr.error("No next episode available"))};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}},[f,L,_t]);const fs=e=>{wt(e);try{const o=Nt[e];o&&$.setItem("tvLastAudio",Jn(o))}catch{}const n=F.current;n&&n.audioTrack!==void 0&&(n.audioTrack=e)},ps=e=>{De(e);try{if(e===-1)$.setItem("tvSubtitlesEnabled","false");else{$.setItem("tvSubtitlesEnabled","true"),$.setItem("tvSelectedSubtitle",String(e));const h=ke[e];h&&$.setItem("tvLastSubtitle",Jn(h))}}catch{}const n=l.current,o=F.current;if(o&&typeof o.subtitleTrack=="number"&&Array.isArray(o.subtitleTracks)&&o.subtitleTracks.length>0&&(o.subtitleTrack=le.current.length>0||e<0?-1:e),!n)return;const m=le.current;if(m.length>0){m.forEach((h,C)=>{const D=h.track;if(!D)return;const B=C===e;D.mode=B&&!_e?"showing":"hidden"});return}Array.from(n.textTracks).forEach((h,C)=>{const D=C===e;h.mode=D&&!_e?"showing":"hidden"})};return v(()=>{if(!r){document.title="TV & Movies - dango";return}document.title=f?`${r.title} - dango`:`${r.title} - Season ${u} Episode ${S} - dango`},[r,f,u,S]),v(()=>{if(!r||f)return;const e=new URLSearchParams(b),n=e.get("s"),o=e.get("e"),m=String(u),h=String(S);n===m&&o===h||(e.set("type",b.get("type")||"tv"),e.set("s",m),e.set("e",h),x(`${window.location.pathname}?${e.toString()}`,{replace:!0}))},[r,f,u,S,b,x]),t("div",{className:`${Le.playerPageLayout} ${Fe?Le.theaterMode:""} ${f?Le.noSidebar:""}`,onClick:Jr,children:[Fe&&t(Zs,{videoRef:l,active:Nn.enabled&&!P&&W.length>0&&!$e&&!(r?.adult&&!$t),settings:Nn}),!Fe&&!f&&t("aside",{className:Le.episodeSidebar,children:r?t(ea,{episodes:kr,currentEpisode:String(S),watchedEpisodes:Cr,onEpisodeClick:_t,header:fn}):t(ta,{variant:"sidebar"})}),t("div",{className:Le.playerMain,children:[r&&t("div",{className:p.playerSection,onContextMenu:e=>e.preventDefault(),style:r.adult&&!$t?{filter:"blur(14px)",pointerEvents:"none",userSelect:"none"}:void 0,children:P&&st&&!d?t("iframe",{src:st,className:p.videoIframe,allow:"autoplay; fullscreen",allowFullScreen:!0}):!P&&it&&!d?t("iframe",{src:it,className:p.videoIframe,allow:"autoplay; fullscreen",allowFullScreen:!0}):!P&&(W.length>0||ue)?t(Ue,{children:[$e&&t(Rr,{error:$e,onRetry:bn}),t(ho,{player:i,title:r.title,episodeLabel:f?void 0:`S${u} E${S}`,server:de||ht?.label||E,audioTracks:Nt,selectedAudioTrack:Ce,onAudioTrackChange:fs,subtitles:ke,selectedSubtitle:me,onSubtitleChange:ps,streams:W,resolutionIdx:we,onResolutionChange:e=>{qn(),mt(e);try{const n=W[e]?.quality;n&&$.setItem("tvLastQuality",n)}catch{}},onBack:Kn,videoDelayEnabled:Jt,onVideoDelayToggle:Sn,videoDelayMs:Oe,onVideoDelayChange:Mt,onCalibrateAvSync:d?void 0:$r,subtitleDelayMs:pt,onSubtitleDelayChange:Vr,showNextEpisodeButton:!c&&Yr&&!je&&!gt,onNextEpisode:zn,isLoading:ue,isTheaterMode:Fe,onTheaterModeToggle:$n,ambientSettings:Nn,onAmbientChange:Ur,hideChrome:Ge,children:t(Ue,{children:[t(Rs,{autoPlay:!d&&Ft&&!Ut,playsInline:!0,disablePictureInPicture:!0,className:`${p.video} ${En?p.videoHidden:""}`,onTimeUpdate:()=>{be||(os(),hn())},onEnded:()=>{be||hn(!0)},onPlay:ls,onPause:cs,onSeeked:()=>{be||(Wt(),hn())},onLoadedMetadata:()=>{ds(),gr(),hn()},onDurationChange:()=>{gr()},onContextMenu:e=>e.preventDefault(),onError:()=>{re("Video failed to load. Try another server or reload."),Me(!1)}}),t("canvas",{ref:Xt,className:`${p.delayCanvas} ${En?p.delayCanvasActive:""}`}),_e&&t("div",{ref:Rt,className:p.subtitleOverlay}),t(na,{isOpen:_n,ms:Oe,onChange:Mt,onApply:Or,onClose:Dr,testClipActive:be,onTestClip:zr}),Ge&&t("div",{className:p.watchedOverlay,children:[t(oe,{name:"check-circle",size:48,style:{color:"var(--accent-lighter)"}}),t("p",{className:p.watchedTitle,children:f?"Movie watched":`S${u} E${S} watched`}),t("p",{className:p.watchedSubtext,children:"Resume where you left off, replay from the beginning, or continue with the next episode."}),t("div",{className:p.watchedActions,children:[t("div",{children:Pe>5&&t(ce,{variant:"secondary",onClick:pr,children:`Resume ${Yt(Pe)}`})}),t("div",{children:L!=null?t(ce,{onClick:zn,children:`Watch EP ${L}`}):fe!=null?t(ce,{onClick:Fn,children:`Start Season ${fe}`}):null}),t("div",{children:[t(ce,{variant:"secondary",onClick:fr,children:"Replay"}),L==null&&fe==null&&t(ce,{onClick:Vn,disabled:Ke.isPending||Ye.isPending,children:Ke.isPending||Ye.isPending?"Saving...":"Move to Completed"})]})]})]})]})})]}):$e&&!P?t(Rr,{error:$e,onRetry:bn}):null}),t(Ea,{playback:tn?{selection:tn,position:l.current?.currentTime||0,playing:!1,rate:i.engine.getState().playbackRate}:null,onCreate:()=>{Tn(),i.engine.pause()},needsPlayback:rr.needsPlayback,onEnablePlayback:rr.enablePlayback}),d&&!ue&&r&&!tn&&t("p",{role:"alert",children:"The host's direct HLS source is unavailable here. Retry or leave the room to use another source."}),!Fe&&r&&t(ra,{}),!Fe&&fn&&t("div",{className:p.mobileSeasonRow,children:fn}),!Fe&&r&&t("div",{className:Z.streamPanel,children:[t("div",{className:p.providerSelectWrap,children:t("label",{className:p.controlLabel,children:["Provider",t("select",{value:E,onChange:e=>hs(e.currentTarget.value),className:p.select,disabled:c||Q.length===0,children:Et?t("option",{value:"",children:"Loading..."}):Q.length===0?t("option",{value:"",children:"No providers available"}):t(Ue,{children:[I.length>0&&t("optgroup",{label:"Direct HLS",children:I.map(e=>t("option",{value:e.id,children:e.label},e.id))}),ne.length>0&&t("optgroup",{label:"Embeds",children:ne.map(e=>t("option",{value:e.id,children:e.label},e.id))})]})})]})}),!c&&!P&&(ue?t("div",{className:p.sourceLoader,children:t("div",{className:p.ringSpinner})}):t(fo,{servers:Gt,selectedServer:At?"Embed":K,onServerSelect:ms}))]}),!Fe&&r&&t("div",{className:Le.playerInfoContainer,children:[t("div",{className:Le.playerInfoHeader,children:[t("div",{className:Le.playerAnimeCard,children:r.poster&&t(Is,{src:`https://image.tmdb.org/t/p/w342${r.poster}`,alt:r.title,loading:"lazy",decoding:"async"})}),t("div",{className:Le.videoTitleSection,children:[t("div",{className:Z.titleContainer,children:[t("h1",{children:r.title}),t("div",{className:p.meta,children:[t("span",{className:p.year,children:r.year}),r.vote_average!=null&&r.vote_average>0&&t("span",{className:p.rating,children:[t(oe,{name:"star",size:12}),Number(r.vote_average).toFixed(1)]}),t("span",{className:`${p.typeBadge} ${p[f?"movie":"tv"]}`,children:f?"Movie":"TV Show"})]}),Er.length>0&&t("div",{className:p.genreRow,children:Er.map(e=>t("span",{className:p.genreChip,children:e},e))}),Hn.length>0&&t("div",{className:p.metaRow,children:Hn.map((e,n)=>t("span",{children:[e,n<Hn.length-1?" · ":""]},`${e}-${n}`))})]}),t("div",{className:Z.controls,children:[t("button",{className:`${Z.watchlistBtn} ${Dt?Z.inList:""}`,onClick:Kr,disabled:qr,type:"button",children:[Dt?t(oe,{name:"check",size:14}):t(oe,{name:"plus",size:14}),Dt?"In Watchlist":"Add to Watchlist"]}),!f&&t(Ue,{children:[t("button",{className:`${Z.episodeNavBtn} ${Z.secondary}`,onClick:()=>An!=null&&_t(String(An)),disabled:c||An==null,type:"button",children:[t(oe,{name:"chevron-left",size:14}),"Prev EP"]}),t("button",{className:`${Z.episodeNavBtn} ${Z.primary}`,onClick:()=>L!=null&&_t(String(L)),disabled:c||L==null,type:"button",children:["Next EP",t(oe,{name:"chevron-right",size:14})]}),!f&&t("button",{className:`${Z.watchlistBtn} ${Z.modeToggleBtn} ${St?Z.modeToggleActive:""}`,onClick:()=>ss(!St),type:"button","aria-pressed":St,children:St?"AUTOPLAY: ON":"AUTOPLAY: OFF"}),ns&&t("button",{className:`${Z.watchlistBtn}`,onClick:()=>Bn(!0),type:"button",children:[t(oe,{name:"list-ul",size:14}),"Episodes"]}),t("button",{className:`${Z.watchlistBtn}`,onClick:()=>Pn.mutate({mediaId:j??"",season:u,episode:S}),disabled:Pn.isPending,type:"button",children:[t(oe,{name:"undo",size:14}),Pn.isPending?"Resetting...":"Reset Progress"]})]})]})]})]}),t("div",{className:Le.infoColumns,children:[t("div",{className:`${Z.descriptionSection} ${Z.synopsisFlat}`,children:[t("h3",{children:"Synopsis"}),t(ka,{text:r.overview,emptyText:"No description available."}),t("button",{className:Z.detailsToggleBtn,onClick:()=>Gr(!on),type:"button",children:[on?t(oe,{name:"chevron-up"}):t(oe,{name:"chevron-down"}),on?"Hide Details":"Show Details"]})]}),on&&t("div",{className:p.detailGrid,children:[r.first_air_date&&t("div",{className:p.detailItem,children:[t("strong",{children:f?"Release Date":"First Air Date"}),t("span",{children:r.first_air_date})]}),r.last_air_date&&t("div",{className:p.detailItem,children:[t("strong",{children:"Last Air Date"}),t("span",{children:r.last_air_date})]}),r.networks&&r.networks.length>0&&t("div",{className:p.detailItem,children:[t("strong",{children:"Networks"}),t("span",{children:r.networks.map(e=>e.name).join(", ")})]}),r.created_by&&r.created_by.length>0&&t("div",{className:p.detailItem,children:[t("strong",{children:"Created By"}),t("span",{children:r.created_by.map(e=>e.name).join(", ")})]}),r.episode_run_time&&r.episode_run_time.length>0&&t("div",{className:p.detailItem,children:[t("strong",{children:"Episode Runtime"}),t("span",{children:[r.episode_run_time[0]," min"]})]}),r.imdb_id&&t("div",{className:p.detailItem,children:[t("strong",{children:"IMDb"}),t("a",{href:`https://www.imdb.com/title/${r.imdb_id}`,target:"_blank",rel:"noopener noreferrer",className:p.imdbLink,children:"View on IMDb"})]})]})]})]}),!f&&t(sa,{isOpen:Xr,onClose:()=>Bn(!1),episodes:kr,currentEpisode:String(S),watchedEpisodes:Cr,onEpisodeClick:_t,header:fn}),r?.adult&&!$t&&t(da,{isOpen:!0,onClose:Kn,onGrant:Wr}),t(aa,{isOpen:!d&&je&&!xn&&sn.current===`${j}:${u}:${S}`&&Qe?.completed!==1&&!Kt(Pe,Qe?.duration??0),onClose:yr,title:"Resume Watching",message:t(Ue,{children:["You were at ",t("strong",{children:Yt(vt)})]}),restartLabel:"Start from Beginning",onResume:us,onRestart:yr}),t(Ar,{isOpen:lt,onClose:()=>hr(!0),title:"Episode Completed",heading:f?r?.title??"Movie":`S${u} E${S}`,message:f?"You've already watched this movie. Resume where you left off or replay it.":"You've already watched this episode. Resume where you left off, replay it, or continue with the next episode.",children:[Pe>5&&t(ce,{variant:"secondary",onClick:pr,children:`Resume ${Yt(Pe)}`}),t(ce,{variant:"secondary",onClick:fr,children:"Replay"}),L!=null?t(ce,{onClick:zn,children:["Watch EP ",L]}):fe!=null?t(ce,{onClick:Fn,children:["Start Season ",fe]}):t(ce,{onClick:Vn,disabled:Ke.isPending||Ye.isPending,children:Ke.isPending||Ye.isPending?"Saving...":"Move to Completed"})]}),t(Ar,{isOpen:gt,onClose:()=>yt(!1),title:f?"Movie Completed!":fe!=null?"Season Complete!":"Show Completed!",heading:Qr,message:f?"You finished this movie!":fe!=null?`You finished Season ${u}.`:"Congratulations! You finished all available episodes.",children:[t(ce,{variant:"secondary",onClick:()=>yt(!1),children:"Close"}),fe!=null?t(ce,{onClick:Fn,children:["Start Season ",fe]}):t(Ue,{children:[t(ce,{onClick:()=>{yt(!1),Kn()},children:"Back to Details"}),t(ce,{onClick:Vn,disabled:Ke.isPending||Ye.isPending,children:Ke.isPending||Ye.isPending?"Saving...":"Move to Completed"})]})]}),!r&&t("div",{className:p.statusMsg,children:[t(oe,{name:"spinner",className:p.spinner})," Loading..."]})]})]})};export{gi as default};
@@ -1 +0,0 @@
1
- ._fadeImage_1bp3x_1{opacity:0;transition:opacity .4s ease}._fadeImage_1bp3x_1._loaded_1bp3x_6{opacity:1}._overlay_5hzq9_1{position:fixed;inset:0;background-color:#0009;z-index:var(--z-modal);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:_fadeIn_5hzq9_1 .2s ease-out}._content_5hzq9_11{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:calc(var(--z-modal) + 1);background-color:var(--bg-secondary);padding:var(--space-6);border-radius:var(--radius-lg);width:100%;max-width:min(500px,calc(100vw - 2 * var(--space-4)));max-height:calc(100vh - 2 * var(--space-4));overflow-y:auto;box-shadow:var(--shadow-xl);border:1px solid var(--border-primary);animation:_modalIn_5hzq9_1 .2s var(--ease-smooth)}._sm_5hzq9_29{max-width:min(400px,calc(100vw - 2 * var(--space-4)))}._md_5hzq9_33{max-width:min(500px,calc(100vw - 2 * var(--space-4)))}._lg_5hzq9_37{max-width:min(700px,calc(100vw - 2 * var(--space-4)))}._title_5hzq9_41{margin:0 0 var(--space-4);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--text-primary)}._closeButton_5hzq9_48{position:absolute;top:var(--space-3);right:var(--space-3);display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);cursor:pointer;opacity:.6;transition:opacity .15s ease,background-color .15s ease}._closeButton_5hzq9_48:hover{opacity:1;background-color:var(--bg-tertiary)}._body_5hzq9_74{color:var(--text-secondary)}._footer_5hzq9_78{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--border-primary)}._footer_5hzq9_78>*{flex:0 1 auto;min-width:0;max-width:100%}@media(max-width:480px){._content_5hzq9_11{padding:var(--space-4)}._footer_5hzq9_78{flex-direction:column;align-items:stretch;justify-content:flex-start}._footer_5hzq9_78>*{flex:1 1 auto;width:100%}}@keyframes _fadeIn_5hzq9_1{0%{opacity:0}to{opacity:1}}@keyframes _modalIn_5hzq9_1{0%{opacity:0;transform:translate(-50%,-50%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}._container_uyq4a_1{position:relative;display:flex;align-items:center}._bellBtn_uyq4a_7{background:var(--header-btn-bg, rgba(255, 255, 255, .05));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--header-control-border, rgba(255, 255, 255, .08));color:var(--text-primary);font-size:1.25rem;cursor:pointer;padding:var(--space-2);display:flex;align-items:center;justify-content:center;transition:transform var(--transition-fast),background var(--transition-fast);position:relative;width:50px;height:50px;border-radius:50%}._bellBtn_uyq4a_7:hover{background:var(--header-btn-bg-hover, rgba(0, 0, 0, .25));border-color:#ffffff59;transform:translateY(-1px)}._bellBtn_uyq4a_7:focus-visible{outline:none;box-shadow:var(--shadow-focus)}._badge_uyq4a_39{position:absolute;top:6px;right:6px;background-color:var(--color-danger);color:#fff;font-size:.62rem;font-weight:700;min-width:18px;height:18px;padding:0 4px;border-radius:999px;display:flex;align-items:center;justify-content:center;text-align:center;border:none;pointer-events:none;animation:_badgePulse_uyq4a_1 1.8s ease-in-out 2;line-height:1}@keyframes _badgePulse_uyq4a_1{50%{box-shadow:0 0 0 4px var(--accent-subtle)}}._dropdown_uyq4a_67{position:fixed;top:calc(var(--vv-top, 0px) + var(--header-height, 64px) + var(--space-3));right:max(var(--space-4),calc((100vw - var(--max-width)) / 2 + var(--space-8)));width:min(420px,calc(100vw - 2rem));max-height:min(620px,calc(100vh - var(--header-height, 64px) - 2rem));background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);z-index:var(--z-header);overflow:hidden;display:flex;flex-direction:column;animation:_slideIn_uyq4a_1 .18s ease-out}@keyframes _slideIn_uyq4a_1{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}._dropdownHeader_uyq4a_98{padding:var(--space-4);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-primary)}._headerSubtitle_uyq4a_106{display:block;margin-top:2px;font-size:var(--font-size-xs);color:var(--text-muted)}._headerActions_uyq4a_113{display:flex;align-items:center;gap:var(--space-2)}._closeBtn_uyq4a_119{display:none;align-items:center;justify-content:center;width:36px;height:36px;border:0;border-radius:var(--radius-full);color:var(--text-secondary);background:#ffffff0f;cursor:pointer}._sectionHeading_uyq4a_132{margin:0;padding:var(--space-3) var(--space-4) var(--space-2);color:var(--text-muted);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase}._dropdownHeader_uyq4a_98 h4{margin:0;font-size:1rem;color:var(--text-primary)}._clearAllBtn_uyq4a_148{background:none;border:1px solid var(--border-secondary);color:var(--accent-light);font-size:var(--font-size-xs);font-weight:600;cursor:pointer;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);transition:all var(--transition-fast)}._clearAllBtn_uyq4a_148:hover{background:var(--accent-subtle);border-color:var(--border-accent);color:var(--accent-lighter)}._discoveryStatusRow_uyq4a_166{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:.72rem;color:var(--text-muted);background:#ffffff08;border-bottom:1px solid var(--border-primary)}._statusDot_uyq4a_177{width:8px;height:8px;border-radius:50%;flex-shrink:0}._statusDotRunning_uyq4a_184{background:var(--accent);animation:_statusPulse_uyq4a_1 1.2s ease-in-out infinite}._statusDotOk_uyq4a_189{background:var(--color-success)}._statusDotInfo_uyq4a_193{background:var(--color-info)}._statusDotError_uyq4a_197{background:var(--color-danger)}._statusDotIdle_uyq4a_201{background:var(--text-muted)}@keyframes _statusPulse_uyq4a_1{0%,to{opacity:1}50%{opacity:.35}}._list_uyq4a_216{overflow-y:auto;flex:1}._list_uyq4a_216::-webkit-scrollbar{width:4px}._list_uyq4a_216::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:2px}._item_uyq4a_230{display:flex;align-items:center;padding:var(--space-3) var(--space-4);gap:var(--space-3);text-decoration:none;transition:background var(--transition-fast);border-bottom:1px solid var(--border-primary);position:relative}._itemTitleLink_uyq4a_241{display:block;text-decoration:none;border-radius:var(--radius-sm)}._itemTitleLink_uyq4a_241:focus-visible,._systemItemMeta_uyq4a_248:focus-visible,._removeItem_uyq4a_249:focus-visible,._clearAllBtn_uyq4a_148:focus-visible,._modalButton_uyq4a_251:focus-visible{outline:none;box-shadow:var(--shadow-focus)}._item_uyq4a_230:hover{background:#ffffff0d}._systemItem_uyq4a_248{background:#ffffff06}._systemIcon_uyq4a_264{width:42px;height:42px;display:grid;place-items:center;border-radius:var(--radius-md);color:var(--accent-light);background:var(--accent-subtle);flex-shrink:0}._thumbnail_uyq4a_275{width:48px;height:64px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0;box-shadow:0 2px 8px #0000004d}._itemInfo_uyq4a_284{flex:1;min-width:0}._itemTitle_uyq4a_241{display:block;font-size:.85rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:var(--space-1)}._itemMeta_uyq4a_300{display:inline-block;font-size:.7rem;background:var(--accent);color:var(--accent-text);padding:1px 6px;border-radius:var(--radius-sm);font-weight:600}._systemItemMeta_uyq4a_248{display:inline-block;font-size:.7rem;background:none;color:var(--text-muted);padding:0;text-align:left;font:inherit;font-size:var(--font-size-xs);line-height:1.5;border:0;cursor:pointer;transition:background var(--transition-fast)}._systemItemMeta_uyq4a_248:hover{color:var(--text-primary)}._systemItemMeta_uyq4a_248 span{color:var(--accent-light);white-space:nowrap}._removeItem_uyq4a_249{background:none;border:none;color:var(--text-muted);font-size:var(--font-size-xs);cursor:pointer;padding:var(--space-2);display:flex;align-items:center;justify-content:center;opacity:0;border-radius:var(--radius-sm);transition:opacity var(--transition-fast),color var(--transition-fast)}._item_uyq4a_230:hover ._removeItem_uyq4a_249{opacity:1}@media(hover:none),(pointer:coarse){._removeItem_uyq4a_249{opacity:1}}._removeItem_uyq4a_249:hover{color:var(--color-danger)}._queueItem_uyq4a_365:hover{color:var(--color-success)}._modalButton_uyq4a_251{background:var(--accent);color:var(--accent-text);border:0;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;font-weight:600}._fullMessage_uyq4a_379{margin:0;line-height:1.6;white-space:pre-wrap}._emptyState_uyq4a_385{min-height:260px;padding:var(--space-10) var(--space-6);text-align:center;color:var(--text-muted);font-size:var(--font-size-sm);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2)}._emptyState_uyq4a_385 strong{color:var(--text-primary);font-size:var(--font-size-base)}._emptyIcon_uyq4a_403{width:48px;height:48px;margin-bottom:var(--space-2);border-radius:var(--radius-full);display:grid;place-items:center;color:var(--accent-light);background:var(--accent-subtle)}@media(max-width:768px){._dropdown_uyq4a_67{position:fixed;top:calc(var(--header-height, 64px) + env(safe-area-inset-top,0px));left:env(safe-area-inset-left,0px);right:env(safe-area-inset-right,0px);width:auto;height:calc(100dvh - var(--header-height, 64px) - env(safe-area-inset-top,0px));max-height:none;border-radius:0 0 var(--radius-lg) var(--radius-lg);animation:_mobileSheetIn_uyq4a_1 .2s ease-out;padding-bottom:env(safe-area-inset-bottom,0px)}._removeItem_uyq4a_249{padding:var(--space-2);min-width:36px;min-height:36px}._badge_uyq4a_39{top:5px;right:6px;font-size:.58rem;min-width:16px;height:16px;padding:0 3px}._list_uyq4a_216{overscroll-behavior:contain}._dropdownHeader_uyq4a_98,._discoveryStatusRow_uyq4a_166{flex-shrink:0}._closeBtn_uyq4a_119{display:flex}}@keyframes _mobileSheetIn_uyq4a_1{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){._dropdown_uyq4a_67,._bellBtn_uyq4a_7,._badge_uyq4a_39,._statusDotRunning_uyq4a_184{animation:none;transition:none}}._notificationDivider_uyq4a_479{height:1px;flex-shrink:0;margin:var(--space-2) 0;background:var(--border-primary)}.skeleton{position:relative;overflow:hidden;background-color:var(--bg-tertiary);border-radius:var(--radius-sm)}.skeleton:after{position:absolute;inset:0;transform:translate(-100%);background-image:linear-gradient(90deg,#fff0 0,#ffffff0d 20%,#ffffff1f 60%,#fff0);animation:shimmer 1.8s infinite ease-in-out;content:""}.skeleton-text{border-radius:var(--radius-sm);height:1em}.skeleton-circular{border-radius:50%}.skeleton-rectangular{border-radius:var(--radius-md)}.skeleton-card{display:flex;flex-direction:column;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);overflow:hidden}@keyframes shimmer{to{transform:translate(100%)}}._logo_t3il2_1{height:var(--logo-height, 75px);width:auto;display:block;overflow:visible}._skewer_t3il2_8{fill:none;stroke:#d9c6a5;stroke-width:1.1;stroke-linecap:round}._gaze_t3il2_15{transform:translate(calc(var(--dango-gaze-x, 0) * 1.1px),calc(var(--dango-gaze-y, 0) * .8px));transition:transform var(--gaze-dur, .15s) ease-out}._face_t3il2_20{opacity:0;transition:opacity .18s ease}[data-dango-face=normal] ._faceNormal_t3il2_25,[data-dango-face=pet] ._facePet_t3il2_26,[data-dango-face=squint] ._faceSquint_t3il2_27,[data-dango-face=sleep] ._faceSleep_t3il2_28{opacity:1}[data-dango-hover] ._gaze_t3il2_15{filter:drop-shadow(0 0 .5px var(--accent))}._line_t3il2_36{fill:none;stroke:#140f15;stroke-width:.5;stroke-linecap:round;stroke-linejoin:round}._sway_t3il2_44{animation:_dango-sway_t3il2_1 7.4s ease-in-out infinite}@keyframes _dango-sway_t3il2_1{0%,to{transform:translate(0)}50%{transform:translateY(.5px)}}._weight_t3il2_58{animation:_dango-weight_t3il2_1 5.6s ease-in-out infinite}@keyframes _dango-weight_t3il2_1{0%,to{transform:translate(0)}45%,65%{transform:translate(.2px,.8px)}}._shift_t3il2_73{animation:_dango-shift_t3il2_1 10.5s ease-in-out infinite}@keyframes _dango-shift_t3il2_1{0%,to{transform:translate(.3px,.6px)}50%{transform:translate(-.3px,.3px)}}._rock_t3il2_87{animation:_dango-rock_t3il2_1 7.9s ease-in-out infinite}@keyframes _dango-rock_t3il2_1{0%,72%,to{transform:translate(0)}80%{transform:translate(-.35px,.5px)}88%{transform:translate(.15px,.1px)}}._glance_t3il2_105{animation:_dango-glance_t3il2_1 11s ease-in-out infinite}@keyframes _dango-glance_t3il2_1{0%,30%,to{transform:translate(0)}40%,50%{transform:translate(-1.6px,-.45px)}62%{transform:translate(0)}}._blink_t3il2_124{transform-box:fill-box;transform-origin:center}._blinkDouble_t3il2_129{animation:_dango-blink-double_t3il2_1 4.4s infinite}@keyframes _dango-blink-double_t3il2_1{0%,86%,to{transform:scaleY(1)}89%,90.5%{transform:scaleY(.08)}93%,94.5%{transform:scaleY(.08)}97%{transform:scaleY(1)}}._blinkSlow_t3il2_153{animation:_dango-blink-slow_t3il2_1 9.5s infinite}@keyframes _dango-blink-slow_t3il2_1{0%,82%,to{transform:scaleY(1)}88%{transform:scaleY(.14)}95%{transform:scaleY(1)}}[data-dango-nudge=""] ._bump_t3il2_172{animation:_dango-nudge_t3il2_1 .52s ease-out}@keyframes _dango-nudge_t3il2_1{0%,to{transform:translate(0)}25%{transform:translate(.5px)}60%{transform:translate(-.35px)}}[data-dango-cheer=""] ._heart_t3il2_189{animation:_dango-heart_t3il2_1 1.2s ease-out infinite}._heart_t3il2_189{opacity:0;font-size:4.6px;text-anchor:middle;transform-box:fill-box;transform-origin:center}@keyframes _dango-heart_t3il2_1{0%{opacity:0;transform:translate(0) scale(.35)}22%{opacity:1}to{opacity:0;transform:translate(var(--drift, 0),-6.5px) scale(1.05)}}@media(prefers-reduced-motion:reduce){._sway_t3il2_44,._weight_t3il2_58,._shift_t3il2_73,._rock_t3il2_87,._glance_t3il2_105,._blinkDouble_t3il2_129,._blinkSlow_t3il2_153,[data-dango-nudge=""] ._bump_t3il2_172,[data-dango-cheer=""] ._heart_t3il2_189{animation:none}}._header_9w6in_1{height:var(--header-height);--logo-height: 42px;background:transparent;border-bottom:1px solid transparent;position:fixed;top:var(--vv-top, 0px);left:0;right:0;z-index:var(--z-header);display:flex;align-items:center;justify-content:center;transition:transform var(--transition-slow),background-color var(--transition-base),backdrop-filter var(--transition-base),border-color var(--transition-base),box-shadow var(--transition-base)}._header_9w6in_1._hidden_9w6in_22{transform:translateY(-100%)}._header_9w6in_1._scrolled_9w6in_26{background-color:#13151dd9;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid rgba(255,255,255,.08);box-shadow:0 8px 32px #00000073;--header-control-bg: rgba(255, 255, 255, .045);--header-control-border: rgba(255, 255, 255, .07);--header-btn-bg: rgba(255, 255, 255, .045);--header-btn-bg-hover: rgba(255, 255, 255, .1)}._logo_9w6in_38{display:flex;align-items:center;justify-content:center;padding:4px;border-radius:var(--radius-md);transition:opacity var(--transition-base),transform var(--transition-fast)}._logo_9w6in_38:hover{opacity:.9;transform:translateY(-1px)}._headerInner_9w6in_54{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 var(--space-8);display:flex;align-items:center;justify-content:space-between}._leftSection_9w6in_64{display:flex;align-items:center;gap:var(--space-2)}._desktopNav_9w6in_70{display:flex;align-items:center;gap:var(--space-1);margin-left:var(--space-6);padding:4px 6px;background:var(--header-btn-bg, rgba(255, 255, 255, .05));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--header-control-border, rgba(255, 255, 255, .08));border-radius:var(--radius-full)}._navLink_9w6in_83{color:var(--text-muted);font-weight:500;font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);text-decoration:none;transition:all var(--transition-fast);position:relative;letter-spacing:.01em;background:none;z-index:1}._navLink_9w6in_83:hover{color:var(--text-primary);background:#ffffff08}._navLinkActive_9w6in_102{color:#fff;font-weight:600;background:transparent}._navPill_9w6in_108{position:absolute;top:4px;bottom:4px;background:#ffffff12;border-radius:var(--radius-full);transition:left .25s cubic-bezier(.22,1,.36,1),width .25s cubic-bezier(.22,1,.36,1),opacity .2s ease;pointer-events:none;z-index:0}._navLinkActive_9w6in_102:after{display:none}._rightSection_9w6in_126{display:flex;align-items:center;gap:var(--space-3)}._searchWrapper_9w6in_132{position:relative;display:flex;align-items:center;background:var(--header-btn-bg, rgba(255, 255, 255, .05));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--header-control-border, rgba(255, 255, 255, .08));border-radius:var(--radius-full);height:50px;padding:0 10px 0 14px;gap:8px;transition:all var(--transition-base);cursor:text}._searchWrapper_9w6in_132:hover{background:var(--header-btn-bg-hover, rgba(255, 255, 255, .08));border-color:#ffffff38}._searchWrapper_9w6in_132:focus-within{background:#0f1118f2;border-color:#ffffff59;box-shadow:0 4px 20px #00000059}._searchIconButton_9w6in_159{display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;background:none;color:inherit;cursor:pointer;flex-shrink:0}._searchIcon_9w6in_159{font-size:.95rem;color:#fff9;flex-shrink:0;transition:color var(--transition-fast)}._searchIconButton_9w6in_159:hover ._searchIcon_9w6in_159{color:var(--accent)}._searchWrapper_9w6in_132:focus-within ._searchIcon_9w6in_159{color:#fff}._searchInput_9w6in_186{width:160px;opacity:1;padding:0;border:none;background:transparent;color:var(--text-primary);font-size:var(--font-size-sm);font-family:inherit;height:100%;pointer-events:auto;outline:none;transition:width var(--transition-base)}._searchInput_9w6in_186:focus,._searchInput_9w6in_186:focus-visible,input._searchInput_9w6in_186:focus,input._searchInput_9w6in_186:focus-visible{outline:none!important;outline-offset:0!important;box-shadow:none!important;border:none!important}._searchInput_9w6in_186::placeholder{color:#ffffff8c}._searchWrapper_9w6in_132:focus-within ._searchInput_9w6in_186{width:230px}._searchKbd_9w6in_219{display:inline-flex;align-items:center;justify-content:center;padding:3px 6px;font-size:.68rem;font-weight:700;color:var(--text-muted);background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-sm);letter-spacing:.02em;white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;transition:opacity var(--transition-fast)}._searchKbdHidden_9w6in_237{opacity:0;pointer-events:none}._searchButton_9w6in_242{display:none;cursor:pointer}._searchButton_9w6in_242:hover{opacity:.9;transform:translateY(-1px)}._profileBtn_9w6in_252{height:50px;border-radius:var(--radius-full);gap:var(--space-2);padding-right:var(--space-3);text-decoration:none;overflow:hidden;border:1px solid var(--header-control-border, rgba(255, 255, 255, .08));cursor:pointer;transition:all var(--transition-base);display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--header-btn-bg, rgba(255, 255, 255, .05));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text-primary)}._profileBtn_9w6in_252:hover{border-color:#ffffff59;transform:translateY(-1px);background:var(--header-btn-bg-hover, rgba(0, 0, 0, .25))}._profileBtn_9w6in_252:active{transform:scale(.95)}._profileBtn_9w6in_252 svg{color:var(--text-primary);font-size:1.1rem}._profileAvatar_9w6in_287{width:50px;height:50px;display:flex;flex-shrink:0}._profileName_9w6in_294{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-sm);font-weight:500}._hamburgerBtn_9w6in_303{background:transparent;border:none;color:var(--text-primary);font-size:1.25rem;padding:var(--space-2);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;height:40px;width:40px;flex-shrink:0}._hamburgerBtn_9w6in_303:hover{opacity:.8}._searchButton_9w6in_242:focus-visible,._profileBtn_9w6in_252:focus-visible,._hamburgerBtn_9w6in_303:focus-visible,._logo_9w6in_38:focus-visible{outline:none;box-shadow:var(--shadow-focus)}._searchDropdown_9w6in_331{position:absolute;top:calc(100% + var(--space-8));left:0;right:0;width:auto;max-height:min(520px,calc(100vh - var(--header-height, 64px) - 2rem));background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);z-index:var(--z-header);overflow:hidden;display:flex;flex-direction:column;animation:_slideIn_9w6in_1 .18s ease-out}@media(max-width:1200px){._searchDropdown_9w6in_331{position:fixed;top:calc(var(--header-height, 64px) + env(safe-area-inset-top,0px) + 56px);left:env(safe-area-inset-left,0px);right:env(safe-area-inset-right,0px);width:auto;max-height:calc(100dvh - var(--header-height, 64px) - env(safe-area-inset-top,0px) - 56px);border-radius:0 0 var(--radius-lg) var(--radius-lg);padding-bottom:env(safe-area-inset-bottom,0px)}._searchDropdownNoBar_9w6in_363{top:calc(var(--header-height, 64px) + env(safe-area-inset-top,0px) + var(--space-3));max-height:calc(100dvh - var(--header-height, 64px) - env(safe-area-inset-top,0px) - var(--space-3))}}._searchDropdownHeader_9w6in_371{padding:var(--space-4);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-primary)}._searchDropdownQuery_9w6in_379{font-size:.85rem;font-weight:600;color:var(--text-primary)}._searchDropdownSeeAll_9w6in_385{background:none;border:none;color:var(--accent-light);font-size:var(--font-size-xs);font-weight:600;cursor:pointer;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);transition:all var(--transition-fast)}._searchDropdownSeeAll_9w6in_385:hover{background:var(--accent-subtle);color:var(--accent-lighter)}._searchDropdownList_9w6in_402{overflow-y:auto;flex:1}._searchDropdownList_9w6in_402::-webkit-scrollbar{width:4px}._searchDropdownList_9w6in_402::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:2px}._searchDropdownItem_9w6in_416{display:flex;align-items:center;padding:var(--space-3) var(--space-4);gap:var(--space-3);background:none;border:none;border-bottom:1px solid var(--border-primary);cursor:pointer;text-align:left;transition:background var(--transition-fast);width:100%}._searchDropdownItem_9w6in_416:hover{background:#ffffff0d}._searchDropdownThumb_9w6in_434{width:48px;height:64px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0;box-shadow:0 2px 8px #0000004d}._searchDropdownItemInfo_9w6in_443{display:flex;flex-direction:column;gap:2px;min-width:0}._searchDropdownItemTitle_9w6in_450{font-size:.85rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._searchDropdownItemMeta_9w6in_459{font-size:.7rem;color:var(--text-muted);white-space:nowrap}@keyframes _slideIn_9w6in_1{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}._logo_9w6in_38:active,._searchButton_9w6in_242:active,._profileBtn_9w6in_252:active,._hamburgerBtn_9w6in_303:active{transform:scale(.97)}@media(prefers-reduced-motion:reduce){._logo_9w6in_38,._searchButton_9w6in_242,._profileBtn_9w6in_252,._hamburgerBtn_9w6in_303,._searchIcon_9w6in_159{transition:none}}._hamburgerBtn_9w6in_303:active{transform:scale(.95)}._mobileSearchBar_9w6in_498{display:none}@media(max-width:1200px){._searchWrapper_9w6in_132{background:transparent;border:none;padding:0;height:auto;cursor:default;backdrop-filter:none;-webkit-backdrop-filter:none}._searchWrapper_9w6in_132:hover{background:transparent;border-color:transparent}._searchWrapper_9w6in_132:focus-within{background:transparent;box-shadow:none;border-color:transparent}._searchIconButton_9w6in_159,._searchIcon_9w6in_159,._searchInput_9w6in_186{display:none}._searchWrapper_9w6in_132:focus-within ._searchInput_9w6in_186{display:none}._searchKbd_9w6in_219{display:none}._searchButton_9w6in_242{display:flex;background:var(--header-btn-bg, rgba(255, 255, 255, .05));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid transparent;color:var(--text-primary);padding:0;align-items:center;justify-content:center;cursor:pointer;pointer-events:auto;width:50px;height:50px;border-radius:50%;transition:all var(--transition-base);flex-shrink:0}._searchButton_9w6in_242:hover{background:var(--header-btn-bg-hover, rgba(0, 0, 0, .25));border-color:#ffffff59;transform:translateY(-1px)}._searchIconMobile_9w6in_569{font-size:1rem;color:#fff;transition:all var(--transition-base)}._searchButton_9w6in_242:hover ._searchIconMobile_9w6in_569{color:var(--accent)}._mobileSearchBar_9w6in_498{display:block;position:absolute;top:100%;left:0;right:0;background:#0c0c0feb;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid rgba(255,255,255,.07);padding:var(--space-2) var(--space-3);animation:_slideDown_9w6in_1 .2s ease;transition:transform var(--transition-base),opacity var(--transition-base)}._mobileSearchBarHidden_9w6in_596{transform:translateY(-100%);opacity:0;pointer-events:none}@keyframes _slideDown_9w6in_1{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}._mobileSearchInner_9w6in_613{display:flex;align-items:center;background:#ffffff14;border:none;border-radius:var(--radius-full);padding:0 var(--space-4);height:40px}._mobileSearchInner_9w6in_613:focus-within{border:none;outline:none;box-shadow:0 0 0 2px var(--accent)}._mobileSearchIcon_9w6in_629{color:#ffffff80;font-size:.85rem;flex-shrink:0;margin-right:var(--space-2)}._mobileSearchInput_9w6in_636{flex:1;background:transparent;border:none;outline:none;color:var(--text-primary);font-size:var(--font-size-sm);font-family:inherit;height:100%}._mobileSearchInput_9w6in_636::placeholder{color:#ffffff80}._mobileSearchInput_9w6in_636:focus,input._mobileSearchInput_9w6in_636:focus,._mobileSearchInput_9w6in_636:focus-visible,input._mobileSearchInput_9w6in_636:focus-visible{outline:none!important;box-shadow:none!important;border:none}}@media(max-width:920px){._profileBtn_9w6in_252{width:50px;height:50px;padding:0}._profileName_9w6in_294{display:none}}@media(max-width:805px){._desktopNav_9w6in_70{display:none}}@media(max-width:542px){._rightSection_9w6in_126{gap:4px}._hamburgerBtn_9w6in_303{height:38px;width:38px;font-size:1rem}._logo_9w6in_38{padding:2px;min-width:0}}._sidebar_153jc_1{position:fixed;top:0;left:0;width:280px;max-width:85vw;height:100%;transition:transform var(--transition-normal);z-index:var(--z-sidebar);padding:var(--space-8) var(--space-6);display:flex;flex-direction:column;overflow-y:auto;transform:translate(-100%);background-color:#0a0a0cf2;color:var(--text-primary);border-right:1px solid var(--border-primary)}._sidebar_153jc_1._open_153jc_20{transform:translate(0);box-shadow:20px 0 60px #00000080}._sidebarHeader_153jc_25{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-10);position:relative}._closeBtn_153jc_33{position:absolute;top:0;right:0;background:none;border:none;font-size:1.25rem;line-height:1;cursor:pointer;color:var(--text-tertiary);transition:color var(--transition-base);display:flex;align-items:center;justify-content:center;padding:var(--space-1);width:32px;height:32px;border-radius:var(--radius-sm)}._closeBtn_153jc_33:hover{color:var(--text-primary)}._logo_153jc_57{display:flex;align-items:center;text-decoration:none;--logo-height: 50px;transition:opacity var(--transition-base)}._logo_153jc_57:hover{opacity:.8}._navSection_153jc_69{display:flex;flex-direction:column;gap:var(--space-1)}._navLink_153jc_75{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);text-decoration:none;transition:all var(--transition-base);color:var(--text-secondary);font-weight:var(--font-weight-medium);font-size:var(--font-size-base);border-left:2px solid transparent;margin-left:var(--space-2)}._navLink_153jc_75 svg{font-size:1rem;width:20px;text-align:center;flex-shrink:0;transition:color var(--transition-base)}._navLink_153jc_75:hover{background-color:#ffffff0a;color:var(--text-primary);border-left-color:#ffffff26}._navLink_153jc_75:hover svg{color:var(--text-primary)}._navLink_153jc_75._active_153jc_108{background-color:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent-light);border-left-color:var(--accent)}._navLink_153jc_75._active_153jc_108 svg{color:var(--accent)}._overlay_153jc_118{position:fixed;inset:0;background-color:#0009;z-index:calc(var(--z-sidebar) - 1);animation:_fadeIn_153jc_1 .3s ease-out}@keyframes _fadeIn_153jc_1{0%{opacity:0}to{opacity:1}}._versionInfo_153jc_138{margin-top:auto;padding-top:var(--space-8);font-size:1rem;color:var(--text-secondary);text-align:left;display:flex;align-items:center;gap:var(--space-2)}._versionInfo_153jc_138:before{content:"";display:block;width:5px;height:5px;border-radius:50%;background-color:var(--color-success)}@media(max-width:768px){._sidebar_153jc_1{width:260px;padding:var(--space-6) var(--space-4)}._sidebarHeader_153jc_25{margin-bottom:var(--space-8)}._logo_153jc_57{--logo-height: 48px}._navLink_153jc_75{padding:var(--space-3) var(--space-3)}}._footer_1c905_1{width:100%;position:relative;padding:0 var(--space-8) var(--space-8);overflow:visible;border-top:1px solid rgba(255,255,255,.08);margin-top:auto;background:linear-gradient(180deg,#0a0a0c99,#050507f2);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:var(--text-tertiary);font-size:var(--font-size-sm)}._footerInner_1c905_15{width:100%;max-width:var(--max-width);margin:0 auto;display:grid;grid-template-columns:1fr auto;align-items:start;gap:var(--space-12);padding-bottom:var(--space-8);border-bottom:1px solid rgba(255,255,255,.06)}._brandSection_1c905_27{grid-column:1;display:flex;flex-direction:column;align-items:flex-start;text-align:left;max-width:320px;position:relative;padding-top:0;margin-top:-30px}._logoRow_1c905_39{display:flex;align-items:center;gap:14px}._logoText_1c905_45{--logo-height: 60px;width:auto;display:block}._brandMeta_1c905_51{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-2);flex-wrap:wrap;margin-top:10px}._brandTagline_1c905_60{color:var(--text-secondary);font-size:.88rem;line-height:1.5;margin:0}._statusPill_1c905_67{display:inline-flex;align-items:center;gap:var(--space-2);padding:4px 12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-full);font-size:.78rem;color:var(--text-secondary);width:fit-content}._statusDot_1c905_80{width:7px;height:7px;border-radius:50%;background:var(--color-success);box-shadow:0 0 8px var(--color-success)}._linksGrid_1c905_88{grid-column:2;display:flex;gap:var(--space-8);justify-content:flex-end;padding-top:var(--space-8)}._linkColumn_1c905_96{display:flex;flex-direction:column;gap:var(--space-2)}._columnTitle_1c905_102{color:var(--text-primary);font-size:.9rem;font-weight:700;margin:0 0 var(--space-2);text-transform:uppercase;letter-spacing:.05em}._footer_1c905_1 a{color:var(--text-secondary);text-decoration:none;font-weight:500;font-size:.88rem;transition:all var(--transition-fast);display:inline-flex;align-items:center}._footer_1c905_1 a:hover{color:var(--accent);transform:translate(2px)}._bottomBar_1c905_126{position:relative;width:100%;max-width:var(--max-width);margin:var(--space-6) auto 0;display:flex;align-items:center;justify-content:center}._copyright_1c905_136{margin:0;color:var(--text-muted);font-size:.85rem;display:flex;align-items:center;justify-content:center;gap:4px;text-align:center}._brand_1c905_27{color:var(--accent);font-weight:700}._heartIcon_1c905_152{color:var(--color-danger);margin:0 2px}._backToTop_1c905_157{position:absolute;right:0;display:inline-flex;align-items:center;gap:var(--space-2);padding:6px 14px;background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-full);color:var(--text-secondary);font-size:.8rem;font-weight:600;cursor:pointer;transition:all var(--transition-base)}._backToTop_1c905_157:hover{background:#ffffff1f;color:#fff;border-color:var(--accent);transform:translateY(-2px)}@media(max-width:768px){._footer_1c905_1{padding:0 var(--space-4) var(--space-6)}._footerInner_1c905_15{grid-template-columns:1fr;gap:var(--space-5);align-items:center;justify-items:center}._brandSection_1c905_27{grid-column:1;align-items:center;text-align:center;padding-top:0;justify-content:center;margin-top:-26px}._logoRow_1c905_39{flex-direction:column;align-items:center;gap:6px}._logoText_1c905_45{--logo-height: 52px}._brandMeta_1c905_51{flex-direction:column;align-items:center;gap:var(--space-1);justify-content:center;margin-top:6px}._linksGrid_1c905_88{grid-column:1;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4);text-align:center}._linkColumn_1c905_96{align-items:center;gap:var(--space-1)}._columnTitle_1c905_102{margin:0 0 var(--space-1);font-size:.78rem}._footer_1c905_1 a{font-size:.82rem}._bottomBar_1c905_126{flex-direction:column;gap:var(--space-3);text-align:center}._copyright_1c905_136{font-size:.78rem}._backToTop_1c905_157{position:static}}._container_e96gf_1{display:flex;flex-direction:column;gap:1rem;color:var(--text-primary);max-width:400px}._field_e96gf_9{display:flex;flex-direction:column;gap:.5rem}._field_e96gf_9 label{font-size:.9rem;opacity:.8}._textarea_e96gf_20{background:var(--bg-secondary);border:1px solid var(--border-primary);color:var(--text-primary);padding:.5rem;border-radius:4px;resize:vertical;font-family:inherit}._textarea_e96gf_20:hover{border-color:var(--border-secondary)}._textarea_e96gf_20:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-input-focus)}._input_e96gf_40{background:var(--bg-secondary);border:1px solid var(--border-primary);color:var(--text-primary);padding:.6rem;border-radius:4px}._input_e96gf_40:hover{border-color:var(--border-secondary)}._input_e96gf_40:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-input-focus)}._button_e96gf_58{background:var(--accent);color:var(--text-primary);border:none;padding:.7rem;border-radius:4px;cursor:pointer;font-weight:600;transition:opacity .2s}._button_e96gf_58:hover{opacity:.9}._button_e96gf_58:disabled{opacity:.5;cursor:not-allowed}._secondaryButton_e96gf_78{background:transparent;border:1px solid var(--border-primary);color:var(--text-primary);padding:.7rem;border-radius:4px;cursor:pointer;transition:background .2s,border-color .2s}._secondaryButton_e96gf_78:hover{background:#ffffff0d;border-color:var(--border-secondary)}._actions_e96gf_95{display:flex;gap:.5rem}._actions_e96gf_95 ._button_e96gf_58{flex:1}._hint_e96gf_104{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:4px;padding:.6rem;font-size:.85rem;line-height:1.5}._hint_e96gf_104 ._actions_e96gf_95{margin-top:.6rem}._link_e96gf_117{color:var(--accent);text-decoration:underline;font-weight:600}._link_e96gf_117:hover{opacity:.85}.top-progress-bar{position:fixed;top:0;left:0;right:0;height:3px;z-index:9999;overflow:hidden;pointer-events:none;background:transparent}.top-progress-bar:after{content:"";position:absolute;top:0;bottom:0;left:0;width:40%;border-radius:0 3px 3px 0;background:linear-gradient(90deg,transparent,var(--accent),var(--accent-light),transparent);animation:top-progress-slide 1.1s infinite ease-in-out}@keyframes top-progress-slide{0%{transform:translate(-100%)}to{transform:translate(280%)}}@media(prefers-reduced-motion:reduce){.top-progress-bar:after{animation:none;width:100%;border-radius:0}}._screen_1pca0_1{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;width:100%;background-color:var(--bg-secondary);color:var(--text-primary);text-align:center;padding:2rem}._icon_1pca0_14{font-size:4rem;color:var(--color-danger);margin-bottom:1rem}._title_1pca0_20{margin-bottom:1rem}._text_1pca0_24{color:var(--text-secondary);margin-bottom:2rem}._button_1pca0_29{padding:.8rem 1.5rem;background-color:var(--accent);color:var(--accent-text);border:none;border-radius:var(--radius-md);cursor:pointer;display:flex;align-items:center;gap:.5rem;font-size:1rem;transition:background-color .2s}._button_1pca0_29:hover{background-color:var(--accent-light)}._container_88bss_1{display:flex;flex-direction:column;gap:1rem;color:var(--text-primary)}._field_88bss_8{display:flex;flex-direction:column;gap:.5rem}._field_88bss_8 label{font-size:.9rem;opacity:.8}._input_88bss_19{background:var(--bg-secondary);border:1px solid var(--border-primary);color:var(--text-primary);padding:.6rem;border-radius:4px}._input_88bss_19:hover{border-color:var(--border-secondary)}._input_88bss_19:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-input-focus)}._actions_88bss_37{display:flex;gap:.5rem;justify-content:flex-end}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);border-radius:var(--radius-md);font-weight:var(--font-weight-medium);cursor:pointer;border:none;outline:none;font-family:inherit;position:relative;white-space:nowrap;font-size:var(--font-size-base);background:transparent;color:var(--text-primary);padding:var(--space-3) var(--space-6);min-height:44px;transition:background-color .15s ease,color .15s ease,transform .1s ease}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--accent-light);outline-offset:2px}.btn-primary{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-dark) 100%);color:var(--accent-text);box-shadow:0 4px 12px var(--accent-glow)}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--accent-light) 0%,var(--accent) 100%);transform:translateY(-1px);box-shadow:0 6px 16px var(--accent-glow)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:#ffffff14;border:1px solid var(--border-secondary);color:var(--text-primary)}.btn-secondary:hover:not(:disabled){background:#ffffff1f;border-color:#ffffff40}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:#ffffff14;color:var(--text-primary)}.btn-danger{background:var(--color-danger);color:var(--color-danger-text)}.btn-danger:hover:not(:disabled){background:var(--color-danger-dark)}.btn-sm{min-height:36px;padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);border-radius:var(--radius-sm)}.btn-lg{min-height:52px;padding:var(--space-4) var(--space-8);font-size:var(--font-size-md);border-radius:var(--radius-lg)}.btn-block{width:100%}.btn-loading{color:transparent;pointer-events:none}.btn-spinner{position:absolute;width:16px;height:16px;border:2px solid rgba(128,128,128,.35);border-top-color:var(--accent-text);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}._notice_1d75r_1{position:fixed;right:max(var(--space-4),env(safe-area-inset-right));bottom:max(var(--space-4),env(safe-area-inset-bottom));z-index:10000;display:flex;align-items:center;gap:var(--space-2);max-width:calc(100vw - 2 * var(--space-4));padding:var(--space-2-5) var(--space-3);border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--glass-bg);color:var(--text-secondary);box-shadow:0 4px 16px #00000029;font-family:var(--font-family);font-size:var(--font-size-xs);font-weight:400;line-height:1.5;pointer-events:none;animation:_appear_1d75r_1 2.6s ease both}._notice_1d75r_1 svg{color:var(--text-tertiary);flex-shrink:0}@keyframes _appear_1d75r_1{0%{opacity:0;transform:translateY(4px)}8%,88%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(2px)}}@media(prefers-reduced-motion:reduce){._notice_1d75r_1{animation:none}}:root{--accent: #6d5dfc;--logo-ink: #140f15;--accent-light: #897cff;--accent-lighter: #b3a8ff;--accent-dark: #5646db;--accent-text: #ffffff;--accent-subtle: rgba(109, 93, 252, .12);--accent-glow: rgba(109, 93, 252, .18);--accent-h: 245;--accent-s: 96%;--accent-l: 68%;--color-danger: #ef4444;--color-error: var(--color-danger);--color-danger-dark: #dc2626;--color-danger-text: #ffffff;--color-success: #10b981;--color-success-text: #ffffff;--color-warning: #f59e0b;--color-warning-text: #17171c;--color-info: #3b82f6;--color-info-text: #ffffff;--badge-info-bg: var(--accent);--badge-info-text: var(--accent-text);--palette-gold: #d8b56b;--palette-silver: #c3c9d1;--palette-bronze: #c08d5f;--secondary-h: 180;--secondary-s: 85%;--secondary-l: 50%;--accent-blue: hsl(var(--secondary-h), var(--secondary-s), var(--secondary-l));--accent-blue-light: hsl(var(--secondary-h), var(--secondary-s), 70%);--bg-main: #0c0d12;--bg-primary: #13151d;--bg-secondary: #13151d;--bg-tertiary: #191c27;--bg-elevated: #202433;--header-bg: rgba(12, 13, 18, .85);--text-primary: #ffffff;--text-secondary: #b4b4bd;--text-tertiary: #8f8f98;--text-muted: #b4b4bd;--border-primary: rgba(255, 255, 255, .08);--border-secondary: rgba(255, 255, 255, .12);--border-accent: hsla(var(--accent-h), var(--accent-s), var(--accent-l), .3);--border: var(--border-primary);--control-border: #4b5570;--control-border-hover: #647093;--control-text: #ffffff;--card-radius: var(--radius-lg);--border-light: var(--border-secondary);--danger-color: var(--color-danger);--shadow-input-focus: 0 0 0 2px var(--accent-subtle);--shadow-focus: 0 0 0 2px var(--accent-subtle);--glass-bg: rgba(20, 20, 22, .95);--glass-border: var(--border-primary);--glass-highlight: rgba(255, 255, 255, .05);--glass-shadow: 0 8px 32px 0 rgba(0, 0, 0, .36);--bg-hover: rgba(255, 255, 255, .08);--bg-hover-strong: rgba(255, 255, 255, .1);--bg-overlay: rgba(0, 0, 0, .55);--bg-overlay-strong: rgba(0, 0, 0, .6);--bg-overlay-heavy: rgba(0, 0, 0, .7);--bg-scrim: rgba(10, 10, 12, .55);--bg-scrim-strong: rgba(10, 10, 12, .8);--bg-dark: #0a0a0c;--bg-black: #000000;--border-strong: rgba(255, 255, 255, .14);--track-bg: rgba(255, 255, 255, .1);--track-buffered: rgba(255, 255, 255, .25);--shimmer-highlight: rgba(255, 255, 255, .07);--bg-selected: rgba(255, 255, 255, .06);--shadow-scrim: 0 4px 16px rgba(0, 0, 0, .45);--shadow-panel: 0 12px 32px rgba(0, 0, 0, .5);--color-danger-bg: rgba(153, 42, 42, .9);--font-family: "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-size-2xs: .4375rem;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-md: 1.125rem;--font-size-lg: 1.5rem;--font-size-xl: 1.875rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--space-px: 1px;--space-2px: 2px;--space-1: .25rem;--space-1-5: .375rem;--space-2: .5rem;--space-2-5: .625rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--size-22: 22px;--size-42: 42px;--size-44: 44px;--size-48: 48px;--size-34: 34px;--size-36: 36px;--size-140: 140px;--size-180: 180px;--size-220: 220px;--size-250: 250px;--size-440: 440px;--size-480: 480px;--size-720: 720px;--size-84: 84px;--size-52: 52px;--size-90: 90px;--size-240: 240px;--size-320: 320px;--size-420: 420px;--size-900: 900px;--layout-asmr-max-width: 1400px;--layout-page-offset: 120px;--layout-player-mobile: 175px;--radius-xs: 6px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 20px;--radius-xl: 28px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 12px 32px -4px rgba(0, 0, 0, .6);--shadow-active: 0 0 0 1px var(--border-accent), 0 8px 24px -4px rgba(0, 0, 0, .5);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .4), 0 10px 10px -5px rgba(0, 0, 0, .2);--shadow-thumb: 0 0 5px rgba(0, 0, 0, .5);--blur-sm: 4px;--blur-md: 6px;--blur-lg: 12px;--z-base: 1;--z-dropdown: 100;--z-sticky: 200;--z-drawer: 300;--z-sidebar: 500;--z-header: 400;--z-modal: 600;--z-popover: 700;--z-toast: 800;--z-overlay: 900;--header-height: 80px;--max-width: 1600px;--sidebar-width: 280px;--ease-spring: cubic-bezier(.175, .885, .32, 1.275);--ease-smooth: cubic-bezier(.4, 0, .2, 1);--ease-emphasized: cubic-bezier(.32, .72, 0, 1);--transition-fast: .2s var(--ease-smooth);--transition-base: .3s var(--ease-smooth);--transition-normal: .4s var(--ease-smooth);--transition-slow: .5s var(--ease-smooth);--transition-emphasized: .42s var(--ease-emphasized);--transition-quick: .09s var(--ease-smooth);--duration-shimmer: 1.6s;--duration-spin: .9s;--focus-ring-color: var(--accent-light);--focus-ring-glow: 0 0 0 3px rgba(109, 93, 252, .35);--focus-scale: scale(1.05)}@media(min-width:1920px){:root{--font-size-base: 1.125rem;--max-width: 2000px}}html[data-theme=mochi]{--accent: #e3e1ee;--accent-light: #f4f3fa;--accent-lighter: #ffffff;--accent-dark: #b3b1c6;--accent-text: #17171c;--accent-subtle: rgba(227, 225, 238, .12);--accent-glow: rgba(227, 225, 238, 0);--accent-h: 248;--accent-s: 18%;--accent-l: 89%;--bg-main: #131316;--bg-primary: #1b1b1f;--bg-secondary: #1b1b1f;--bg-tertiary: #232329;--bg-elevated: #2b2b32;--header-bg: rgba(19, 19, 22, .88);--text-primary: #f2f2f5;--text-secondary: #a9a9b3;--text-tertiary: #85858f;--text-muted: #a9a9b3;--border-primary: #2c2c33;--border-secondary: #3a3a43;--control-border: #4c4c59;--control-border-hover: #666675;--control-text: #f2f2f5;--glass-bg: rgba(27, 27, 31, .96);--badge-info-bg: var(--accent);--badge-info-text: var(--accent-text);--shadow-sm: none;--shadow-md: none;--shadow-lg: none;--shadow-active: 0 0 0 1px var(--border-secondary);--shadow-xl: none;--focus-ring-color: var(--accent);--focus-ring-glow: 0 0 0 3px rgba(227, 225, 238, .25)}html[data-theme=sakura]{--accent: #d9a3d9;--accent-light: #eccbec;--accent-lighter: #f9e8f9;--accent-dark: #a978a9;--accent-text: #fff;--accent-subtle: rgba(217, 163, 217, .12);--accent-glow: rgba(217, 163, 217, 0);--accent-h: 300;--accent-s: 45%;--accent-l: 74%;--bg-main: #141116;--bg-primary: #1c171e;--bg-secondary: #1c171e;--bg-tertiary: #241e26;--bg-elevated: #2e262f;--header-bg: rgba(20, 17, 22, .88);--text-primary: #f3eaf3;--text-secondary: #b3a3b5;--text-tertiary: #8d7c8f;--text-muted: #b3a3b5;--border-primary: #322a34;--border-secondary: #403640;--control-border: #524458;--control-border-hover: #6b5872;--control-text: #f3eaf3;--glass-bg: rgba(28, 23, 30, .96);--badge-info-bg: var(--accent-dark);--badge-info-text: #ffffff;--shadow-sm: none;--shadow-md: none;--shadow-lg: none;--shadow-active: 0 0 0 1px var(--border-secondary);--shadow-xl: none;--focus-ring-color: var(--accent);--focus-ring-glow: 0 0 0 3px rgba(217, 163, 217, .25)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;color-scheme:dark;scrollbar-gutter:stable;overflow-x:hidden;overflow-x:clip;max-width:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%}html:has(:fullscreen),html:has(:-webkit-full-screen){scrollbar-gutter:auto}body{margin:0;padding:0;font-family:var(--font-family);background:var(--bg-main);color:var(--text-primary);line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;overflow-x:clip;max-width:100%;color-scheme:dark}html,body,.app-container,.posterWrapper,.dot,.genreTag{--darkreader-inline-bgcolor: none !important;--darkreader-inline-bgimage: none !important;--darkreader-inline-bordercolor: none !important;--darkreader-inline-color: none !important;background-color:transparent}body{overflow-x:hidden;overflow-x:clip}body:before{display:none!important}h1,h2,h3,h4,h5,h6{margin:0;font-weight:var(--font-weight-semibold);letter-spacing:-.02em}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--focus-ring-color)!important;outline-offset:3px!important;box-shadow:var(--focus-ring-glow)!important;transition:outline-offset var(--transition-fast),transform var(--transition-fast)}a:focus:not(:focus-visible),button:focus:not(:focus-visible),input:focus:not(:focus-visible),select:focus:not(:focus-visible),[tabindex]:focus:not(:focus-visible){outline:none!important;box-shadow:none!important}a,button,input,select,textarea,[tabindex]{-webkit-tap-highlight-color:transparent}@media(min-width:1200px){a:focus-visible,button:focus-visible{transform:var(--focus-scale)}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.text-gradient{background:linear-gradient(135deg,#fff,#a5a5a5);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.text-gradient-accent{background:linear-gradient(135deg,var(--accent-light) 0%,var(--accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.app-container{display:flex;flex-direction:column;min-height:100vh}main{flex:1;width:100%;max-width:var(--max-width);margin:0 auto;padding:0 var(--space-8) var(--space-16);position:relative;z-index:1}.main-content{padding-top:var(--header-height)}@media(max-width:1024px){.main-content{padding-top:calc(var(--header-height) + 52px)}}@media(max-width:848px){main{padding:0 var(--space-4) var(--space-12)}.main-content{padding-top:116px}}.badge{display:inline-flex;align-items:center;gap:var(--space-1-5);padding:var(--space-1) var(--space-2-5);border-radius:var(--radius-full);border:1px solid var(--border-primary);background:var(--bg-tertiary);color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);white-space:nowrap}.badge-primary{border-color:color-mix(in srgb,var(--accent) 35%,transparent);background:var(--accent-subtle);color:var(--accent-light)}.badge-secondary{border-color:var(--border-secondary);background:var(--bg-secondary);color:var(--text-secondary)}.badge-danger{border-color:color-mix(in srgb,var(--color-danger) 35%,transparent);background:color-mix(in srgb,var(--color-danger) 12%,transparent);color:var(--color-danger)}.section-title{font-size:1.75rem;font-weight:800;margin-bottom:var(--space-8);color:var(--text-primary);letter-spacing:-.02em;line-height:1}.section-eyebrow{display:flex;align-items:center;gap:8px;font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-light);margin:0;line-height:1.4}.section-eyebrow:before{content:"";width:18px;height:3px;border-radius:999px;background:linear-gradient(90deg,var(--accent) 0%,var(--accent-light) 100%);box-shadow:0 0 10px var(--accent-glow);flex:none}.title-stack{display:flex;flex-direction:column;gap:4px;min-width:0;justify-content:center}html[data-theme=mochi] .section-eyebrow,html[data-theme=sakura] .section-eyebrow{color:var(--accent)}@media(max-width:768px){.section-title{font-size:1.5rem;margin-bottom:var(--space-6)}}.grid-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-6);width:100%}@media(max-width:1024px){.grid-container{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-4)}}@media(max-width:768px){.grid-container{grid-template-columns:repeat(3,1fr);gap:var(--space-2)}}@media(max-width:480px){.grid-container{grid-template-columns:repeat(3,1fr);gap:8px}}footer{text-align:center;padding:var(--space-12);color:var(--text-muted);border-top:1px solid var(--border-primary);margin-top:var(--space-16);background:var(--bg-secondary)}footer a{color:var(--accent);text-decoration:none;font-weight:var(--font-weight-medium);transition:color var(--transition-fast)}footer a:hover{color:var(--accent-light);text-shadow:0 0 8px var(--accent-glow)}select{appearance:none;-webkit-appearance:none;cursor:pointer;background-color:var(--bg-tertiary)!important;border-color:var(--border-primary)!important}select:hover{background-color:var(--bg-tertiary)!important;border-color:var(--border-secondary)!important}select:focus{background-color:var(--bg-tertiary)!important;border-color:var(--accent)!important;outline:none}select:active{background-color:var(--bg-tertiary)!important}body.low-end{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol!important;--transition-fast: 0s !important;--transition-base: 0s !important;--transition-normal: 0s !important;--transition-slow: 0s !important;scroll-behavior:auto!important}body.low-end,body.low-end *{transition:none!important;animation:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:none!important;text-shadow:none!important}body.low-end:before{display:none!important}body.low-end .text-gradient,body.low-end .text-gradient-accent{background:none!important;-webkit-background-clip:initial!important;-webkit-text-fill-color:initial!important;color:var(--text-primary)!important}body.low-end .text-gradient-accent{color:var(--accent)!important}body.low-end [class*=banner],body.low-end [class*=bannerContainer],body.low-end [class*=bannerOverlay],body.low-end [class*=heroSection]{background-image:none!important;background-color:var(--bg-main)!important;min-height:auto!important}body.low-end [class*=infoGlass]{background:var(--bg-secondary)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;border:1px solid var(--border-primary)!important;box-shadow:none!important}.skeleton{position:relative;overflow:hidden;background-color:var(--bg-tertiary)}.skeleton:after{content:"";position:absolute;inset:0;transform:translate(-100%);background-image:linear-gradient(90deg,#fff0 0,#ffffff0d 20%,#ffffff1f 60%,#fff0);animation:skeleton-wave 1.8s infinite ease-in-out}@keyframes skeleton-wave{to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.page-container{width:100%;animation:page-fade-in var(--transition-smooth)}@keyframes page-fade-in{0%{opacity:0}to{opacity:1}}.error-message{padding:var(--space-4);text-align:center;color:var(--color-danger)}._gate_rmllo_1{min-height:100dvh;display:grid;place-content:center;padding:var(--space-5);background:var(--bg-primary);color:var(--text-primary)}._panel_rmllo_10{width:min(100%,440px);padding:var(--space-5);border:1px solid var(--border-secondary);border-radius:var(--radius-lg);background:var(--bg-tertiary)}._form_rmllo_18{display:flex;flex-wrap:wrap;align-items:end;gap:var(--space-3);margin:var(--space-4) 0}._form_rmllo_18 h3,._form_rmllo_18 p{flex-basis:100%}._field_rmllo_31{display:flex;flex-direction:column;gap:var(--space-2);max-width:100%}._field_rmllo_31 input,._field_rmllo_31 select{padding:var(--space-3);color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-secondary);border-radius:var(--radius-md);min-width:0}._avatarRow_rmllo_48{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-4)}._avatarRow_rmllo_48>:first-child{width:72px;height:72px}._uploadButton_rmllo_60{position:relative;display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid var(--border-secondary);border-radius:var(--radius-md);color:var(--text-primary);background:var(--bg-primary);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}._uploadButton_rmllo_60:hover{background:var(--bg-elevated);border-color:var(--accent)}._uploadButton_rmllo_60:focus-within{outline:2px solid var(--accent);outline-offset:2px}._fileInput_rmllo_89{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}._fileInput_rmllo_89:disabled{cursor:not-allowed}._profileList_rmllo_102{list-style:none;padding:0}._profileList_rmllo_102 li{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border-secondary)}._smallAvatar_rmllo_115{width:36px;height:36px;flex-shrink:0}._profileName_rmllo_120{flex:1;min-width:0;overflow-wrap:anywhere}