@serifpersia/dango 3.8.6 → 3.8.8
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.
- package/README.md +1 -1
- package/client/dist/assets/{AnimeCard-DWKuN1cB.js → AnimeCard-G3oigO8B.js} +1 -1
- package/client/dist/assets/{AnimeInfo-BvNA7-QZ.js → AnimeInfo-CR4XFD0Q.js} +1 -1
- package/client/dist/assets/{AnimeInfoPage-BGg76ExO.js → AnimeInfoPage-DbT2RS0J.js} +2 -2
- package/client/dist/assets/{Asmr-C8pvBHUO.js → Asmr-BaXYabXN.js} +1 -1
- package/client/dist/assets/{AsmrPopup-BV5rbWXg.js → AsmrPopup-6ky2U3uz.js} +1 -1
- package/client/dist/assets/{AsmrResetProgressModal-Cs5wzgRU.js → AsmrResetProgressModal-DXwHSqwf.js} +1 -1
- package/client/dist/assets/Home-ZHM84CD8.js +1 -0
- package/client/dist/assets/{Home-grKghNM9.css → Home-ujV6ObHi.css} +1 -1
- package/client/dist/assets/{Insights-RSd-4osN.js → Insights-C6rMfz5x.js} +1 -1
- package/client/dist/assets/{LibraryListPage-CHHjw4Jz.js → LibraryListPage-XHeMv9aN.js} +1 -1
- package/client/dist/assets/{ListeningList-DkgZaFkg.js → ListeningList-Dm_owBjG.js} +1 -1
- package/client/dist/assets/{Manga-BAI78oiq.js → Manga-BmHoV3yQ.js} +1 -1
- package/client/dist/assets/{MangaInfoPage-CPYfuLAg.js → MangaInfoPage-Blz86W7a.js} +1 -1
- package/client/dist/assets/{MangaReadPage-DvznQu_2.js → MangaReadPage-DzEhRrLW.js} +1 -1
- package/client/dist/assets/{MangaResetProgressModal-BPci6zSM.js → MangaResetProgressModal-DdnI3zEg.js} +1 -1
- package/client/dist/assets/{Mature-Cob1Zmtu.js → Mature-DGDC_8w6.js} +1 -1
- package/client/dist/assets/{MatureConsentModal-BrKd4CBZ.js → MatureConsentModal-BXFvhDf0.js} +1 -1
- package/client/dist/assets/{MediaCard-CXZJ8wr7.js → MediaCard-DW8QbvWe.js} +1 -1
- package/client/dist/assets/{OptionListMenu-ClUReC8J.js → OptionListMenu-Dxx8rcuO.js} +1 -1
- package/client/dist/assets/Player-CQy7jQbB.js +56 -0
- package/client/dist/assets/{PlayerProvider-DzaMVhFX.js → PlayerProvider-BoJyuLEn.js} +1 -1
- package/client/dist/assets/{PlayerSettings-DnFjoot8.js → PlayerSettings-DSq0bKT6.js} +1 -1
- package/client/dist/assets/{QueueOptionsButton-BdAz_Gn-.js → QueueOptionsButton-B2p9VIz2.js} +1 -1
- package/client/dist/assets/{QueueRail-BMLyoeAe.js → QueueRail-BWcF0bqm.js} +1 -1
- package/client/dist/assets/{ReadingList-B62vvh4_.js → ReadingList-CKJ1Lt3H.js} +1 -1
- package/client/dist/assets/{ResetProgressModal-CXDZfCap.js → ResetProgressModal-BpNG6BGY.js} +1 -1
- package/client/dist/assets/{Search-CfNUqNi0.js → Search-D5OkKFDj.js} +1 -1
- package/client/dist/assets/Settings-_URnBHKL.js +21 -0
- package/client/dist/assets/{SkeletonGrid-CmHR4_Fc.js → SkeletonGrid-BVWffnlT.js} +1 -1
- package/client/dist/assets/{Trackers-BnvqfI9T.js → Trackers-D4BC2YOO.js} +1 -1
- package/client/dist/assets/Tv-B0-XYYdF.js +4 -0
- package/client/dist/assets/{Tv-D3vXCsSC.css → Tv-DT3m2nZs.css} +1 -1
- package/client/dist/assets/{TvInfo-6fZeQsh1.js → TvInfo-FWR5_kso.js} +1 -1
- package/client/dist/assets/{TvPopup-CIMgMYf0.js → TvPopup-JKZPbL5t.js} +1 -1
- package/client/dist/assets/{TvSearch-DGG4xRiv.js → TvSearch-Gddgkz5g.js} +1 -1
- package/client/dist/assets/{TvWatchlist-B6DLkxqi.js → TvWatchlist-BTTqu23j.js} +1 -1
- package/client/dist/assets/{VirtualKeyboard-D8TvygKk.js → VirtualKeyboard-BD5VOYcJ.js} +1 -1
- package/client/dist/assets/{WatchAlong-ivfsMGhR.js → WatchAlong-Czm3Pr1E.js} +1 -1
- package/client/dist/assets/{WatchAlongPanel-CvUFCFll.js → WatchAlongPanel-Dsmcqrjh.js} +1 -1
- package/client/dist/assets/{Watchlist-dsmIAzsH.js → Watchlist-BMRAdzMF.js} +1 -1
- package/client/dist/assets/index-Bi-DGtzC.js +178 -0
- package/client/dist/assets/index-RwPVmyxh.css +1 -0
- package/client/dist/assets/{libraryInvalidation-CHlEJU7b.js → libraryInvalidation-B5vX-vJv.js} +1 -1
- package/client/dist/assets/{playbackCompletion-DB_c1lex.js → playbackCompletion-Dz3OK72-.js} +1 -1
- package/client/dist/assets/{useAnimeInfoData-DrWgr6PK.js → useAnimeInfoData-CQTVAjpz.js} +1 -1
- package/client/dist/assets/{useMangaLibrary-sGh96sdT.js → useMangaLibrary-i1RAEkNy.js} +1 -1
- package/client/dist/assets/{useMangaPopup-CWDMFbSD.js → useMangaPopup-BMXrc7pH.js} +1 -1
- package/client/dist/assets/{useProviders-DphwZjpZ.js → useProviders-DbKN3TWq.js} +1 -1
- package/client/dist/assets/{useTv-DatZ0tof.js → useTv-4SqDfx-O.js} +1 -1
- package/client/dist/assets/{useTvLibrary-efdd6TIy.js → useTvLibrary-yhqRv3U7.js} +1 -1
- package/client/dist/assets/{useWatchAlongPlayer-CRf0zHFj.js → useWatchAlongPlayer-BvcoBlQi.js} +3 -3
- package/client/dist/assets/useWatchAlongPlayer-CkSxIqXL.css +1 -0
- package/client/dist/index.html +2 -2
- package/package.json +2 -2
- package/server/dist/config.js +1 -1
- package/server/dist/server.js +146 -146
- package/server/package.json +1 -1
- package/client/dist/assets/Home-C3k84yqn.js +0 -1
- package/client/dist/assets/Player-7iroOb7T.js +0 -56
- package/client/dist/assets/Settings-CxC4k-nB.js +0 -21
- package/client/dist/assets/Tv-Dht8h84V.js +0 -4
- package/client/dist/assets/index-Ej7BS74s.css +0 -1
- package/client/dist/assets/index-npJ4Ahxa.js +0 -178
- package/client/dist/assets/useWatchAlongPlayer-CzQyysyL.css +0 -1
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{u as t,d as y,A as V,h as g,S as Xe,g as ns,q as C,o as rs,p as ss,a as os,T as Se}from"./vendor-core-DfaOB3Rn.js";import{h as Un,p as z,t as pt,ac as as,a6 as is,S as On,e as ls,ak as cs,J as br,a8 as us,B as cn}from"./index-npJ4Ahxa.js";import{P as ds,a as ms,b as bs,F as hs,f as fs,c as vs}from"./PlayerProvider-DzaMVhFX.js";import{u as ps}from"./vendor-query-BBT5_sHx.js";import{I as he}from"./vendor-icons-DrybRNxP.js";import{p as Hn,M as gs,z as pr,f as Wn,c as ys,C as Ss,a as _s,P as Ts,b as un,u as Cs,i as ks,j as Es,n as Ns,h as Is,k as xs,m as As,l as Ls,s as qn,d as ws,e as Bs,g as Ps,r as Ms,o as Ae,A as Rs,t as zs,E as $s,w as Ds,x as Os,v as ie,y as qs,R as Vs,q as Fs}from"./useWatchAlongPlayer-CRf0zHFj.js";import{S as Us,O as Vn,a as Hs,A as Ws,b as Ks}from"./OptionListMenu-ClUReC8J.js";import{M as Qs}from"./MatureConsentModal-BrKd4CBZ.js";import{u as Ys}from"./useProviders-DphwZjpZ.js";import{e as js,f as Gs,g as Xs,d as Js,c as Zs,h as eo,i as to}from"./useTvLibrary-efdd6TIy.js";import{l as no,s as ro,i as dn,h as hr}from"./playbackCompletion-DB_c1lex.js";import{u as so}from"./useIsMobile-Dvx1uJ82.js";import{S as oo}from"./SynopsisText-B3Sa5pRv.js";import{W as ao}from"./WatchAlongPanel-CvUFCFll.js";import"./libraryInvalidation-CHlEJU7b.js";const io="_fullscreenFlat_10bzs_1",lo="_timeDisplay_10bzs_12",co="_bottomControls_10bzs_16",uo="_leftControls_10bzs_20",mo="_rightControls_10bzs_21",bo="_controlBtn_10bzs_25",ho="_controlsOverlay_10bzs_32",fo="_hidden_10bzs_52",vo="_topControls_10bzs_58",po="_backBtn_10bzs_78",go="_videoTitleInfo_10bzs_98",yo="_animeTitle_10bzs_104",So="_episodeLabel_10bzs_112",_o="_speedBoostBadge_10bzs_119",To="_progressBarContainer_10bzs_165",Co="_progressBar_10bzs_165",ko="_thumb_10bzs_184",Eo="_bufferedBar_10bzs_202",No="_watchedBar_10bzs_212",Io="_scrubbing_10bzs_237",xo="_timeBubble_10bzs_241",Ao="_bottomControlsRow_10bzs_255",Lo="_nextEpisodeBtn_10bzs_278",wo="_active_10bzs_340",Bo="_settingsPanel_10bzs_352",Po="_settingsHeader_10bzs_371",Mo="_settingsBackBtn_10bzs_379",Ro="_settingsTitle_10bzs_397",zo="_settingsContent_10bzs_408",$o="_currentValue_10bzs_417",Do="_menuItem_10bzs_423",Oo="_menuNote_10bzs_456",qo="_loadingOverlay_10bzs_465",Vo="_loadingDots_10bzs_476",Fo="_dot_10bzs_481",Uo="_bufferingOverlay_10bzs_510",Ho="_bufferingSpinner_10bzs_519",o={fullscreenFlat:io,timeDisplay:lo,bottomControls:co,leftControls:uo,rightControls:mo,controlBtn:bo,controlsOverlay:ho,hidden:fo,topControls:vo,backBtn:po,videoTitleInfo:go,animeTitle:yo,episodeLabel:So,speedBoostBadge:_o,progressBarContainer:To,progressBar:Co,thumb:ko,bufferedBar:Eo,watchedBar:No,scrubbing:Io,timeBubble:xo,bottomControlsRow:Ao,nextEpisodeBtn:Lo,active:wo,settingsPanel:Bo,settingsHeader:Po,settingsBackBtn:Mo,settingsTitle:Ro,settingsContent:zo,currentValue:$o,menuItem:Do,menuNote:Oo,loadingOverlay:qo,loadingDots:Vo,dot:Fo,bufferingOverlay:Uo,bufferingSpinner:Ho},Wo=({player:s,visible:h,settingsOpen:O,onOpenSettings:w,onCloseSettings:R,hasSubtitles:k,isSubtitleActive:I,subtitles:d,onSubtitleChange:i,showNextEpisodeButton:S,onNextEpisode:r,isTheaterMode:B,onTheaterModeToggle:fe,timeLabelRef:J})=>{const{state:m,actions:ke}=s,Le=()=>{if(I){i(-1);return}let ve=null;try{ve=z.getItem("tvLastSubtitle")}catch{}i(Hn(d,{lastKey:ve,enabled:!0}))};return t("div",{className:`${o.controlsOverlay} ${h?"":o.hidden}`,"data-speed-boost-ignore":"true",style:{pointerEvents:"none",background:"none",justifyContent:"flex-end"},children:t("div",{className:o.bottomControls,onClick:ve=>ve.stopPropagation(),children:[t(ds,{classes:{container:o.progressBarContainer,scrubbing:o.scrubbing,timeBubble:o.timeBubble,bar:o.progressBar,buffered:o.bufferedBar,watched:o.watchedBar,thumb:o.thumb},timeLabelRef:J}),t("div",{className:o.bottomControlsRow,children:[t("div",{className:o.leftControls,children:[t(ms,{className:o.controlBtn}),t(bs,{buttonClassName:o.controlBtn,onExpandedChange:ke.setShowVolumeSlider}),t("span",{className:o.timeDisplay,ref:J,children:[Un(0)," / ",Un(m.duration)]})]}),t("div",{className:o.rightControls,children:[S&&t("button",{className:o.nextEpisodeBtn,onClick:r,title:"Play next episode",children:"Next EP"}),k&&t("button",{className:`${o.controlBtn} ${I?o.active:""}`,onClick:Le,"aria-label":I?"Turn subtitles off":"Turn subtitles on",children:t(he,{name:"closed-captioning"})}),t("button",{className:`${o.controlBtn} ${O?o.active:""}`,onClick:()=>O?R():w(),"aria-label":"Settings",children:t(he,{name:"cog"})}),t("button",{className:`${o.controlBtn} ${B?o.active:""}`,onClick:ve=>{ve.stopPropagation(),fe()},title:B?"Exit Theater Mode":"Theater Mode","aria-label":B?"Exit Theater Mode":"Theater Mode",children:t(he,{name:"tv"})}),t(hs,{className:o.controlBtn})]})]})]})})},mn=-6e4,Fn=6e4,fr=500,Ko=({classes:s,delayMs:h,onDelayChange:O})=>{const[w,R]=y(null),k=w??h,I=V(O);I.current=O;const d=V(h);d.current=h;const i=V(null);i.current=w,g(()=>{R(null)},[h]),g(()=>()=>{const B=i.current;B!==null&&B!==d.current&&I.current(B)},[]);const S=B=>{d.current=B,i.current=null,I.current(B),R(null)},r=B=>{const fe=i.current??d.current,J=Math.max(mn,Math.min(Fn,fe+B));S(J)};return t(Xe,{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(-fr),"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(fr),"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:()=>S(0),disabled:k===0,"aria-label":"Reset subtitle timing",style:{flex:1,justifyContent:"center"},children:t("span",{children:"Reset"})})]}),t(gs,{label:"Subtitle timing",display:pr(k),min:mn,max:Fn,step:100,value:k,percent:(k-mn)/(Fn-mn)*100,onChange:B=>{const fe=Math.round(B);i.current=fe,R(fe)},onCommit:()=>{const B=i.current;B!==null&&S(B)}}),t("div",{className:s.note,children:"Positive delays subtitles (show later). Negative shows them earlier. 0.0s is default."})]})},Qo=({view:s,onSelectView:h,onClose:O,player:w,onSubtitleStyleChange:R,streams:k,resolutionIdx:I,onResolutionChange:d,hasSubtitles:i,subtitles:S,selectedSubtitle:r,isSubtitleActive:B,onSubtitleChange:fe,audioTracks:J,selectedAudioTrack:m,onAudioTrackChange:ke,videoDelayEnabled:Le,onVideoDelayToggle:ve,videoDelayMs:pe,onVideoDelayChange:T,onCalibrate:gt,subtitleDelayMs:Je,onSubtitleDelayChange:E,ambientSettings:U,onAmbientChange:Q})=>{const{state:le}=w,yt=()=>t(Xe,{children:[k.length>1&&t("button",{className:o.menuItem,onClick:()=>h("resolution"),children:[t("span",{children:"Resolution"}),t("span",{className:o.currentValue,children:k[I]?.quality||"Auto"})]}),i&&t("button",{className:o.menuItem,onClick:()=>h("subtitles"),children:[t("span",{children:"Subtitles"}),t("span",{className:o.currentValue,children:B?S[r]?.label||S[r]?.language:"Off"})]}),i&&t("button",{className:o.menuItem,onClick:()=>h("subtitle-style"),children:[t("span",{children:"Subtitle Style"}),t("span",{className:o.currentValue,children:[le.subtitleFontSize.toFixed(1),"x · ",le.subtitlePosition]})]}),i&&t("button",{className:o.menuItem,onClick:()=>h("subtitle-timing"),children:[t("span",{children:"Subtitle Timing"}),t("span",{className:o.currentValue,children:pr(Je)})]}),J.length>0&&t("button",{className:o.menuItem,onClick:()=>h("audio"),children:[t("span",{children:"Audio Track"}),t("span",{className:o.currentValue,children:J[m]?.label||J[m]?.language})]}),t("button",{className:o.menuItem,onClick:()=>h("av-sync"),children:[t("span",{children:"A/V Sync"}),t("span",{className:o.currentValue,children:Le?`${pe}ms`:"Off"})]}),U&&Q&&t("button",{className:o.menuItem,onClick:()=>h("ambient"),children:[t("span",{children:"Ambient Light"}),t("span",{className:o.currentValue,children:U.enabled?"On":"Off"})]})]}),we=()=>t(Vn,{classes:{item:o.menuItem,active:o.active},options:k.map((x,se)=>({key:String(se),label:x.quality,selected:se===I})),onSelect:x=>d(Number(x))}),Ze=()=>t(Vn,{classes:{item:o.menuItem,active:o.active},options:[{key:"off",label:"Off",selected:!B},...S.map((x,se)=>({key:String(se),label:x.label||x.language,selected:se===r}))],onSelect:x=>fe(x==="off"?-1:Number(x))}),te=()=>t(Hs,{classes:{item:o.menuItem,active:o.active},values:{fontSize:le.subtitleFontSize,position:le.subtitlePosition,bgOpacity:le.subtitleBgOpacity,bgColor:le.subtitleBgColor,textColor:le.subtitleTextColor,edge:le.subtitleEdge,bold:le.subtitleBold},onChange:R}),St=()=>t(Ko,{classes:{item:o.menuItem,active:o.active,note:o.menuNote},delayMs:Je,onDelayChange:x=>E?.(x)}),st=()=>t(Vn,{classes:{item:o.menuItem,active:o.active},options:J.map((x,se)=>({key:String(se),label:x.label||x.language,selected:se===m})),onSelect:x=>ke(Number(x))}),Be=()=>t(Ws,{classes:{item:o.menuItem,active:o.active,note:o.menuNote},enabled:Le,delayMs:pe,onToggle:x=>ve?.(x),onDelayChange:x=>T?.(x),onCalibrate:gt}),j=()=>U&&Q?t(Ks,{classes:{item:o.menuItem,active:o.active,note:o.menuNote},values:U,onChange:Q}):null;return t("div",{"data-speed-boost-ignore":"true",onClick:x=>x.stopPropagation(),children:t(Us,{classes:{panel:o.settingsPanel,header:o.settingsHeader,backBtn:o.settingsBackBtn,title:o.settingsTitle,content:o.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"?O():h("main"),children:[s==="main"&&yt(),s==="resolution"&&we(),s==="subtitles"&&Ze(),s==="subtitle-style"&&te(),s==="subtitle-timing"&&St(),s==="audio"&&st(),s==="av-sync"&&Be(),s==="ambient"&&j()]})})},Yo=({player:s,title:h,episodeLabel:O,server:w,audioTracks:R,selectedAudioTrack:k,onAudioTrackChange:I,subtitles:d,selectedSubtitle:i,onSubtitleChange:S,streams:r,resolutionIdx:B,onResolutionChange:fe,onBack:J,children:m,videoDelayEnabled:ke=!1,onVideoDelayToggle:Le,videoDelayMs:ve=0,onVideoDelayChange:pe,onCalibrateAvSync:T,subtitleDelayMs:gt=0,onSubtitleDelayChange:Je,showNextEpisodeButton:E=!1,onNextEpisode:U,isLoading:Q=!1,isTheaterMode:le,onTheaterModeToggle:yt,ambientSettings:we,onAmbientChange:Ze})=>{const{state:te,refs:St,actions:st}=s,Be=St.videoRef,{subtitleFontSize:j,subtitlePosition:x,subtitleBgOpacity:se,subtitleBgColor:ce,subtitleTextColor:Pe,subtitleEdge:Me,subtitleBold:ne}=te,[Ve,et]=y(null),Fe=V(null),[ot,Ee]=y(0);g(()=>{const ae=Be.current;if(!ae)return;const _e=()=>Ee(ae.clientHeight||0);_e();const ge=new ResizeObserver(_e);return ge.observe(ae),()=>ge.disconnect()},[Be]);const _t=st.setSubtitleStyle;g(()=>{const ae="tv-player-subtitle-style";let _e=document.getElementById(ae);_e||(_e=document.createElement("style"),_e.id=ae,document.head.appendChild(_e));const ge={fontSize:j,position:x,bgOpacity:se,bgColor:ce,textColor:Pe,edge:Me,bold:ne},Z=Be.current,Ot=Wn(j,ot||Z?.clientHeight||720);if(_e.textContent=ys({...ge,fontSize:Ot}),Z){const lt=()=>{const L=Number(x);return isNaN(L)?0:Math.max(0,Math.min(100,L))},ct=(L,u)=>{try{const l=L;l.snapToLines=!1,l.line=u}catch{}},kt=()=>{const L=Ot*16,u=Z.videoHeight||Z.clientHeight||720,l=Z.videoWidth||Z.clientWidth||1280;return{step:L*1.3/u*100,chars:Math.max(20,Math.floor(l/(L*.55)))}},ue=L=>{const u=Math.max(0,Math.min(100,100-lt())),l=Array.from(L.activeCues??[]);if(l.length<=1){l.forEach($e=>ct($e,u));return}const{step:de,chars:me}=kt();let At=u;for(let $e=l.length-1;$e>=0;$e--){const Lt=String(l[$e].text??"").replace(/<[^>]*>/g,"").split(`
|
|
2
|
-
`).reduce((Vt,fn)=>Vt+Math.max(1,Math.ceil(fn.length/me)),0),qt=At-Lt*de;ct(l[$e],Math.max(0,qt)),At=qt-de*.4}},Et=()=>{const L=Math.max(0,Math.min(100,100-lt()));Array.from(Z.textTracks).forEach(u=>{u.cues&&(Array.from(u.cues).forEach(l=>ct(l,L)),u.mode==="showing"&&ue(u))})};Et();const Te=L=>{const u=L.target;u.mode==="showing"&&ue(u)},Nt=()=>{Array.from(Z.textTracks).forEach(L=>{L.removeEventListener("cuechange",Te),L.addEventListener("cuechange",Te)}),Et()};Array.from(Z.textTracks).forEach(L=>{L.addEventListener("cuechange",Te)}),Z.textTracks.addEventListener("addtrack",Nt);const It=Array.from(Z.querySelectorAll("track")),xt=()=>Et();return It.forEach(L=>L.addEventListener("load",xt)),()=>{Array.from(Z.textTracks).forEach(L=>{L.removeEventListener("cuechange",Te)}),Z.textTracks.removeEventListener("addtrack",Nt),It.forEach(L=>L.removeEventListener("load",xt))}}},[j,x,se,ce,Pe,Me,ne,i,d,Be,ot]);const oe=d.length>0,Re=i>=0,ze=()=>{et("main"),st.setShowControls(!0)},Ue=()=>{et(null)},tt=te.showControls||!!Ve,Tt=fs(s.engine),at=Tt.audioTracks.find(ae=>ae.id===Tt.activeAudioTrack)??R[k],He=i>=0?d[i]??Tt.subtitleTracks.find(ae=>ae.id===i):void 0,bn=t(Ss,{visible:tt,title:h,episode:O,server:Q?void 0:w,audio:Q?void 0:at?.label||at?.language,subtitles:Q?void 0:He?.label||He?.language,onBack:J,classes:{overlay:o.controlsOverlay,hidden:o.hidden,top:o.topControls,backBtn:o.backBtn,titleInfo:o.videoTitleInfo,title:o.animeTitle,episode:o.episodeLabel}}),Ct=!Q&&!te.isBuffering&&te.duration>0?t(_s,{}):null,K=t(Wo,{player:s,visible:tt,settingsOpen:!!Ve,onOpenSettings:ze,onCloseSettings:Ue,hasSubtitles:oe,isSubtitleActive:Re,subtitles:d,onSubtitleChange:S,showNextEpisodeButton:E,onNextEpisode:U,isTheaterMode:le,onTheaterModeToggle:yt,timeLabelRef:Fe}),it=Ve?t(Qo,{view:Ve,onSelectView:et,onClose:Ue,player:s,onSubtitleStyleChange:_t,streams:r,resolutionIdx:B,onResolutionChange:fe,hasSubtitles:oe,subtitles:d,selectedSubtitle:i,isSubtitleActive:Re,onSubtitleChange:S,audioTracks:R,selectedAudioTrack:k,onAudioTrackChange:I,videoDelayEnabled:ke,onVideoDelayToggle:Le,videoDelayMs:ve,onVideoDelayChange:pe,onCalibrate:()=>{et(null),T?.()},subtitleDelayMs:gt,onSubtitleDelayChange:Je,ambientSettings:we,onAmbientChange:Ze}):null,A=t(Xe,{children:[Q&&t("div",{className:o.loadingOverlay,"aria-hidden":"true",children:t("div",{className:o.loadingDots,children:[t("div",{className:o.dot}),t("div",{className:o.dot}),t("div",{className:o.dot})]})}),te.isBuffering&&!Q&&t("div",{className:o.bufferingOverlay,"aria-hidden":"true",children:t("div",{className:o.bufferingSpinner})}),te.isSpeedBoostActive&&t("div",{className:o.speedBoostBadge,"aria-hidden":"true",children:[t("span",{children:"2x"}),t(he,{name:"forward",size:12})]})]});return t(Ts,{engine:s.engine,topBar:bn,centerControls:Ct,bottomBar:!Q&&te.duration>0?K:null,settingsPanel:it,overlays:A,isInteracting:!!Ve||te.showVolumeSlider,nativeControls:te.useNativeControls,onStageClick:Ue,className:te.isFullscreen?o.fullscreenFlat:"",children:m})},jo=({servers:s,selectedServer:h,onServerSelect:O})=>s.length===0?null:t("div",{className:un.sourceSelectionContainer,children:[t("h4",{children:"Source"}),t("div",{className:un.sourceButtons,children:s.map(w=>t("button",{className:`${un.sourceButton} ${h===w?un.active:""}`,onClick:()=>O(w),children:w},w))})]}),Go=ns.memo(jo);function Xo({details:s,isMovie:h,season:O,episode:w,videoRef:R,active:k}){const I=V("");I.current||(I.current=`tv-${Date.now()}-${Math.random().toString(36).slice(2)}`);const d=C(()=>{if(!s)return;const i=R.current,S=h?"":`S${String(O).padStart(2,"0")}E${String(w).padStart(2,"0")}`;pt.discord.tvPresence.mutate({title:s.title,episodeLabel:S,isPlaying:i?!i.paused&&!i.ended:!0,thumbnail:s.poster,currentTime:i?i.currentTime:0,duration:i&&i.duration||0,isAdult:s.adult===!0,sessionId:I.current}).catch(()=>{}),pt.discord.heartbeat.mutate({sessionId:I.current}).catch(()=>{})},[s,h,O,w,R]);return g(()=>{if(!s)return;d();const i=window.setInterval(()=>{const S=R.current;(!S||!S.paused)&&d()},15e3);return()=>window.clearInterval(i)},[d,s,R]),g(()=>{if(!s||!k)return;const i=R.current;if(!i)return;const S=()=>d();return i.addEventListener("play",S),i.addEventListener("pause",S),i.addEventListener("seeked",S),()=>{i.removeEventListener("play",S),i.removeEventListener("pause",S),i.removeEventListener("seeked",S)}},[s,k,d,R]),g(()=>{const i=I.current,S=()=>as(i),r=()=>S();return window.addEventListener("pagehide",r),window.addEventListener("beforeunload",r),()=>{window.removeEventListener("pagehide",r),window.removeEventListener("beforeunload",r),S()}},[]),{sendPresence:d}}function Jo(s,h,O){const w=()=>{const k=Array.isArray(s.audioTracks)?s.audioTracks.length:0,I=O.getWant(),d=k>0?Math.min(Math.max(0,I),k-1):I;s.audioTrack=d,d!==I&&O.onResolve(d)},R=(k,I)=>{const d=O.getWant(),i=Array.isArray(s.audioTracks)?s.audioTracks.length:0;if(I.id!==d&&d>=0&&d<i){s.audioTrack!==d&&(s.audioTrack=d);return}O.onResolve(I.id)};return s.on(h.MANIFEST_PARSED,w),s.on(h.AUDIO_TRACK_SWITCHED,R),()=>{s.off(h.MANIFEST_PARSED,w),s.off(h.AUDIO_TRACK_SWITCHED,R)}}const Zo=/\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 ea(){try{if(Zo.test(navigator.userAgent||""))return!0;const s=navigator.deviceMemory;if(typeof s=="number"&&s>0&&s<2)return!0}catch{}return!1}const ta="_statusMsg_zqb8u_1",na="_error_zqb8u_7",ra="_spinner_zqb8u_11",sa="_spin_zqb8u_11",oa="_sourceLoader_zqb8u_16",aa="_ringSpinner_zqb8u_22",ia="_meta_zqb8u_40",la="_year_zqb8u_48",ca="_rating_zqb8u_53",ua="_typeBadge_zqb8u_62",da="_tv_zqb8u_70",ma="_movie_zqb8u_75",ba="_controlLabel_zqb8u_80",ha="_select_zqb8u_90",fa="_playerSection_zqb8u_102",va="_video_zqb8u_106",pa="_videoHidden_zqb8u_128",ga="_delayCanvas_zqb8u_133",ya="_delayCanvasActive_zqb8u_146",Sa="_subtitleOverlay_zqb8u_150",_a="_videoIframe_zqb8u_169",Ta="_retryButton_zqb8u_177",Ca="_sidebarSeason_zqb8u_192",ka="_mobileSeasonRow_zqb8u_208",Ea="_providerSelectWrap_zqb8u_222",Na="_genreRow_zqb8u_230",Ia="_genreChip_zqb8u_237",xa="_metaRow_zqb8u_247",Aa="_detailGrid_zqb8u_256",La="_detailItem_zqb8u_264",wa="_imdbLink_zqb8u_286",p={statusMsg:ta,error:na,spinner:ra,spin:sa,sourceLoader:oa,ringSpinner:aa,meta:ia,year:la,rating:ca,typeBadge:ua,tv:da,movie:ma,controlLabel:ba,select:ha,playerSection:fa,video:va,videoHidden:pa,delayCanvas:ga,delayCanvasActive:ya,subtitleOverlay:Sa,videoIframe:_a,retryButton:Ta,sidebarSeason:Ca,mobileSeasonRow:ka,providerSelectWrap:Ea,genreRow:Na,genreChip:Ia,metaRow:xa,detailGrid:Aa,detailItem:La,imdbLink:wa},Ba=[],Pa=[];function vr({error:s,onRetry:h}){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:h,children:"Retry"})]})})}const ja=()=>{const{id:s}=rs(),[h]=ss(),O=V(h);O.current=h;const w=os(),R=ps(),k=h.get("type"),I=is(),d=!!I.session,i=d&&!I.session?.host,S=i&&["tv","movie"].includes(I.room?.selection.kind||"")?I.room?.selection:null,[r,B]=y(null),[fe,J]=y(()=>parseInt(h.get("s")||"1",10)||1),m=S?.season??fe,[ke,Le]=y([]),[ve,pe]=y(()=>parseInt(h.get("e")||"1",10)||1),T=S?Number(S.episode):ve,[gt,Je]=y(()=>{try{return z.getItem("tvProvider")||""}catch{return""}}),E=S?.provider??gt,[U,Q]=y([]),[le,yt]=y(""),[we,Ze]=y(""),{options:te,isFallback:St,isLoading:st}=Ys(),Be=Se(()=>te.filter(e=>(e.kind??"tv")==="tv").map(e=>({id:e.id,label:e.label,tier:e.tier==="embed"?"embed":"direct",servers:e.servers})),[te]),j=St||Be.length===0?Ba:Be,x=j.filter(e=>e.tier==="direct"),se=j.filter(e=>e.tier==="embed"),[ce,Pe]=y(!1),[Me,ne]=y(""),[Ve,et]=y([]),[Fe,ot]=y(0),[Ee,_t]=y([]),[oe,Re]=y(-1),[ze,Ue]=y(0),[tt,Tt]=y(""),[at,He]=y(""),[bn,Ct]=y(()=>{try{return z.getItem("tvServer")||""}catch{return""}}),K=S?.source??bn,it=Se(()=>j.find(e=>e.id===E),[j,E]),A=it?.tier==="embed",[ae,_e]=y([]),[ge,Z]=y(""),[Ot,lt]=y(""),[ct,kt]=y(!1),ue=Se(()=>ae.length>0?ae:it?.servers??[],[ae,it]),Et=Se(()=>ge&&!d?["Embed",...ue]:ue,[ue,ge,d]),Te=ct&&!!ge,Nt=Te?Ot||ge:"";g(()=>{if(!ge){lt("");return}let e=!1;return On(`/api/resolve?url=${encodeURIComponent(ge)}`).then(n=>{!e&&n.finalUrl&<(n.finalUrl)}).catch(()=>{}),()=>{e=!0}},[ge]);const It=V([]);g(()=>{It.current=U},[U]);const xt=V(Fe);g(()=>{xt.current=Fe},[Fe]);const L=V(oe);g(()=>{L.current=oe},[oe]);const u=Cs({skipIntervals:Pa}),l=u.refs.videoRef,de=V(null),me=V([]),At=V(null),$e=V(null),{videoDelayMs:hn,videoDelayEnabled:Lt,setDelayEnabled:qt,handleVideoDelayChange:Vt,isCalibrating:fn,testClipActive:Ne,stopCalibration:vn,openAvSyncCalibrator:gr,cancelAvSyncCalibrator:yr,applyAvSyncCalibrator:Sr,toggleTestClip:_r,calibReturnRef:Ft,effectiveVideoDelayMs:pn}=ks(l),[ut,Tr]=y(()=>{try{const e=Number(z.getItem("tvSubtitleDelayMs"));if(Number.isFinite(e)&&e>=-6e4&&e<=6e4)return Math.round(e)}catch{}return 0}),gn=V(ut);gn.current=ut;const Cr=C(e=>{const n=Math.max(-6e4,Math.min(6e4,Math.round(e)));if(gn.current!==n){gn.current=n,Tr(n);try{z.setItem("tvSubtitleDelayMs",String(n))}catch{}}},[]);Es({videoRef:l,canvasRef:At,delayMs:pn,enabled:Lt});const yn=Lt,ye=yn||ut!==0,{settings:Sn,update:kr}=Ns(),_n=V(ye);_n.current=ye;const Tn=C(()=>{if(!_n.current)return;const e=l.current;e&&Array.from(e.textTracks).forEach(n=>{n.mode!=="hidden"&&(n.mode="hidden")})},[l]),{hasConsent:wt,grant:Er}=ls(),f=k==="movie";Xo({details:r,isMovie:f,season:m,episode:T,videoRef:l,active:!A&&!ce&&!Me&&U.length>0});const Ut=s?cs(k||"tv",s):"",ee=Ut,De=`${ee}:${m}:${T}:${E}:${K}`,Ht=Se(()=>!s||!r||A||Te||ce||we!==De||U[ze]?.type!=="hls"?null:{kind:f?"movie":"tv",...f?{}:{season:m},showId:s,episode:String(f?1:T),provider:E,source:K,mode:"sub",title:r.title},[s,r,A,Te,ce,we,De,U,ze,f,m,T,E,K]),Kn=Is(u.engine,Ht,ce||!r),Qn=js(),Wt=Gs(),Kt=Xs(),{toggle:Yn,bookmarkedIds:Nr,pending:Ir}=Js(),{data:jn}=Zs(r?Ut:void 0),Bt=jn?!!jn.inLibrary:Ut?Nr.has(Ut):!1,xr=C(()=>{!r||!s||Yn({tmdbId:Number(s),mediaType:k||"tv",title:r.title,poster:r.poster,year:r.year,adult:r.adult})},[r,s,k,Yn]),{data:dt,isFetched:Gn,isFetching:Cn}=eo(ee||void 0,m,T),Qt=Se(()=>ke.map(e=>e.episode_number).sort((e,n)=>e-n),[ke]),Pt=Qt.indexOf(T),kn=Pt>0?Qt[Pt-1]:null,F=Pt>=0&&Pt<Qt.length-1?Qt[Pt+1]:null,Yt=Se(()=>(r?.seasons??[]).map(e=>e.season_number).filter(e=>Number.isFinite(e)).sort((e,n)=>e-n),[r]),We=Se(()=>{if(f||F!=null)return null;const e=Yt.indexOf(m);return e>=0&&e<Yt.length-1?Yt[e+1]:(r?.number_of_seasons??0)>m?m+1:null},[f,F,Yt,m,r?.number_of_seasons]),Xn=dt?.currentTime??0,jt=V(null),[Ke,Gt]=y(!1),[mt,Jn]=y(0),[Mt,Zn]=y(!1),[bt,ht]=y(!1),[Ar,En]=y(!1),[Lr,wr]=y(""),[Xt,Br]=y(!1),[Pr,Nn]=y(!1),{isTheaterMode:Oe,toggleTheaterMode:In,handleLayoutClick:Mr}=xs();g(()=>{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"&&In()};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}},[In]),As(u,(U.length>0||at!=="")&&!Oe&&!Ke&&!bt);const Rr=so(),[ft,zr]=y(no),$r=C(e=>{zr(e),ro(e)},[]),Qe=V(!1),qe=V(null),xn=V(0),G=V(null),Jt=V(""),Dr=hr(Xn),Rt=!d&&!Qe.current&&(Ke||bt||Dr),Zt=V(Rt);Zt.current=Rt;const en=V(!1);g(()=>{en.current=Mt},[Mt]);const Ye=C((e,n)=>{if(!ee||!n||n<30)return;const a=dn(e,n);Math.abs(e-xn.current)<10&&!a||(xn.current=e,Qn.mutate({mediaId:ee,season:m,episode:T,currentTime:Math.floor(e),duration:Math.floor(n),completed:a,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}))},[ee,m,T,Qn,r,k]),Ie=C((e,n)=>{vn();const a=new URLSearchParams(h);a.set("type",h.get("type")||"tv"),a.set("s",String(e)),a.set("e",String(n)),w(`${window.location.pathname}?${a.toString()}`)},[h,w,vn]),zt=C(()=>{const e=l.current;if(!e||f||F==null){En(!1);return}const n=e.duration||0,a=e.currentTime||0;En(n>0&&a/n>=.8)},[f,F,l]),tn=C((e,n)=>["tv-sources",E,f?"movie":"tv",s,e,n,K],[E,f,s,K]),nn=C(async(e,n)=>{if(!r||!s||!E)return{valid:!1,sources:[]};const a=f?"movie":"tv",c=await pt.tv.sources.query({provider:E,type:a,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 c?c.valid:!1,error:"error"in c?c.error:void 0,sources:c.sources,referer:"referer"in c?c.referer:void 0,audioTracks:c.audioTracks,subtitles:"subtitles"in c?c.subtitles:void 0,servers:"servers"in c?c.servers:void 0,server:"server"in c?c.server:void 0,embedUrl:"embedUrl"in c?c.embedUrl:void 0}},[r,s,E,f,K]),er=C(()=>{if(f||!r||!s||!E||A||F==null)return;const e=tn(m,F);R.getQueryState(e)?.status!=="success"&&R.prefetchQuery({queryKey:e,queryFn:()=>nn(m,F),staleTime:300*1e3,gcTime:1800*1e3})},[f,r,s,E,A,F,m,R,tn,nn]),Or=C(()=>{if(Ne)return;zt();const e=l.current;!e||e.paused||e.ended||(e.duration>0&&e.duration-e.currentTime<=60&&er(),!qe.current&&(qe.current=setTimeout(()=>{qe.current=null,Ye(e.currentTime,e.duration||0)},5e3)))},[Ye,l,Ne,zt,er]),qr=C(()=>{const e=l.current;if(!(!e||!r)&&(qe.current&&clearTimeout(qe.current),qe.current=null,Ye(e.currentTime,e.duration||0),!i)){if(F!=null){ft&&(pe(F),Ie(m,F));return}wr(f?r.title:`${r.title} - Season ${m}`),ht(!0),Qe.current=!0}},[f,r,m,F,ft,Ye,Ie,l,i]),{checkEnd:rn,logDuration:tr}=Ls({videoRef:l,sourceType:A?"iframe":void 0,resetKey:`${ee}:${m}:${T}`,onEnd:qr}),Vr=C(()=>{u.actions.onPlay()},[u.actions]),Fr=C(()=>{u.actions.onPause();const e=l.current;e&&!e.ended&&Ye(e.currentTime,e.duration||0)},[u.actions,Ye,l]),Ur=C(()=>{const e=l.current;if(e){try{const n=parseFloat(z.getItem("playerVolume")||"");isNaN(n)||(e.volume=Math.max(0,Math.min(1,n))),e.muted=z.getItem("playerMuted")==="true"}catch{}if(G.current!=null&&G.current>0){try{e.currentTime=G.current}catch{}G.current=null}zt()}},[l,zt]),An=C(()=>{const e=l.current;if(e&&G.current!=null&&G.current>0){try{e.currentTime=G.current}catch{}G.current=null}},[l]),Hr=C(()=>{mt>0&&(G.current=mt);const e=l.current;if(e&&mt>0){try{e.currentTime=mt,G.current=null}catch{}e.play().catch(()=>{})}Gt(!1),Qe.current=!0},[mt,l]),nr=C(()=>{G.current=null;const e=l.current;e&&(e.currentTime=0,e.play().catch(()=>{})),Gt(!1),Qe.current=!0},[l]),Wr=C(()=>{F!=null&&(Qe.current=!0,pe(F),Ie(m,F))},[F,m,Ie]),Kr=C(()=>{We!=null&&(ht(!1),Qe.current=!0,J(We),pe(1),Ie(We,1))},[We,Ie]),Qr=C(async()=>{if(ee)try{Bt?await Wt.mutateAsync({id:ee,status:"Completed"}):r&&s&&(await Kt.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}),br.success("Moved to Completed")),ht(!1),w("/")}catch{}},[ee,Bt,Wt,Kt,r,s,k,w]);g(()=>{Qe.current=!1,jt.current=null,Gt(!1),En(!1),Jn(0),Zn(!1),en.current=!1,G.current=null,xn.current=0},[ee,m,T]),g(()=>{Jt.current=De},[De]),g(()=>{Gn&&(Zn(!0),en.current=!0)},[Gn,ee,m,T]),g(()=>{if(d||Cn||!dt||Qe.current)return;const e=`${ee}:${m}:${T}`;if(jt.current===e)return;jt.current=e;const n=dt,a=n.currentTime??0;hr(a)&&n.completed!==1&&!dn(a,n.duration??0)&&(Jn(a),Gt(!0))},[dt,Cn,ee,m,T,d]),g(()=>{!d&&Ke&&l.current&&l.current.pause()},[Ke,l,d]),g(()=>{const e=l.current;return()=>{qe.current&&clearTimeout(qe.current),qe.current=null,!e?.ended&&u.engine.getState().duration>0&&Ye(u.engine.getTimeline().currentTime,u.engine.getState().duration)}},[u.engine,Ye,l]);const Ln=C(e=>{let n=null,a=!0;try{n=z.getItem("tvLastSubtitle"),a=z.getItem("tvSubtitlesEnabled")!=="false"}catch{}return Hn(e,{lastKey:n,enabled:a})},[]),wn=C(e=>{if(!(e<0))try{z.setItem("tvSubtitlesEnabled","true"),z.setItem("tvSelectedSubtitle",String(e))}catch{}},[]),rr=C(e=>{if(e.length===0)return 0;let n=null;try{n=z.getItem("tvLastAudio")}catch{}if(n){const a=e.findIndex(P=>qn(P)===n);if(a>=0)return a;const c=n.indexOf("|||"),b=c>=0?n.slice(0,c):n,_=c>=0?n.slice(c+3):n,$=e.findIndex(P=>P.language===b||P.label===_);if($>=0)return $}return Hn(e,{lastKey:null,enabled:!0})},[]),sr=C(e=>{let n=null;try{n=z.getItem("tvLastQuality")}catch{}if(!n||e.length===0)return 0;const a=e.findIndex(P=>(P.quality||"")===n);if(a>=0)return a;const c=P=>{const X=/(\d{3,4})/.exec(P||"");return X?parseInt(X[1],10):0},b=c(n);if(!b)return 0;let _=0,$=1/0;return e.forEach((P,X)=>{const v=c(P.quality),H=Math.abs(v-b);v>0&&H<$&&($=H,_=X)}),_},[]),{data:or}=to(ee||void 0),ar=Se(()=>(or?.progress??[]).filter(n=>n.season===m&&(n.completed===1||dn(n.currentTime,n.duration))).map(n=>String(n.episode)),[or,m]),ir=Se(()=>ke.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})),[ke]),lr=Se(()=>(r?.genres??[]).map(e=>e.name).slice(0,5),[r]),Bn=Se(()=>[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]);g(()=>{if(!i&&j.length!==0&&!j.some(e=>e.id===E)){const e=j.find(n=>n.tier==="direct")?.id??j[0].id;Je(e);try{z.setItem("tvProvider",e)}catch{}}},[j,E,i]),g(()=>{_e([]),Z(""),lt(""),kt(!1)},[E]),g(()=>{if(!i&&ue.length!==0&&!ue.includes(K)){Ct(ue[0]);try{z.setItem("tvServer",ue[0])}catch{}}},[ue,K,i]),g(()=>{if(!s){B(null),Q([]),Ze(""),ne(""),He("");return}const e=Number(s),n=k||"tv";B(null),Q([]),Ze(""),ne(""),He("");const a=parseInt(O.current.get("s")||"",10),c=parseInt(O.current.get("e")||"",10);J(isNaN(a)?1:a),pe(isNaN(c)?1:c),Ue(0),pt.tv.details.query({type:n,id:String(e)}).then(b=>{const _={id:b.id,title:b.title||"",overview:b.overview||"",vote_average:b.vote_average,year:b.year,poster:b.poster,backdrop:b.backdrop,imdb_id:b.imdb_id||void 0,adult:b.adult,seasons:b.seasons,number_of_seasons:b.number_of_seasons};B(_),_.seasons&&_.seasons.length>0&&isNaN(a)&&J(_.seasons[0].season_number)}).catch(()=>{})},[s,k]),g(()=>{if(!r||!s)return;if(!(r.seasons!==void 0||r.number_of_seasons!==void 0)){Le([]);return}const n=parseInt(h.get("e")||"",10);pt.tv.episodes.query({id:String(s),season:String(m)}).then(a=>{const c=(a.episodes||[]).map(b=>({episode_number:b.episode_number,name:b.name||"",vote_average:b.vote_average,overview:b.overview||"",still_path:b.still_path||""}));Le(c),c.length!==0&&pe(b=>!isNaN(n)&&c.some(_=>_.episode_number===n)?n:c.some(_=>_.episode_number===b)?b:c[0].episode_number)}).catch(()=>{})},[r,s,m,h]),g(()=>{if(!A||!r||!s)return;On(`/api/tv/embed/${E}/${f?"movie":"tv"}/${s}?season=${m}&episode=${T}`).then(n=>{if(n.url)return He(n.url),On(`/api/resolve?url=${encodeURIComponent(n.url)}`).then(a=>{a.finalUrl&&He(a.finalUrl)})}).catch(()=>{})},[E,r,s,m,T,f,A]);const sn=C(async()=>{if(!r||!s||!E||A||r.adult&&!wt)return;const e=De;Pe(!0),ne(""),It.current.length===0&&(Q([]),Ue(0),et([]),_t([]));try{const n=await R.fetchQuery({queryKey:tn(m,T),queryFn:()=>nn(m,T),staleTime:3e5,gcTime:18e5});if(Jt.current!==e)return;if(Pe(!1),!n.valid||!n.sources?.length){ne(n.error?`${n.error}`:ue.length>0?`No streams from ${K}. Try another server.`:"No streams available.");return}if(d&&K&&n.server&&n.server!==K){Q([]),ne("The host's selected server is unavailable. Automatic source switching is disabled in watch-along rooms.");return}!i&&!K&&n.server&&Ct(n.server);const a=d?n.sources.filter(P=>P.type==="hls"):n.sources;if(d&&a.length===0){Q([]),ne("The room requires a direct HLS source. No compatible stream is available here.");return}Q(a),yt(n.server||K),Ze(e),n.servers?.length&&_e(n.servers),n.embedUrl&&Z(n.embedUrl),Ue(sr(a)),n.referer&&Tt(n.referer);const c=n.audioTracks||[];et(c),ot(c.length>0?rr(c):0);const b=n.subtitles||[];if(_t(b),b.length>0){const P=Ln(b);Re(P),wn(P)}else Re(-1);const _=f?"movie":"tv",$=s;pt.tv.subtitles.query({type:_,tmdbId:String($),season:String(m),episode:String(T)}).then(P=>{if(Jt.current!==e)return;const X=Array.isArray(P.subtitles)?P.subtitles:[];X.length!==0&&_t(v=>{const H=[...v,...X.filter(Y=>!v.some(q=>q.url===Y.url))];if(v.length===0){const Y=Ln(H);Re(Y),wn(Y)}return H})}).catch(()=>{}),ne("")}catch(n){if(Jt.current!==e)return;Pe(!1),ne(n instanceof Error?n.message:"Failed to load streams.")}},[r,s,E,m,T,f,A,wt,ue,K,Ln,wn,rr,sr,R,tn,nn,De,d,i]),Pn=C(()=>{const e=l.current;e&&!isNaN(e.currentTime)&&(G.current=e.currentTime)},[l]),Yr=C(e=>{if(!(i||d&&e==="Embed")){if(e==="Embed"){kt(!0);return}Pn(),kt(!1),Ct(e);try{z.setItem("tvServer",e)}catch{}ne("")}},[Pn,i,d]),jr=C(e=>{Je(e);try{z.setItem("tvProvider",e)}catch{}},[]);g(()=>{E&&r&&!A&&sn()},[E,r,sn,A]),g(()=>{if(!l.current)return;if(de.current=null,A||Te||d&&U[ze]?.type!=="hls"){u.engine.unload();return}if(Ne&&!d)return u.engine.loadSource({url:"/av-sync-test.mp4"},{autoPlay:!Zt.current});if(Ft.current!=null&&(G.current=Ft.current,Ft.current=null),we===De&&G.current==null&&!Zt.current)try{const v=l.current;v&&!v.ended&&v.currentTime>1&&(G.current=v.currentTime)}catch{}const n=G.current??0,a=!ce&&we===De?Te?"":U[ze]?.url||"":"";if(!a){try{l.current?.pause(),l.current?.removeAttribute("src"),l.current?.load()}catch{}return}const c=l.current;c.pause(),c.removeAttribute("src"),c.load(),u.actions.resetMediaState();const b=`/api/tv/stream-proxy?url=${encodeURIComponent(a)}&referer=${encodeURIComponent(tt)}&provider=${encodeURIComponent(E)}`,_=ea()||document.body.classList.contains("low-end"),$=_?60:180,P=u.engine.loadSource({url:b,hls:U[ze]?.type==="hls"},{hlsConfig:{enableWorker:!0,lowLatencyMode:!1,startPosition:n>0?n:-1,maxBufferLength:$,maxMaxBufferLength:$+(_?30:60),backBufferLength:_?30:60,maxBufferSize:(_?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:(v,H)=>{de.current=v;const Y=()=>{let D=!1,M=0;try{D=z.getItem("tvSubtitlesEnabled")==="true";const N=parseInt(z.getItem("tvSelectedSubtitle")||"0",10);!isNaN(N)&&N>=0&&(M=N)}catch{}return{enabled:D,index:M}},q=()=>{if(typeof v.subtitleTrack!="number")return;if(me.current.length>0){v.subtitleTrack=-1;return}const D=Array.isArray(v.subtitleTracks)?v.subtitleTracks:[];if(D.length===0){v.subtitleTrack=-1;return}const M=Y();if(M.enabled){const N=M.index<D.length?M.index:0;v.subtitleTrack=N,Re(N),Tn()}else v.subtitleTrack=-1};Jo(v,H.Events,{getWant:()=>xt.current,onResolve:D=>ot(D)}),v.on(H.Events.MANIFEST_PARSED,q),v.on(H.Events.SUBTITLE_TRACKS_UPDATED,()=>{q()}),v.on(H.Events.SUBTITLE_TRACK_SWITCH,(D,M)=>{if(me.current.length>0){if(M.id!==-1)try{v.subtitleTrack=-1}catch{}return}const N=Array.isArray(v.subtitleTracks)?v.subtitleTracks:[];if(N.length!==0){if(M.id===-1){const Ce=Y();if(Ce.enabled){const re=Ce.index<N.length?Ce.index:0;v.subtitleTrack=re;return}}Re(M.id),Tn()}})},onReady:()=>{(n>0||!Zt.current&&en.current)&&u.engine.play()},onError:v=>{ne(v.message),Pe(!1),de.current=null}}),X=()=>{const Y=c.error?.code===4?"Video source not supported or not found":"Failed to load video stream";ne(`${Y}. The source may be invalid or expired. Try switching source or reloading.`),Pe(!1)};return c.addEventListener("error",X),()=>{P(),de.current=null,c.removeEventListener("error",X)}},[U,we,ce,ze,E,tt,A,Te,l,Ft,Ne,ee,m,T,An,Tn,u.actions,u.engine,De,d]),g(()=>{if(i||!Mt||Ke||bt||Rt||A||Ne)return;const e=l.current;!e||!e.paused||e.ended||e.readyState<1||(An(),u.engine.play())},[Mt,Ke,bt,Rt,A,Ne,An,l,i,u.engine]),g(()=>{const e=de.current;!e||typeof e.audioTrack!="number"||(e.audioTrack=Fe)},[Fe]),g(()=>{const e=de.current;!e||typeof e.subtitleTrack!="number"||!Array.isArray(e.subtitleTracks)||e.subtitleTracks.length===0||me.current.length>0||(oe>=0?e.subtitleTrack=oe:e.subtitleTrack=-1)},[oe]),g(()=>{const e=l.current;if(!(!e||A)&&(e.querySelectorAll("track").forEach(n=>n.remove()),me.current=[],Ee.length!==0&&(Ee.forEach(n=>{const a=document.createElement("track");a.kind="subtitles",a.label=n.label||n.language||"Unknown",a.srclang=n.language||n.label||"en";const c=`/api/subtitle-proxy?url=${encodeURIComponent(n.url)}&referer=${encodeURIComponent(tt)}`;a.src=c,a.addEventListener("load",()=>{const b=me.current.indexOf(a),_=a.track;if(_&&b>=0){const $=b===L.current;_.mode=$&&!_n.current?"showing":"hidden"}}),e.appendChild(a),me.current.push(a)}),Ee.length>0)))try{const n=de.current;n&&typeof n.subtitleTrack=="number"&&n.subtitleTrack!==-1&&(n.subtitleTrack=-1)}catch{}},[Ee,tt,A,E,K,l]),g(()=>{const e=l.current;if(!e||A)return;const n=de.current;me.current.length>0&&n&&typeof n.subtitleTrack=="number"&&Array.isArray(n.subtitleTracks)&&n.subtitleTracks.length>0&&(n.subtitleTrack=-1);const a=()=>{const _=Wn(u.state.subtitleFontSize,e.clientHeight||720),$=Math.max(0,Math.min(100,100-u.state.subtitlePosition)),P=()=>{const q=_*16,D=e.videoHeight||e.clientHeight||720,M=e.videoWidth||e.clientWidth||1280;return{step:q*1.3/D*100,chars:Math.max(20,Math.floor(M/(q*.55)))}},X=(q,D)=>{const M=q;M.snapToLines=!1,M.line=D},v=q=>{if(!q.cues)return;Array.from(q.cues).forEach(re=>X(re,$));const D=Array.from(q.activeCues??[]);if(D.length<=1){D.forEach(re=>X(re,$));return}const{step:M,chars:N}=P();let Ce=$;for(let re=D.length-1;re>=0;re--){const je=String(D[re].text??"").replace(/<[^>]*>/g,"").split(`
|
|
3
|
-
`).reduce((an,$t)=>an+Math.max(1,Math.ceil($t.length/N)),0);Ce=Math.max(0,Ce-je*M),X(D[re],Ce),Ce-=M*.4}},H=me.current;if(H.length>0){H.forEach((q,D)=>{const M=q.track;if(!M)return;const N=D===oe;M.mode=N&&!ye?"showing":"hidden",N&&!ye&&v(M)});return}const Y=Array.from(e.textTracks);Y.length!==0&&Y.forEach((q,D)=>{const M=D===oe;q.mode=M&&!ye?"showing":"hidden",M&&!ye&&v(q)})};a();const c=()=>a();e.textTracks.addEventListener("addtrack",c),e.addEventListener("loadedmetadata",a,{once:!0});const b=window.setTimeout(a,600);return()=>{e.textTracks.removeEventListener("addtrack",c),e.removeEventListener("loadedmetadata",a),window.clearTimeout(b)}},[oe,Ee,A,E,l,ye,u.state.subtitleFontSize,u.state.subtitlePosition]),g(()=>{if(!ye)return;const e=l.current,n=$e.current;if(!e||!n)return;const a=ut/1e3,c=pn/1e3,b=new Set;let _=[],$=-1,P=-1,X=-1,v=-1,H=0,Y=0,q=!1;const D=()=>{const W=L.current;if(W<0)return null;const Ge=me.current;return Ge.length>0?Ge[W]?.track??null:Array.from(e.textTracks)[W]??null},M=(W,Ge)=>{const be=W.cues;if(!be||be.length===0)return Array.from(W.activeCues??[]);let nt=0,rt=be.length;for(;nt<rt;){const xe=nt+rt>>>1;be[xe].endTime+a<Ge?nt=xe+1:rt=xe}const Dt=[];for(let xe=nt;xe<be.length;xe++){const ln=be[xe];if(ln.startTime+a>Ge)break;ln.endTime+a>=Ge&&Dt.push(ln)}return Dt},N=()=>{const W=D(),Ge=e.currentTime-c,be=W?M(W,Ge):[],nt=e.clientWidth,rt=e.clientHeight,Dt=e.videoWidth,xe=e.videoHeight;if(be.length===_.length&&be.every((zn,$n)=>zn===_[$n])&&nt===$&&rt===P&&Dt===X&&xe===v||(_=be,$=nt,P=rt,X=Dt,v=xe,n.textContent="",be.length===0))return;const dr={fontSize:Wn(u.state.subtitleFontSize,rt),position:u.state.subtitlePosition,bgOpacity:u.state.subtitleBgOpacity,bgColor:u.state.subtitleBgColor,textColor:u.state.subtitleTextColor,edge:u.state.subtitleEdge,bold:u.state.subtitleBold},Zr=ws(dr),es=Bs(e,dr.position);be.forEach((zn,$n)=>{const mr=String(zn.text??"");if(!Ps(mr).trim())return;const Dn=document.createElement("div"),ts=(be.length-1-$n)*1.7;Dn.style.cssText=`${Zr}
|
|
4
|
-
bottom: calc(${es}px + ${ts}em);`,Dn.innerHTML=Ms(mr),n.appendChild(Dn)})},Ce=()=>{Array.from(e.textTracks).forEach(W=>{b.has(W)||(b.add(W),W.addEventListener("cuechange",N))})},re=()=>{Ce(),N()},Rn=()=>{if(q||Y)return;const W=()=>{Y=0,!(q||e.paused||e.ended)&&(N(),Rn())};Y=window.requestAnimationFrame(W)},je=e,an=()=>{H=0,N(),!q&&je.requestVideoFrameCallback&&(H=je.requestVideoFrameCallback(an))},$t=()=>{N(),je.requestVideoFrameCallback?H||(H=je.requestVideoFrameCallback(an)):Rn()};Ce(),e.textTracks.addEventListener("addtrack",re),e.textTracks.addEventListener("removetrack",re),e.addEventListener("timeupdate",N),e.addEventListener("seeked",N),e.addEventListener("loadedmetadata",N),e.addEventListener("play",$t);const cr=Array.from(e.querySelectorAll("track"));cr.forEach(W=>W.addEventListener("load",N));const ur=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>N());return ur?.observe(e),N(),$t(),()=>{q=!0,b.forEach(W=>W.removeEventListener("cuechange",N)),e.textTracks.removeEventListener("addtrack",re),e.textTracks.removeEventListener("removetrack",re),e.removeEventListener("timeupdate",N),e.removeEventListener("seeked",N),e.removeEventListener("loadedmetadata",N),e.removeEventListener("play",$t),cr.forEach(W=>W.removeEventListener("load",N)),ur?.disconnect(),Y&&window.cancelAnimationFrame(Y),H&&je.cancelVideoFrameCallback&&je.cancelVideoFrameCallback(H),n.textContent=""}},[ye,ut,oe,Ee,pn,l,u.state.subtitleFontSize,u.state.subtitlePosition,u.state.subtitleBgOpacity,u.state.subtitleBgColor,u.state.subtitleTextColor,u.state.subtitleEdge,u.state.subtitleBold]);const Mn=()=>{B(null),Q([]),He(""),w(-1)},Gr=C(e=>{i||(J(e),pe(1),Ie(e,1))},[Ie,i]),on=!f&&r?.seasons&&r.seasons.length>1?t("label",{className:p.sidebarSeason,children:[t("span",{children:"Season"}),t("select",{disabled:i,value:m,onChange:e=>Gr(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,vt=C(e=>{if(i)return;const n=parseInt(e,10);if(!isNaN(n)){try{l.current?.pause()}catch{}pe(n),Ie(m,n)}Nn(!1)},[m,Ie,l,i]);g(()=>{if(f)return;const e=n=>{n.target.closest('input, textarea, button, select, a, [role="button"], [contenteditable="true"]')||n.key.toLowerCase()==="n"&&(F!=null?vt(String(F)):br.error("No next episode available"))};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}},[f,F,vt]);const Xr=e=>{ot(e);try{const a=Ve[e];a&&z.setItem("tvLastAudio",qn(a))}catch{}const n=de.current;n&&n.audioTrack!==void 0&&(n.audioTrack=e)},Jr=e=>{Re(e);try{if(e===-1)z.setItem("tvSubtitlesEnabled","false");else{z.setItem("tvSubtitlesEnabled","true"),z.setItem("tvSelectedSubtitle",String(e));const b=Ee[e];b&&z.setItem("tvLastSubtitle",qn(b))}}catch{}const n=l.current,a=de.current;if(a&&typeof a.subtitleTrack=="number"&&Array.isArray(a.subtitleTracks)&&a.subtitleTracks.length>0&&(a.subtitleTrack=me.current.length>0||e<0?-1:e),!n)return;const c=me.current;if(c.length>0){c.forEach((b,_)=>{const $=b.track;if(!$)return;const P=_===e;$.mode=P&&!ye?"showing":"hidden"});return}Array.from(n.textTracks).forEach((b,_)=>{const $=_===e;b.mode=$&&!ye?"showing":"hidden"})};return g(()=>{if(!r){document.title="TV & Movies - dango";return}document.title=f?`${r.title} - dango`:`${r.title} - Season ${m} Episode ${T} - dango`},[r,f,m,T]),g(()=>{if(!r||f)return;const e=new URLSearchParams(h),n=e.get("s"),a=e.get("e"),c=String(m),b=String(T);n===c&&a===b||(e.set("type",h.get("type")||"tv"),e.set("s",c),e.set("e",b),w(`${window.location.pathname}?${e.toString()}`,{replace:!0}))},[r,f,m,T,h,w]),t("div",{className:`${Ae.playerPageLayout} ${Oe?Ae.theaterMode:""} ${f?Ae.noSidebar:""}`,onClick:Mr,children:[Oe&&t(Rs,{videoRef:l,active:Sn.enabled&&!A&&U.length>0&&!Me&&!(r?.adult&&!wt),settings:Sn}),!Oe&&!f&&t("aside",{className:Ae.episodeSidebar,children:r?t(zs,{episodes:ir,currentEpisode:String(T),watchedEpisodes:ar,onEpisodeClick:vt,header:on}):t($s,{variant:"sidebar"})}),t("div",{className:Ae.playerMain,children:[r&&t("div",{className:p.playerSection,onContextMenu:e=>e.preventDefault(),style:r.adult&&!wt?{filter:"blur(14px)",pointerEvents:"none",userSelect:"none"}:void 0,children:A&&at&&!d?t("iframe",{src:at,className:p.videoIframe,allow:"autoplay; fullscreen",allowFullScreen:!0}):!A&&Nt&&!d?t("iframe",{src:Nt,className:p.videoIframe,allow:"autoplay; fullscreen",allowFullScreen:!0}):!A&&(U.length>0||ce)?t(Xe,{children:[Me&&t(vr,{error:Me,onRetry:sn}),t(Yo,{player:u,title:r.title,episodeLabel:f?void 0:`S${m} E${T}`,server:le||it?.label||E,audioTracks:Ve,selectedAudioTrack:Fe,onAudioTrackChange:Xr,subtitles:Ee,selectedSubtitle:oe,onSubtitleChange:Jr,streams:U,resolutionIdx:ze,onResolutionChange:e=>{Pn(),Ue(e);try{const n=U[e]?.quality;n&&z.setItem("tvLastQuality",n)}catch{}},onBack:Mn,videoDelayEnabled:Lt,onVideoDelayToggle:qt,videoDelayMs:hn,onVideoDelayChange:Vt,onCalibrateAvSync:d?void 0:gr,subtitleDelayMs:ut,onSubtitleDelayChange:Cr,showNextEpisodeButton:!i&&Ar&&!Ke&&!bt,onNextEpisode:Wr,isLoading:ce,isTheaterMode:Oe,onTheaterModeToggle:In,ambientSettings:Sn,onAmbientChange:kr,children:[t(vs,{autoPlay:!d&&Mt&&!Rt,playsInline:!0,disablePictureInPicture:!0,className:`${p.video} ${yn?p.videoHidden:""}`,onTimeUpdate:()=>{Ne||(Or(),rn())},onEnded:()=>{Ne||rn(!0)},onPlay:Vr,onPause:Fr,onSeeked:()=>{Ne||(zt(),rn())},onLoadedMetadata:()=>{Ur(),tr(),rn()},onDurationChange:()=>{tr()},onContextMenu:e=>e.preventDefault(),onError:()=>{ne("Video failed to load. Try another server or reload."),Pe(!1)}}),t("canvas",{ref:At,className:`${p.delayCanvas} ${yn?p.delayCanvasActive:""}`}),ye&&t("div",{ref:$e,className:p.subtitleOverlay}),t(Ds,{isOpen:fn,ms:hn,onChange:Vt,onApply:Sr,onClose:yr,testClipActive:Ne,onTestClip:_r})]})]}):Me&&!A?t(vr,{error:Me,onRetry:sn}):null}),t(ao,{playback:Ht?{selection:Ht,position:l.current?.currentTime||0,playing:!1,rate:u.engine.getState().playbackRate}:null,onCreate:()=>{vn(),u.engine.pause()},needsPlayback:Kn.needsPlayback,onEnablePlayback:Kn.enablePlayback}),d&&!ce&&r&&!Ht&&t("p",{role:"alert",children:"The host's direct HLS source is unavailable here. Retry or leave the room to use another source."}),!Oe&&r&&t(Os,{}),!Oe&&on&&t("div",{className:p.mobileSeasonRow,children:on}),!Oe&&r&&t("div",{className:ie.streamPanel,children:[t("div",{className:p.providerSelectWrap,children:t("label",{className:p.controlLabel,children:["Provider",t("select",{value:E,onChange:e=>jr(e.currentTarget.value),className:p.select,disabled:i||j.length===0,children:st?t("option",{value:"",children:"Loading..."}):j.length===0?t("option",{value:"",children:"No providers available"}):t(Xe,{children:[x.length>0&&t("optgroup",{label:"Direct HLS",children:x.map(e=>t("option",{value:e.id,children:e.label},e.id))}),se.length>0&&t("optgroup",{label:"Embeds",children:se.map(e=>t("option",{value:e.id,children:e.label},e.id))})]})})]})}),!i&&!A&&(ce?t("div",{className:p.sourceLoader,children:t("div",{className:p.ringSpinner})}):t(Go,{servers:Et,selectedServer:ct?"Embed":K,onServerSelect:Yr}))]}),!Oe&&r&&t("div",{className:Ae.playerInfoContainer,children:[t("div",{className:Ae.playerInfoHeader,children:[t("div",{className:Ae.playerAnimeCard,children:r.poster&&t(us,{src:`https://image.tmdb.org/t/p/w342${r.poster}`,alt:r.title,loading:"lazy",decoding:"async"})}),t("div",{className:Ae.videoTitleSection,children:[t("div",{className:ie.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(he,{name:"star",size:12}),Number(r.vote_average).toFixed(1)]}),t("span",{className:`${p.typeBadge} ${p[f?"movie":"tv"]}`,children:f?"Movie":"TV Show"})]}),lr.length>0&&t("div",{className:p.genreRow,children:lr.map(e=>t("span",{className:p.genreChip,children:e},e))}),Bn.length>0&&t("div",{className:p.metaRow,children:Bn.map((e,n)=>t("span",{children:[e,n<Bn.length-1?" · ":""]},`${e}-${n}`))})]}),t("div",{className:ie.controls,children:[t("button",{className:`${ie.watchlistBtn} ${Bt?ie.inList:""}`,onClick:xr,disabled:Ir,type:"button",children:[Bt?t(he,{name:"check",size:14}):t(he,{name:"plus",size:14}),Bt?"In Watchlist":"Add to Watchlist"]}),!f&&t(Xe,{children:[t("button",{className:`${ie.watchlistBtn}`,onClick:()=>kn!=null&&vt(String(kn)),disabled:i||kn==null,type:"button",children:[t(he,{name:"chevron-left",size:14}),"Prev EP"]}),t("button",{className:`${ie.watchlistBtn}`,onClick:()=>F!=null&&vt(String(F)),disabled:i||F==null,type:"button",children:["Next EP",t(he,{name:"chevron-right",size:14})]}),!f&&t("button",{className:`${ie.watchlistBtn} ${ie.modeToggleBtn} ${ft?ie.modeToggleActive:""}`,onClick:()=>$r(!ft),type:"button","aria-pressed":ft,children:ft?"AUTOPLAY: ON":"AUTOPLAY: OFF"}),Rr&&t("button",{className:`${ie.watchlistBtn}`,onClick:()=>Nn(!0),type:"button",children:[t(he,{name:"list-ul",size:14}),"Episodes"]})]})]})]})]}),t("div",{className:Ae.infoColumns,children:[t("div",{className:`${ie.descriptionSection} ${ie.synopsisFlat}`,children:[t("h3",{children:"Synopsis"}),t(oo,{text:r.overview,emptyText:"No description available."}),t("button",{className:ie.detailsToggleBtn,onClick:()=>Br(!Xt),type:"button",children:[Xt?t(he,{name:"chevron-up"}):t(he,{name:"chevron-down"}),Xt?"Hide Details":"Show Details"]})]}),Xt&&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(qs,{isOpen:Pr,onClose:()=>Nn(!1),episodes:ir,currentEpisode:String(T),watchedEpisodes:ar,onEpisodeClick:vt,header:on}),r?.adult&&!wt&&t(Qs,{isOpen:!0,onClose:Mn,onGrant:Er}),t(Vs,{isOpen:!d&&Ke&&!Cn&&jt.current===`${ee}:${m}:${T}`&&dt?.completed!==1&&!dn(Xn,dt?.duration??0),onClose:nr,title:"Resume Watching",message:t(Xe,{children:["You were at ",t("strong",{children:Un(mt)})]}),restartLabel:"Start from Beginning",onResume:Hr,onRestart:nr}),t(Fs,{isOpen:bt,onClose:()=>ht(!1),title:f?"Movie Completed!":We!=null?"Season Complete!":"Show Completed!",heading:Lr,message:f?"You finished this movie!":We!=null?`You finished Season ${m}.`:"Congratulations! You finished all available episodes.",children:[t(cn,{variant:"secondary",onClick:()=>ht(!1),children:"Close"}),We!=null?t(cn,{onClick:Kr,children:["Start Season ",We]}):t(Xe,{children:[t(cn,{onClick:()=>{ht(!1),Mn()},children:"Back to Details"}),t(cn,{onClick:Qr,disabled:Wt.isPending||Kt.isPending,children:Wt.isPending||Kt.isPending?"Saving...":"Move to Completed"})]})]}),!r&&t("div",{className:p.statusMsg,children:[t(he,{name:"spinner",className:p.spinner})," Loading..."]})]})]})};export{ja as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
._fadeImage_1bp3x_1{opacity:0;transition:opacity .4s ease}._fadeImage_1bp3x_1._loaded_1bp3x_6{opacity:1}._overlay_1juub_1{position:fixed;inset:0;background-color:#0009;z-index:var(--z-modal);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:_fadeIn_1juub_1 .2s ease-out}._content_1juub_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_1juub_1 .2s var(--ease-smooth)}._sm_1juub_29{max-width:min(400px,calc(100vw - 2 * var(--space-4)))}._md_1juub_33{max-width:min(500px,calc(100vw - 2 * var(--space-4)))}._lg_1juub_37{max-width:min(700px,calc(100vw - 2 * var(--space-4)))}._title_1juub_41{margin:0 0 var(--space-4);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--text-primary)}._body_1juub_48{color:var(--text-secondary)}._footer_1juub_52{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_1juub_52>*{flex:0 1 auto;min-width:0;max-width:100%}@media(max-width:480px){._content_1juub_11{padding:var(--space-4)}._footer_1juub_52{flex-direction:column;align-items:stretch;justify-content:flex-start}._footer_1juub_52>*{flex:1 1 auto;width:100%}}@keyframes _fadeIn_1juub_1{0%{opacity:0}to{opacity:1}}@keyframes _modalIn_1juub_1{0%{opacity:0;transform:translate(-50%,-50%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}._container_drvs6_1{position:relative;display:flex;align-items:center}._bellBtn_drvs6_7{background:var(--header-control-bg, transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--header-control-border, transparent);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_drvs6_7:hover{background:var(--header-btn-bg-hover, rgba(0, 0, 0, .25));border-color:#ffffff59;transform:translateY(-1px)}._bellBtn_drvs6_7:focus-visible{outline:none;box-shadow:var(--shadow-focus)}@media(max-width:848px){._bellBtn_drvs6_7{width:36px;height:36px;font-size:1.05rem;padding:var(--space-1)}}@media(max-width:480px){._bellBtn_drvs6_7{width:36px;height:36px;font-size:.95rem}}._badge_drvs6_56{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_drvs6_1 1.8s ease-in-out 2;line-height:1}@keyframes _badgePulse_drvs6_1{50%{box-shadow:0 0 0 4px var(--accent-subtle)}}._dropdown_drvs6_84{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_drvs6_1 .18s ease-out}@keyframes _slideIn_drvs6_1{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}._dropdownHeader_drvs6_115{padding:var(--space-4);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-primary)}._headerSubtitle_drvs6_123{display:block;margin-top:2px;font-size:var(--font-size-xs);color:var(--text-muted)}._headerActions_drvs6_130{display:flex;align-items:center;gap:var(--space-2)}._closeBtn_drvs6_136{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_drvs6_149{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_drvs6_115 h4{margin:0;font-size:1rem;color:var(--text-primary)}._clearAllBtn_drvs6_165{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_drvs6_165:hover{background:var(--accent-subtle);border-color:var(--border-accent);color:var(--accent-lighter)}._discoveryStatusRow_drvs6_183{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_drvs6_194{width:8px;height:8px;border-radius:50%;flex-shrink:0}._statusDotRunning_drvs6_201{background:var(--accent);animation:_statusPulse_drvs6_1 1.2s ease-in-out infinite}._statusDotOk_drvs6_206{background:var(--color-success)}._statusDotInfo_drvs6_210{background:var(--color-info)}._statusDotError_drvs6_214{background:var(--color-danger)}._statusDotIdle_drvs6_218{background:var(--text-muted)}@keyframes _statusPulse_drvs6_1{0%,to{opacity:1}50%{opacity:.35}}._list_drvs6_232{overflow-y:auto;flex:1}._list_drvs6_232::-webkit-scrollbar{width:4px}._list_drvs6_232::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:2px}._item_drvs6_246{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_drvs6_257{display:block;text-decoration:none;border-radius:var(--radius-sm)}._itemTitleLink_drvs6_257:focus-visible,._systemItemMeta_drvs6_264:focus-visible,._removeItem_drvs6_265:focus-visible,._clearAllBtn_drvs6_165:focus-visible,._modalButton_drvs6_267:focus-visible{outline:none;box-shadow:var(--shadow-focus)}._item_drvs6_246:hover{background:#ffffff0d}._systemItem_drvs6_264{background:#ffffff06}._systemIcon_drvs6_280{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_drvs6_291{width:48px;height:64px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0;box-shadow:0 2px 8px #0000004d}._itemInfo_drvs6_300{flex:1;min-width:0}._itemTitle_drvs6_257{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_drvs6_316{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_drvs6_264{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_drvs6_264:hover{color:var(--text-primary)}._systemItemMeta_drvs6_264 span{color:var(--accent-light);white-space:nowrap}._removeItem_drvs6_265{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_drvs6_246:hover ._removeItem_drvs6_265{opacity:1}@media(hover:none),(pointer:coarse){._removeItem_drvs6_265{opacity:1}}._removeItem_drvs6_265:hover{color:var(--color-danger)}._queueItem_drvs6_381:hover{color:var(--color-success)}._modalButton_drvs6_267{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_drvs6_395{margin:0;line-height:1.6;white-space:pre-wrap}._emptyState_drvs6_401{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_drvs6_401 strong{color:var(--text-primary);font-size:var(--font-size-base)}._emptyIcon_drvs6_419{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_drvs6_84{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_drvs6_1 .2s ease-out;padding-bottom:env(safe-area-inset-bottom,0px)}._bellBtn_drvs6_7{width:36px;height:36px;font-size:1rem}._removeItem_drvs6_265{padding:var(--space-2);min-width:36px;min-height:36px}._badge_drvs6_56{top:5px;right:6px;font-size:.58rem;min-width:16px;height:16px;padding:0 3px}._list_drvs6_232{overscroll-behavior:contain}._dropdownHeader_drvs6_115,._discoveryStatusRow_drvs6_183{flex-shrink:0}._closeBtn_drvs6_136{display:flex}}@keyframes _mobileSheetIn_drvs6_1{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){._dropdown_drvs6_84,._bellBtn_drvs6_7,._badge_drvs6_56,._statusDotRunning_drvs6_201{animation:none;transition:none}}@media(max-width:480px){._bellBtn_drvs6_7{width:38px;height:38px;font-size:1.1rem}}._notificationDivider_drvs6_508{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_17c46_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_17c46_1._hidden_17c46_22{transform:translateY(-100%)}._header_17c46_1._scrolled_17c46_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_17c46_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_17c46_38:hover{opacity:.9;transform:translateY(-1px)}._headerInner_17c46_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_17c46_64{display:flex;align-items:center;gap:var(--space-2)}._desktopNav_17c46_70{display:flex;align-items:center;gap:var(--space-1);margin-left:var(--space-6)}._navLink_17c46_77{color:var(--text-secondary);font-weight:500;font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);text-decoration:none;transition:all var(--transition-fast);position:relative;letter-spacing:.01em}._navLink_17c46_77:hover{color:var(--text-primary);background:#ffffff12}._navLinkActive_17c46_94{color:#fff;font-weight:600;background:#ffffff17}._navLinkActive_17c46_94:after{content:"";position:absolute;bottom:-2px;left:50%;transform:translate(-50%);width:20px;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent-light));border-radius:var(--radius-full);box-shadow:0 0 10px var(--accent-glow)}._rightSection_17c46_113{display:flex;align-items:center;gap:var(--space-3)}._searchWrapper_17c46_119{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:42px;padding:0 10px 0 14px;gap:8px;transition:all var(--transition-base);cursor:text}._searchWrapper_17c46_119:hover{background:var(--header-btn-bg-hover, rgba(255, 255, 255, .08));border-color:#ffffff38}._searchWrapper_17c46_119:focus-within{background:#0f1118f2;border-color:#ffffff59;box-shadow:0 4px 20px #00000059}._searchIconButton_17c46_146{display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;background:none;color:inherit;cursor:pointer;flex-shrink:0}._searchIcon_17c46_146{font-size:.95rem;color:#fff9;flex-shrink:0;transition:color var(--transition-fast)}._searchIconButton_17c46_146:hover ._searchIcon_17c46_146{color:var(--accent)}._searchWrapper_17c46_119:focus-within ._searchIcon_17c46_146{color:#fff}._searchInput_17c46_173{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_17c46_173:focus,._searchInput_17c46_173:focus-visible,input._searchInput_17c46_173:focus,input._searchInput_17c46_173:focus-visible{outline:none!important;outline-offset:0!important;box-shadow:none!important;border:none!important}._searchInput_17c46_173::placeholder{color:#ffffff8c}._searchWrapper_17c46_119:focus-within ._searchInput_17c46_173{width:230px}._searchKbd_17c46_206{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_17c46_224{opacity:0;pointer-events:none}._searchButton_17c46_229{display:none;cursor:pointer}._searchButton_17c46_229:hover{opacity:.9;transform:translateY(-1px)}._profileBtn_17c46_239{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, transparent);cursor:pointer;transition:all var(--transition-base);display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--header-btn-bg, rgba(0, 0, 0, .15));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--text-primary)}._profileBtn_17c46_239:hover{border-color:#ffffff59;transform:translateY(-1px);background:var(--header-btn-bg-hover, rgba(0, 0, 0, .25))}._profileBtn_17c46_239:active{transform:scale(.95)}._profileBtn_17c46_239 svg{color:var(--text-primary);font-size:1.1rem}._profileAvatar_17c46_274{width:50px;height:50px;display:flex;flex-shrink:0}._profileName_17c46_281{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-sm);font-weight:500}._hamburgerBtn_17c46_290{background:var(--header-control-bg, transparent);border:1px solid var(--header-control-border, transparent);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;transition:background var(--transition-fast),transform var(--transition-fast);height:40px;width:40px;flex-shrink:0}._hamburgerBtn_17c46_290:hover{background:var(--header-btn-bg-hover, rgba(255, 255, 255, .08));border-color:#fff3;transform:translateY(-1px)}._searchButton_17c46_229:focus-visible,._profileBtn_17c46_239:focus-visible,._hamburgerBtn_17c46_290:focus-visible,._logo_17c46_38:focus-visible{outline:none;box-shadow:var(--shadow-focus)}._searchDropdown_17c46_323{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_17c46_1 .18s ease-out}@media(max-width:1024px){._searchDropdown_17c46_323{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_17c46_355{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_17c46_363{padding:var(--space-4);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-primary)}._searchDropdownQuery_17c46_371{font-size:.85rem;font-weight:600;color:var(--text-primary)}._searchDropdownSeeAll_17c46_377{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_17c46_377:hover{background:var(--accent-subtle);color:var(--accent-lighter)}._searchDropdownList_17c46_394{overflow-y:auto;flex:1}._searchDropdownList_17c46_394::-webkit-scrollbar{width:4px}._searchDropdownList_17c46_394::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:2px}._searchDropdownItem_17c46_408{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_17c46_408:hover{background:#ffffff0d}._searchDropdownThumb_17c46_426{width:48px;height:64px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0;box-shadow:0 2px 8px #0000004d}._searchDropdownItemInfo_17c46_435{display:flex;flex-direction:column;gap:2px;min-width:0}._searchDropdownItemTitle_17c46_442{font-size:.85rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._searchDropdownItemMeta_17c46_451{font-size:.7rem;color:var(--text-muted);white-space:nowrap}@keyframes _slideIn_17c46_1{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}._logo_17c46_38:active,._searchButton_17c46_229:active,._profileBtn_17c46_239:active,._hamburgerBtn_17c46_290:active{transform:scale(.97)}@media(prefers-reduced-motion:reduce){._logo_17c46_38,._searchButton_17c46_229,._profileBtn_17c46_239,._hamburgerBtn_17c46_290,._searchIcon_17c46_146{transition:none}}._hamburgerBtn_17c46_290:active{transform:scale(.95)}._mobileSearchBar_17c46_489{display:none}@media(max-width:1024px){._searchWrapper_17c46_119{background:transparent;border:none;padding:0;height:auto;cursor:default;backdrop-filter:none;-webkit-backdrop-filter:none}._searchWrapper_17c46_119:hover{background:transparent;border-color:transparent}._searchWrapper_17c46_119:focus-within{background:transparent;box-shadow:none;border-color:transparent}._searchIconButton_17c46_146,._searchIcon_17c46_146,._searchInput_17c46_173{display:none}._searchWrapper_17c46_119:focus-within ._searchInput_17c46_173{display:none}._searchKbd_17c46_206{display:none}._searchButton_17c46_229{display:flex;background:var(--header-btn-bg, rgba(0, 0, 0, .15));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:44px;height:44px;border-radius:50%;transition:all var(--transition-base);flex-shrink:0}._searchButton_17c46_229:hover{background:var(--header-btn-bg-hover, rgba(0, 0, 0, .25));border-color:#ffffff59;transform:translateY(-1px)}._searchIconMobile_17c46_560{font-size:1rem;color:#fff;transition:all var(--transition-base)}._searchButton_17c46_229:hover ._searchIconMobile_17c46_560{color:var(--accent)}._mobileSearchBar_17c46_489{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_17c46_1 .2s ease;transition:transform var(--transition-base),opacity var(--transition-base)}._mobileSearchBarHidden_17c46_587{transform:translateY(-100%);opacity:0;pointer-events:none}@keyframes _slideDown_17c46_1{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}._mobileSearchInner_17c46_604{display:flex;align-items:center;background:#ffffff14;border:none;border-radius:var(--radius-full);padding:0 var(--space-4);height:40px}._mobileSearchInner_17c46_604:focus-within{border:none;outline:none;box-shadow:0 0 0 2px var(--accent)}._mobileSearchIcon_17c46_620{color:#ffffff80;font-size:.85rem;flex-shrink:0;margin-right:var(--space-2)}._mobileSearchInput_17c46_627{flex:1;background:transparent;border:none;outline:none;color:var(--text-primary);font-size:var(--font-size-sm);font-family:inherit;height:100%}._mobileSearchInput_17c46_627::placeholder{color:#ffffff80}._mobileSearchInput_17c46_627:focus,input._mobileSearchInput_17c46_627:focus,._mobileSearchInput_17c46_627:focus-visible,input._mobileSearchInput_17c46_627:focus-visible{outline:none!important;box-shadow:none!important;border:none}}@media(max-width:848px){._header_17c46_1{height:64px;padding:0 var(--space-3);--logo-height: 36px}._searchDropdown_17c46_323{top:calc(120px + env(safe-area-inset-top,0px));max-height:calc(100dvh - 120px - env(safe-area-inset-top,0px))}._searchDropdownNoBar_17c46_355{top:calc(64px + env(safe-area-inset-top,0px) + var(--space-3));max-height:calc(100dvh - 64px - env(safe-area-inset-top,0px) - var(--space-3))}._headerInner_17c46_54{padding:0;max-width:none}._leftSection_17c46_64{gap:var(--space-1);min-width:0}._hamburgerBtn_17c46_290{height:36px;width:36px;font-size:.9rem}._logo_17c46_38{padding:2px;min-width:0}._searchButton_17c46_229{width:36px;height:36px}._rightSection_17c46_113{gap:2px}._profileBtn_17c46_239{height:36px}._profileAvatar_17c46_274{width:36px;height:36px}._profileName_17c46_281{max-width:84px}}@media(max-width:900px){._desktopNav_17c46_70{display:none}}@media(max-width:480px){._rightSection_17c46_113{gap:4px}._hamburgerBtn_17c46_290{height:38px;width:38px;font-size:1rem}._logo_17c46_38{padding:2px;min-width:0}._searchButton_17c46_229{width:38px;height:38px}._profileBtn_17c46_239{width:38px;height:38px;padding:0}._profileAvatar_17c46_274{width:38px;height:38px}._profileName_17c46_281{display:none}}._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}
|