@serifpersia/dango 4.0.3 → 4.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/README.md +1 -1
  2. package/client/dist/assets/{AnimeCard-2k8ssFQg.js → AnimeCard-Dj2gXZQ_.js} +1 -1
  3. package/client/dist/assets/{AnimeInfo-DYIMQZ_G.js → AnimeInfo-FTnsxEMu.js} +1 -1
  4. package/client/dist/assets/{AnimeInfoPage-BK1gsbaN.js → AnimeInfoPage-DaoQEHyi.js} +2 -2
  5. package/client/dist/assets/{Asmr-D562WT1y.js → Asmr-Dj290riM.js} +1 -1
  6. package/client/dist/assets/{AsmrPopup-DSb1jdb1.js → AsmrPopup-DCxF-0FD.js} +1 -1
  7. package/client/dist/assets/{AsmrResetProgressModal-Cb30-ErW.js → AsmrResetProgressModal-BFgtJIjq.js} +1 -1
  8. package/client/dist/assets/{Home-DBefqglV.js → Home-BvAHDt_3.js} +1 -1
  9. package/client/dist/assets/{Insights-C57WhdmV.js → Insights-xaMU0gDH.js} +1 -1
  10. package/client/dist/assets/{LibraryListPage-ByCxrf4V.js → LibraryListPage-y1J_sbu3.js} +1 -1
  11. package/client/dist/assets/{ListeningList-BJJzg0gb.js → ListeningList-DxPvvTGs.js} +1 -1
  12. package/client/dist/assets/{Manga-CW-xSa6W.js → Manga-Dc9QLjTm.js} +1 -1
  13. package/client/dist/assets/{MangaInfoPage-B2eqiI6S.js → MangaInfoPage-BHnn83Zv.js} +1 -1
  14. package/client/dist/assets/{MangaReadPage-DU_pWeC4.js → MangaReadPage-CDQJ6lwj.js} +1 -1
  15. package/client/dist/assets/{MangaResetProgressModal-BoaCnx2i.js → MangaResetProgressModal-Cw4txoU9.js} +1 -1
  16. package/client/dist/assets/{Mature-I-5BXxqP.js → Mature-DdHf-knG.js} +1 -1
  17. package/client/dist/assets/{MatureConsentModal-B8mTktfi.js → MatureConsentModal-BuJjdQ5N.js} +1 -1
  18. package/client/dist/assets/{MediaCard-yDEaWmRR.js → MediaCard-FQr72c16.js} +1 -1
  19. package/client/dist/assets/{OptionListMenu-XTkQ_xrQ.js → OptionListMenu-CAjFAq0c.js} +1 -1
  20. package/client/dist/assets/{Player-DnWze_gB.js → Player-DO3lmGMJ.js} +2 -2
  21. package/client/dist/assets/{PlayerProvider-hfX3WV6K.js → PlayerProvider-1nQxpPbi.js} +1 -1
  22. package/client/dist/assets/{PlayerSettings-C5n3kYuV.js → PlayerSettings-BxmbpvrQ.js} +1 -1
  23. package/client/dist/assets/{QueueOptionsButton-BMlChzgW.js → QueueOptionsButton-Tsij7x21.js} +1 -1
  24. package/client/dist/assets/{QueueRail-CV0rsdWL.js → QueueRail-DHSBCDXc.js} +1 -1
  25. package/client/dist/assets/{ReadingList-Dadozt41.js → ReadingList-Bl-49YU7.js} +1 -1
  26. package/client/dist/assets/{ResetProgressModal-BXkiBRZv.js → ResetProgressModal-DIn1j8Qp.js} +1 -1
  27. package/client/dist/assets/{Search-DiUbhvfg.js → Search-uY6VQ4os.js} +1 -1
  28. package/client/dist/assets/{Settings-fCV1C7Pa.js → Settings-CHkvGAxk.js} +1 -1
  29. package/client/dist/assets/{SkeletonGrid-DHbe7WWt.js → SkeletonGrid-xUVpcN5T.js} +1 -1
  30. package/client/dist/assets/{Trackers-DvRqGHrx.js → Trackers-DXrxbGg1.js} +1 -1
  31. package/client/dist/assets/Tv-DFrBiMVQ.js +4 -0
  32. package/client/dist/assets/{TvInfo-BEaENXW9.js → TvInfo-eLmiGzwb.js} +1 -1
  33. package/client/dist/assets/{TvPopup-BWvnz3aD.js → TvPopup-CaXs4L6B.js} +1 -1
  34. package/client/dist/assets/{TvSearch-Bu1r0z8j.js → TvSearch-D_IGBBD8.js} +1 -1
  35. package/client/dist/assets/{TvWatchlist-DjZxyCqC.js → TvWatchlist-Ol8QK-C9.js} +1 -1
  36. package/client/dist/assets/{VirtualKeyboard-otEdnEQ2.js → VirtualKeyboard-Bp-M8SVt.js} +1 -1
  37. package/client/dist/assets/{WatchAlong-BfHji5Zr.js → WatchAlong-qJzs9_fD.js} +1 -1
  38. package/client/dist/assets/{WatchAlongPanel-Df8EFgd_.js → WatchAlongPanel-DLuYT4hH.js} +1 -1
  39. package/client/dist/assets/{Watchlist-D4HJr6pg.js → Watchlist-DcAUYWtZ.js} +1 -1
  40. package/client/dist/assets/{index-YxVpiwVZ.css → index-BBbcJwUD.css} +1 -1
  41. package/client/dist/assets/{index-jbfR1Gmm.js → index-CkZCduQZ.js} +2 -2
  42. package/client/dist/assets/{libraryInvalidation-Il_DYhmy.js → libraryInvalidation-Cv-7EfU1.js} +1 -1
  43. package/client/dist/assets/{playbackCompletion-Diib3fZu.js → playbackCompletion-BTwrTq5S.js} +1 -1
  44. package/client/dist/assets/{useAnimeInfoData-DdGnfUWc.js → useAnimeInfoData-tmC_S41n.js} +1 -1
  45. package/client/dist/assets/{useMangaLibrary-DZ-ZzUfI.js → useMangaLibrary-CPluPl_T.js} +1 -1
  46. package/client/dist/assets/{useMangaPopup-QdPYB8yz.js → useMangaPopup-DRDWlEcN.js} +1 -1
  47. package/client/dist/assets/{useProviders-7Im8EwZk.js → useProviders-aA8vRBov.js} +1 -1
  48. package/client/dist/assets/{useTv-B6wLwlA4.js → useTv-Dl0TYap6.js} +1 -1
  49. package/client/dist/assets/{useTvLibrary-DUFwbdjO.js → useTvLibrary-BCgO-d_K.js} +1 -1
  50. package/client/dist/assets/{useWatchAlongPlayer-C1T1IqCH.js → useWatchAlongPlayer-DfbkmL7h.js} +1 -1
  51. package/client/dist/index.html +2 -2
  52. package/package.json +2 -2
  53. package/server/dist/server.js +182 -182
  54. package/server/package.json +1 -1
  55. package/client/dist/assets/Tv-Dbih_6wX.js +0 -4
@@ -1 +1 @@
1
- import{d as n,h as b,T as k,u as T}from"./vendor-core-DfaOB3Rn.js";import{ak as _,t as m,k as w,i as I,l as P}from"./index-jbfR1Gmm.js";import{d as D}from"./useTvLibrary-DUFwbdjO.js";import{a as W}from"./MediaCard-yDEaWmRR.js";const S=({item:e,anchorRect:l,onMouseEnter:i,onMouseLeave:c,onRequestClose:p})=>{const[a,u]=n(null),[d,r]=n(!0),{toggle:v,bookmarkedIds:g}=D(),y=_(e.type,e.id),f=g.has(y);b(()=>{let o=!1;return r(!0),m.tv.details.query({type:e.type,id:String(e.id)}).then(s=>{o||(u({overview:s.overview,vote_average:s.vote_average,number_of_seasons:s.number_of_seasons}),r(!1))}).catch(()=>{o||r(!1)}),()=>{o=!0}},[e.id,e.type]);const h=k(()=>a?.genres?a.genres.slice(0,4).map(o=>o.name):[],[a?.genres]),t=[];return a?.vote_average!=null&&a.vote_average>0&&t.push({icon:"star",label:Number(a.vote_average).toFixed(1),accent:!0}),t.push({icon:"tv",label:e.type==="tv"?"TV Show":"Movie"}),e.year&&t.push({label:e.year}),a?.status&&t.push({label:a.status}),T(W,{anchorRect:l,title:e.title,loading:d,meta:t,genres:h,synopsis:P(a?.overview,200),primaryAction:{to:I(e.type,e.id),label:"Watch now",icon:"play"},secondaryAction:{to:w(e.type,e.id),label:"Details",icon:"info-circle"},bookmarked:f,onToggleBookmark:()=>v({tmdbId:e.id,mediaType:e.type,title:e.title,poster:e.image,year:e.year}),onMouseEnter:i,onMouseLeave:c,onRequestClose:p})};export{S as T};
1
+ import{d as n,h as b,T as k,u as T}from"./vendor-core-DfaOB3Rn.js";import{ak as _,t as m,k as w,i as I,l as P}from"./index-CkZCduQZ.js";import{d as D}from"./useTvLibrary-BCgO-d_K.js";import{a as W}from"./MediaCard-FQr72c16.js";const S=({item:e,anchorRect:l,onMouseEnter:i,onMouseLeave:c,onRequestClose:p})=>{const[a,u]=n(null),[d,r]=n(!0),{toggle:v,bookmarkedIds:g}=D(),y=_(e.type,e.id),f=g.has(y);b(()=>{let o=!1;return r(!0),m.tv.details.query({type:e.type,id:String(e.id)}).then(s=>{o||(u({overview:s.overview,vote_average:s.vote_average,number_of_seasons:s.number_of_seasons}),r(!1))}).catch(()=>{o||r(!1)}),()=>{o=!0}},[e.id,e.type]);const h=k(()=>a?.genres?a.genres.slice(0,4).map(o=>o.name):[],[a?.genres]),t=[];return a?.vote_average!=null&&a.vote_average>0&&t.push({icon:"star",label:Number(a.vote_average).toFixed(1),accent:!0}),t.push({icon:"tv",label:e.type==="tv"?"TV Show":"Movie"}),e.year&&t.push({label:e.year}),a?.status&&t.push({label:a.status}),T(W,{anchorRect:l,title:e.title,loading:d,meta:t,genres:h,synopsis:P(a?.overview,200),primaryAction:{to:I(e.type,e.id),label:"Watch now",icon:"play"},secondaryAction:{to:w(e.type,e.id),label:"Details",icon:"info-circle"},bookmarked:f,onToggleBookmark:()=>v({tmdbId:e.id,mediaType:e.type,title:e.title,poster:e.image,year:e.year}),onMouseEnter:i,onMouseLeave:c,onRequestClose:p})};export{S as T};
@@ -1 +1 @@
1
- import{h as I,p as ae,A as re,d as o,T as Y,q as M,u as t}from"./vendor-core-DfaOB3Rn.js";import{I as h}from"./vendor-icons-C1Pj_eSX.js";import{P as D}from"./MediaCard-yDEaWmRR.js";import{a as ne,T as se}from"./useTv-B6wLwlA4.js";import{S as le}from"./SkeletonGrid-DHbe7WWt.js";import{u as ie,T as W,M as Q,aa as oe,B as x}from"./index-jbfR1Gmm.js";import{E as ce}from"./ErrorMessage-hMt90aG4.js";import{s as r}from"./Search.module-C_qwCdHS.js";import"./MediaPopupShell-BewMMT93.js";import"./vendor-ui-3qrARCPr.js";import"./useIsMobile-Dvx1uJ82.js";import"./MatureConsentModal-B8mTktfi.js";import"./TvPopup-BWvnz3aD.js";import"./useTvLibrary-DUFwbdjO.js";import"./vendor-query-BBT5_sHx.js";import"./libraryInvalidation-Il_DYhmy.js";const de=[{value:"multi",label:"All"},{value:"tv",label:"TV Shows"},{value:"movie",label:"Movies"}],ue=[{value:"popularity.desc",label:"Popularity"},{value:"vote_average.desc",label:"Top Rated"},{value:"primary_release_date.desc",label:"Newest"},{value:"primary_release_date.asc",label:"Oldest"},{value:"vote_count.desc",label:"Most Voted"}],O=new Date().getFullYear(),me=[{value:"ALL",label:"All Years"},...Array.from({length:O-1980+1},(l,m)=>({value:String(O-m),label:String(O-m)}))];function Ae(){I(()=>{document.title="Search TV & Movies - dango"},[]);const[l,m]=ae(),{lowEndMode:K}=ie(),C=re(null),[g,H]=o(l.get("q")||""),[p,U]=o(l.get("q")||""),[u,v]=o(parseInt(l.get("page")||"1",10)||1),[i,J]=o(l.get("type")||"multi"),[$,k]=o(l.get("genre")||""),[y,B]=o(l.get("year")||"ALL"),[f,E]=o(l.get("sort_by")||"popularity.desc"),[b,X]=o(!1),[c,N]=o(()=>{const e={},a=l.get("genre")||"";return a&&(e[a]="include"),e}),P=Y(()=>{if(i==="tv")return Object.entries(W).map(([a,n])=>({id:a,name:n}));if(i==="movie")return Object.entries(Q).map(([a,n])=>({id:a,name:n}));const e=new Map;for(const[a,n]of Object.entries(W))e.set(a,n);for(const[a,n]of Object.entries(Q))e.set(a,n);return Array.from(e.entries()).map(([a,n])=>({id:a,name:n}))},[i]),S=Y(()=>Object.entries(c).filter(([,a])=>a==="include").map(([a])=>a).join(","),[c]),{data:L,isLoading:w,isError:Z,error:ee}=ne({query:p,type:i,genre:S,year:y,sort_by:f,page:u}),T=L?.results||[],_=L?.total_pages||0,j=L?.total_results||0,R=u<Math.min(_,500),d=M((e={})=>{const a=new URLSearchParams,n=e.q!==void 0?e.q:p,s=e.type!==void 0?e.type:i,G=e.year!==void 0?e.year:y,V=e.sort!==void 0?e.sort:f,F=e.page!==void 0?e.page:String(u),z=e.genre!==void 0?e.genre:S;n.trim()&&a.set("q",n.trim()),s!=="multi"&&a.set("type",s),z&&a.set("genre",z),G!=="ALL"&&a.set("year",G),V!=="popularity.desc"&&a.set("sort_by",V),F!=="1"&&a.set("page",F),m(a,{replace:!0})},[p,i,y,f,u,S,m]),A=M(()=>{oe(),v(1),U(g),d({q:g,page:"1"}),window.scrollTo({top:0,behavior:"smooth"})},[g,d]),q=M(e=>{if(v(e),d({page:String(e)}),C.current){const a=C.current.getBoundingClientRect().top+window.scrollY-100;window.scrollTo({top:a,behavior:"smooth"})}},[d]),te=M(e=>{N(a=>{const n=a[e],s={...a};return n==="include"?s[e]="exclude":n==="exclude"?delete s[e]:s[e]="include",s}),v(1)},[]);return I(()=>{const a=Object.entries(c).filter(([,n])=>n==="include").map(([n])=>n).join(",");a!==$&&(k(a),d({genre:a,page:"1"}))},[c,$,k,d]),t("div",{className:"page-container",children:[t("div",{className:r.header,children:[t("h1",{className:r.pageTitle,children:"Search TV & Movies"}),t("p",{className:r.pageSubtitle,children:"Discover trending shows, movies, and more powered by TMDB"})]}),t("div",{className:r.filterContainer,children:[t("div",{className:r.searchBarWrapper,children:[t("div",{className:r.inputIconWrapper,children:[t(h,{name:"search",className:r.searchIcon}),t("input",{type:"text","data-virtual-keyboard":"true",className:r.searchInput,placeholder:"Search titles...",value:g,onInput:e=>H(e.currentTarget.value),onKeyDown:e=>e.key==="Enter"&&A()})]}),t("div",{className:r.searchActions,children:[t("select",{value:i,onChange:e=>{J(e.currentTarget.value),N({})},className:r.providerSelect,"aria-label":"Media type",children:de.map(e=>t("option",{value:e.value,children:e.label},e.value))}),t(x,{onClick:A,className:r.searchBtn,children:"Search"}),t("button",{className:`${r.filterToggleBtn} ${b?r.active:""}`,onClick:()=>X(!b),children:[t(h,{name:"filter",size:14}),t("span",{children:"Filters"}),b?t(h,{name:"chevron-up",size:12}):t(h,{name:"chevron-down",size:12})]})]})]}),t("div",{className:`${r.advancedFilters} ${b?r.show:""}`,children:[t("div",{className:r.filterDivider}),t("div",{className:r.filterGrid,children:[t("div",{className:r.filterItem,children:[t("label",{children:"Sort By"}),t("select",{value:f,onChange:e=>E(e.currentTarget.value),children:ue.map(e=>t("option",{value:e.value,children:e.label},e.value))})]}),t("div",{className:r.filterItem,children:[t("label",{children:"Year"}),t("select",{value:y,onChange:e=>B(e.currentTarget.value),children:me.map(e=>t("option",{value:e.value,children:e.label},e.value))})]})]}),P.length>0&&t("div",{className:r.genreSection,children:[t("label",{className:r.genreLabel,children:"Genres"}),t("div",{className:r.genreContainer,children:P.map(e=>t("button",{className:`${r.genreButton} ${r[c[e.id]||""]}`,onClick:()=>te(e.id),children:e.name},e.id))})]}),t("div",{className:r.filterActions,children:[t(x,{variant:"secondary",onClick:()=>{N({}),B("ALL"),E("popularity.desc"),v(1),d({genre:"",year:"ALL",sort:"popularity.desc",page:"1"})},children:"Reset All"}),t(x,{onClick:A,className:r.searchBtn,children:"Apply Filters"})]})]})]}),Z&&t(ce,{message:ee?.message||"Search failed"}),Object.keys(c).length>0&&t("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px",marginBottom:"1.5rem"},children:[t("span",{style:{fontSize:"0.8rem",color:"var(--text-muted)",fontWeight:600},children:"Active Filters:"}),Object.entries(c).map(([e,a])=>{const n=P.find(s=>s.id===e)?.name||e;return t("span",{className:`badge ${a==="include"?"badge-primary":"badge-danger"}`,style:{display:"inline-flex",alignItems:"center",gap:"6px"},children:[a==="include"?`+ ${n}`:`- ${n}`,t("button",{onClick:()=>{const s={...c};delete s[e],N(s)},style:{background:"none",border:"none",color:"inherit",cursor:"pointer"},children:"✕"})]},e)})]}),t("div",{className:r.resultsHeader,ref:C,children:[t("h2",{className:r.resultsTitle,children:[p?`Results for "${p}"`:S?"Browsing genres":i==="tv"?"Popular TV Shows":i==="movie"?"Popular Movies":"Trending",j>0&&t("span",{style:{fontWeight:400,color:"var(--text-tertiary)",fontSize:"0.85em",marginLeft:"0.5em"},children:["(",j.toLocaleString(),")"]})]}),T.length>0&&t(D,{page:u,totalPages:Math.max(1,Math.min(_,500)),canGoNext:R,onChange:q,isLoading:w})]}),t("div",{className:`${r.resultsGrid} ${K?r.lowEnd:""}`,children:w?t(le,{}):T.map(e=>t(se,{item:{id:e.id,title:e.title,year:e.year,type:e.type,image:e.image,vote_average:e.vote_average,adult:e.adult}},`${e.type}-${e.id}`))}),!w&&T.length===0&&t("div",{className:r.noResults,children:[t(h,{name:"search",size:48,className:r.noResultsIcon}),t("h3",{children:"No results found"}),t("p",{children:"Try adjusting your search or filters to find what you're looking for."})]}),T.length>0&&t("div",{className:r.bottomPagination,children:t(D,{page:u,totalPages:Math.max(1,Math.min(_,500)),canGoNext:R,onChange:q,isLoading:w,variant:"labeled"})})]})}export{Ae as default};
1
+ import{h as I,p as ae,A as re,d as o,T as Y,q as M,u as t}from"./vendor-core-DfaOB3Rn.js";import{I as h}from"./vendor-icons-C1Pj_eSX.js";import{P as D}from"./MediaCard-FQr72c16.js";import{a as ne,T as se}from"./useTv-Dl0TYap6.js";import{S as le}from"./SkeletonGrid-xUVpcN5T.js";import{u as ie,T as W,M as Q,aa as oe,B as x}from"./index-CkZCduQZ.js";import{E as ce}from"./ErrorMessage-hMt90aG4.js";import{s as r}from"./Search.module-C_qwCdHS.js";import"./MediaPopupShell-BewMMT93.js";import"./vendor-ui-3qrARCPr.js";import"./useIsMobile-Dvx1uJ82.js";import"./MatureConsentModal-BuJjdQ5N.js";import"./TvPopup-CaXs4L6B.js";import"./useTvLibrary-BCgO-d_K.js";import"./vendor-query-BBT5_sHx.js";import"./libraryInvalidation-Cv-7EfU1.js";const de=[{value:"multi",label:"All"},{value:"tv",label:"TV Shows"},{value:"movie",label:"Movies"}],ue=[{value:"popularity.desc",label:"Popularity"},{value:"vote_average.desc",label:"Top Rated"},{value:"primary_release_date.desc",label:"Newest"},{value:"primary_release_date.asc",label:"Oldest"},{value:"vote_count.desc",label:"Most Voted"}],O=new Date().getFullYear(),me=[{value:"ALL",label:"All Years"},...Array.from({length:O-1980+1},(l,m)=>({value:String(O-m),label:String(O-m)}))];function Ae(){I(()=>{document.title="Search TV & Movies - dango"},[]);const[l,m]=ae(),{lowEndMode:K}=ie(),C=re(null),[g,H]=o(l.get("q")||""),[p,U]=o(l.get("q")||""),[u,v]=o(parseInt(l.get("page")||"1",10)||1),[i,J]=o(l.get("type")||"multi"),[$,k]=o(l.get("genre")||""),[y,B]=o(l.get("year")||"ALL"),[f,E]=o(l.get("sort_by")||"popularity.desc"),[b,X]=o(!1),[c,N]=o(()=>{const e={},a=l.get("genre")||"";return a&&(e[a]="include"),e}),P=Y(()=>{if(i==="tv")return Object.entries(W).map(([a,n])=>({id:a,name:n}));if(i==="movie")return Object.entries(Q).map(([a,n])=>({id:a,name:n}));const e=new Map;for(const[a,n]of Object.entries(W))e.set(a,n);for(const[a,n]of Object.entries(Q))e.set(a,n);return Array.from(e.entries()).map(([a,n])=>({id:a,name:n}))},[i]),S=Y(()=>Object.entries(c).filter(([,a])=>a==="include").map(([a])=>a).join(","),[c]),{data:L,isLoading:w,isError:Z,error:ee}=ne({query:p,type:i,genre:S,year:y,sort_by:f,page:u}),T=L?.results||[],_=L?.total_pages||0,j=L?.total_results||0,R=u<Math.min(_,500),d=M((e={})=>{const a=new URLSearchParams,n=e.q!==void 0?e.q:p,s=e.type!==void 0?e.type:i,G=e.year!==void 0?e.year:y,V=e.sort!==void 0?e.sort:f,F=e.page!==void 0?e.page:String(u),z=e.genre!==void 0?e.genre:S;n.trim()&&a.set("q",n.trim()),s!=="multi"&&a.set("type",s),z&&a.set("genre",z),G!=="ALL"&&a.set("year",G),V!=="popularity.desc"&&a.set("sort_by",V),F!=="1"&&a.set("page",F),m(a,{replace:!0})},[p,i,y,f,u,S,m]),A=M(()=>{oe(),v(1),U(g),d({q:g,page:"1"}),window.scrollTo({top:0,behavior:"smooth"})},[g,d]),q=M(e=>{if(v(e),d({page:String(e)}),C.current){const a=C.current.getBoundingClientRect().top+window.scrollY-100;window.scrollTo({top:a,behavior:"smooth"})}},[d]),te=M(e=>{N(a=>{const n=a[e],s={...a};return n==="include"?s[e]="exclude":n==="exclude"?delete s[e]:s[e]="include",s}),v(1)},[]);return I(()=>{const a=Object.entries(c).filter(([,n])=>n==="include").map(([n])=>n).join(",");a!==$&&(k(a),d({genre:a,page:"1"}))},[c,$,k,d]),t("div",{className:"page-container",children:[t("div",{className:r.header,children:[t("h1",{className:r.pageTitle,children:"Search TV & Movies"}),t("p",{className:r.pageSubtitle,children:"Discover trending shows, movies, and more powered by TMDB"})]}),t("div",{className:r.filterContainer,children:[t("div",{className:r.searchBarWrapper,children:[t("div",{className:r.inputIconWrapper,children:[t(h,{name:"search",className:r.searchIcon}),t("input",{type:"text","data-virtual-keyboard":"true",className:r.searchInput,placeholder:"Search titles...",value:g,onInput:e=>H(e.currentTarget.value),onKeyDown:e=>e.key==="Enter"&&A()})]}),t("div",{className:r.searchActions,children:[t("select",{value:i,onChange:e=>{J(e.currentTarget.value),N({})},className:r.providerSelect,"aria-label":"Media type",children:de.map(e=>t("option",{value:e.value,children:e.label},e.value))}),t(x,{onClick:A,className:r.searchBtn,children:"Search"}),t("button",{className:`${r.filterToggleBtn} ${b?r.active:""}`,onClick:()=>X(!b),children:[t(h,{name:"filter",size:14}),t("span",{children:"Filters"}),b?t(h,{name:"chevron-up",size:12}):t(h,{name:"chevron-down",size:12})]})]})]}),t("div",{className:`${r.advancedFilters} ${b?r.show:""}`,children:[t("div",{className:r.filterDivider}),t("div",{className:r.filterGrid,children:[t("div",{className:r.filterItem,children:[t("label",{children:"Sort By"}),t("select",{value:f,onChange:e=>E(e.currentTarget.value),children:ue.map(e=>t("option",{value:e.value,children:e.label},e.value))})]}),t("div",{className:r.filterItem,children:[t("label",{children:"Year"}),t("select",{value:y,onChange:e=>B(e.currentTarget.value),children:me.map(e=>t("option",{value:e.value,children:e.label},e.value))})]})]}),P.length>0&&t("div",{className:r.genreSection,children:[t("label",{className:r.genreLabel,children:"Genres"}),t("div",{className:r.genreContainer,children:P.map(e=>t("button",{className:`${r.genreButton} ${r[c[e.id]||""]}`,onClick:()=>te(e.id),children:e.name},e.id))})]}),t("div",{className:r.filterActions,children:[t(x,{variant:"secondary",onClick:()=>{N({}),B("ALL"),E("popularity.desc"),v(1),d({genre:"",year:"ALL",sort:"popularity.desc",page:"1"})},children:"Reset All"}),t(x,{onClick:A,className:r.searchBtn,children:"Apply Filters"})]})]})]}),Z&&t(ce,{message:ee?.message||"Search failed"}),Object.keys(c).length>0&&t("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px",marginBottom:"1.5rem"},children:[t("span",{style:{fontSize:"0.8rem",color:"var(--text-muted)",fontWeight:600},children:"Active Filters:"}),Object.entries(c).map(([e,a])=>{const n=P.find(s=>s.id===e)?.name||e;return t("span",{className:`badge ${a==="include"?"badge-primary":"badge-danger"}`,style:{display:"inline-flex",alignItems:"center",gap:"6px"},children:[a==="include"?`+ ${n}`:`- ${n}`,t("button",{onClick:()=>{const s={...c};delete s[e],N(s)},style:{background:"none",border:"none",color:"inherit",cursor:"pointer"},children:"✕"})]},e)})]}),t("div",{className:r.resultsHeader,ref:C,children:[t("h2",{className:r.resultsTitle,children:[p?`Results for "${p}"`:S?"Browsing genres":i==="tv"?"Popular TV Shows":i==="movie"?"Popular Movies":"Trending",j>0&&t("span",{style:{fontWeight:400,color:"var(--text-tertiary)",fontSize:"0.85em",marginLeft:"0.5em"},children:["(",j.toLocaleString(),")"]})]}),T.length>0&&t(D,{page:u,totalPages:Math.max(1,Math.min(_,500)),canGoNext:R,onChange:q,isLoading:w})]}),t("div",{className:`${r.resultsGrid} ${K?r.lowEnd:""}`,children:w?t(le,{}):T.map(e=>t(se,{item:{id:e.id,title:e.title,year:e.year,type:e.type,image:e.image,vote_average:e.vote_average,adult:e.adult}},`${e.type}-${e.id}`))}),!w&&T.length===0&&t("div",{className:r.noResults,children:[t(h,{name:"search",size:48,className:r.noResultsIcon}),t("h3",{children:"No results found"}),t("p",{children:"Try adjusting your search or filters to find what you're looking for."})]}),T.length>0&&t("div",{className:r.bottomPagination,children:t(D,{page:u,totalPages:Math.max(1,Math.min(_,500)),canGoNext:R,onChange:q,isLoading:w,variant:"labeled"})})]})}export{Ae as default};
@@ -1 +1 @@
1
- import{o as $,d as f,h as L,T as U,u as d}from"./vendor-core-DfaOB3Rn.js";import{M as x}from"./MediaCard-yDEaWmRR.js";import{L as F}from"./LibraryListPage-ByCxrf4V.js";import{R as N}from"./ResetProgressModal-BXkiBRZv.js";import{T as _}from"./TvPopup-BWvnz3aD.js";import{i as y,h as u,j as R}from"./index-jbfR1Gmm.js";import{j,u as K,a as O,b as Q,f as Y,k as q,l as z,m as G,T as I}from"./useTvLibrary-DUFwbdjO.js";import"./vendor-icons-C1Pj_eSX.js";import"./MediaPopupShell-BewMMT93.js";import"./vendor-ui-3qrARCPr.js";import"./useIsMobile-Dvx1uJ82.js";import"./MatureConsentModal-B8mTktfi.js";import"./SkeletonGrid-DHbe7WWt.js";import"./ErrorMessage-hMt90aG4.js";import"./LibraryListPage.module-r6k9nyT9.js";import"./vendor-query-BBT5_sHx.js";import"./libraryInvalidation-Il_DYhmy.js";const Z=["All","Continue Watching",...I],S=24;function mt(){const{filter:l="All"}=$(),[c,m]=f(1),[s,v]=f(null);L(()=>{document.title="TV Watchlist - dango"},[]),L(()=>{m(1)},[l]);const o=l==="Continue Watching",r=j(o?"All":l,c,S),i=K(100),T=O(),P=Q(),k=Y(),w=q(),C=z(),B=G(),M=U(()=>o?(i.data?.data??[]).map(t=>{const a=t.currentTime??0,e=t.duration??0,g=t.season??1,h=t.episode??1,n=t.mediaType==="movie",p=n?"Movie":`S${g} E${h}`,b=t.completed===1||e>0&&a>=e*.8;return{key:t.id,libId:t.id,tmdbId:t.tmdbId??0,mediaType:t.mediaType,title:t.title||"",poster:t.poster||"",year:t.year,adult:R({adult:t.adult===1}),status:t.watchlistStatus??"",badge:p,progressPercent:b?100:e>0?a/e*100:0,progressLabel:e>0?b?"Watched":n?`${u(a)} / ${u(e)}`:`${p} · ${u(a)} / ${u(e)}`:p,watchTarget:y(t.mediaType,t.tmdbId??0,n?void 0:g,n?void 0:h)}}):(r.data?.data??[]).map(t=>({key:t.id,libId:t.id,tmdbId:t.tmdbId,mediaType:t.mediaType,title:t.title,poster:t.poster||"",year:t.year,adult:R({adult:t.adult===1}),status:t.status,badge:t.lastSeason&&t.lastEpisode?`S${t.lastSeason} E${t.lastEpisode}`:void 0,progressPercent:void 0,progressLabel:void 0,watchTarget:y(t.mediaType,t.tmdbId,t.lastSeason??void 0,t.lastEpisode??void 0)})),[o,i.data,r.data]),W=o?i.data?.total??0:r.data?.total??0,E=o?i.isLoading:r.isLoading,A=o?i.error:r.error,V=t=>{s&&(P.mutate({mediaId:s.libId}),t&&T.mutate(s.libId))};return d(F,{headerTitle:"My TV Watchlist",headerSubtitle:"Track and manage your movies and shows",filters:Z,filterBy:l,filterBasePath:"/tv-watchlist",continueFilter:"Continue Watching",statusOptions:[...I],entries:M,total:W,isLoading:E,error:A,page:c,pageSize:S,onPageChange:m,emptyTitle:"Your TV watchlist is looking a bit empty",emptyFilteredText:"No titles match this filter.",emptyAllText:"Let's find something to watch!",browseLabel:"Browse TV & Movies",browseTarget:"/tv",removeListLabel:"Remove from TV Watchlist",listNoun:"TV watchlist",skipConfirmKey:"tvSkipRemoveConfirmation",onBulkStatus:(t,a)=>w.mutate({ids:t,status:a}),onBulkRemove:t=>{o?B.mutate(t):C.mutate(t)},onStatusChange:(t,a)=>k.mutate({id:t,status:a}),onRemoveItem:t=>T.mutate(t),renderCard:t=>d(x,{item:{id:t.libId,title:t.title,thumbnail:t.poster,typeBadge:t.mediaType==="movie"?"Movie":"TV",chapterBadge:t.badge??null,isAdult:t.adult},linkTo:t.watchTarget,hoverIcon:"play",progress:t.progressPercent!==void 0&&t.progressLabel?{percent:t.progressPercent,label:t.progressLabel}:void 0,showProgress:o,metaRow:t.year?d("span",{style:{opacity:.75},children:t.year}):void 0,onRemove:o?()=>v(t):void 0,renderPopup:(a,e)=>d(_,{item:{id:t.tmdbId??0,title:t.title||"",year:t.year||"",type:t.mediaType||"tv",image:t.poster||""},anchorRect:a,onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave,onRequestClose:e.close})}),modals:d(N,{isOpen:!!s,itemName:s?.title,progressKind:"watch",listLabel:"my TV watchlist",onClose:()=>{v(null)},onConfirm:V})})}export{mt as default};
1
+ import{o as $,d as f,h as L,T as U,u as d}from"./vendor-core-DfaOB3Rn.js";import{M as x}from"./MediaCard-FQr72c16.js";import{L as F}from"./LibraryListPage-y1J_sbu3.js";import{R as N}from"./ResetProgressModal-DIn1j8Qp.js";import{T as _}from"./TvPopup-CaXs4L6B.js";import{i as y,h as u,j as R}from"./index-CkZCduQZ.js";import{j,u as K,a as O,b as Q,f as Y,k as q,l as z,m as G,T as I}from"./useTvLibrary-BCgO-d_K.js";import"./vendor-icons-C1Pj_eSX.js";import"./MediaPopupShell-BewMMT93.js";import"./vendor-ui-3qrARCPr.js";import"./useIsMobile-Dvx1uJ82.js";import"./MatureConsentModal-BuJjdQ5N.js";import"./SkeletonGrid-xUVpcN5T.js";import"./ErrorMessage-hMt90aG4.js";import"./LibraryListPage.module-r6k9nyT9.js";import"./vendor-query-BBT5_sHx.js";import"./libraryInvalidation-Cv-7EfU1.js";const Z=["All","Continue Watching",...I],S=24;function mt(){const{filter:l="All"}=$(),[c,m]=f(1),[s,v]=f(null);L(()=>{document.title="TV Watchlist - dango"},[]),L(()=>{m(1)},[l]);const o=l==="Continue Watching",r=j(o?"All":l,c,S),i=K(100),T=O(),P=Q(),k=Y(),w=q(),C=z(),B=G(),M=U(()=>o?(i.data?.data??[]).map(t=>{const a=t.currentTime??0,e=t.duration??0,g=t.season??1,h=t.episode??1,n=t.mediaType==="movie",p=n?"Movie":`S${g} E${h}`,b=t.completed===1||e>0&&a>=e*.8;return{key:t.id,libId:t.id,tmdbId:t.tmdbId??0,mediaType:t.mediaType,title:t.title||"",poster:t.poster||"",year:t.year,adult:R({adult:t.adult===1}),status:t.watchlistStatus??"",badge:p,progressPercent:b?100:e>0?a/e*100:0,progressLabel:e>0?b?"Watched":n?`${u(a)} / ${u(e)}`:`${p} · ${u(a)} / ${u(e)}`:p,watchTarget:y(t.mediaType,t.tmdbId??0,n?void 0:g,n?void 0:h)}}):(r.data?.data??[]).map(t=>({key:t.id,libId:t.id,tmdbId:t.tmdbId,mediaType:t.mediaType,title:t.title,poster:t.poster||"",year:t.year,adult:R({adult:t.adult===1}),status:t.status,badge:t.lastSeason&&t.lastEpisode?`S${t.lastSeason} E${t.lastEpisode}`:void 0,progressPercent:void 0,progressLabel:void 0,watchTarget:y(t.mediaType,t.tmdbId,t.lastSeason??void 0,t.lastEpisode??void 0)})),[o,i.data,r.data]),W=o?i.data?.total??0:r.data?.total??0,E=o?i.isLoading:r.isLoading,A=o?i.error:r.error,V=t=>{s&&(P.mutate({mediaId:s.libId}),t&&T.mutate(s.libId))};return d(F,{headerTitle:"My TV Watchlist",headerSubtitle:"Track and manage your movies and shows",filters:Z,filterBy:l,filterBasePath:"/tv-watchlist",continueFilter:"Continue Watching",statusOptions:[...I],entries:M,total:W,isLoading:E,error:A,page:c,pageSize:S,onPageChange:m,emptyTitle:"Your TV watchlist is looking a bit empty",emptyFilteredText:"No titles match this filter.",emptyAllText:"Let's find something to watch!",browseLabel:"Browse TV & Movies",browseTarget:"/tv",removeListLabel:"Remove from TV Watchlist",listNoun:"TV watchlist",skipConfirmKey:"tvSkipRemoveConfirmation",onBulkStatus:(t,a)=>w.mutate({ids:t,status:a}),onBulkRemove:t=>{o?B.mutate(t):C.mutate(t)},onStatusChange:(t,a)=>k.mutate({id:t,status:a}),onRemoveItem:t=>T.mutate(t),renderCard:t=>d(x,{item:{id:t.libId,title:t.title,thumbnail:t.poster,typeBadge:t.mediaType==="movie"?"Movie":"TV",chapterBadge:t.badge??null,isAdult:t.adult},linkTo:t.watchTarget,hoverIcon:"play",progress:t.progressPercent!==void 0&&t.progressLabel?{percent:t.progressPercent,label:t.progressLabel}:void 0,showProgress:o,metaRow:t.year?d("span",{style:{opacity:.75},children:t.year}):void 0,onRemove:o?()=>v(t):void 0,renderPopup:(a,e)=>d(_,{item:{id:t.tmdbId??0,title:t.title||"",year:t.year||"",type:t.mediaType||"tv",image:t.poster||""},anchorRect:a,onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave,onRequestClose:e.close})}),modals:d(N,{isOpen:!!s,itemName:s?.title,progressKind:"watch",listLabel:"my TV watchlist",onClose:()=>{v(null)},onConfirm:V})})}export{mt as default};
@@ -1 +1 @@
1
- import{d as w,A as E,h as v,q as N,$ as D,u as o}from"./vendor-core-DfaOB3Rn.js";import{p as x}from"./index-jbfR1Gmm.js";import"./vendor-query-BBT5_sHx.js";import"./vendor-icons-C1Pj_eSX.js";const O="_keyboard_1l8yf_1",R="_small_1l8yf_18",T="_medium_1l8yf_25",q="_large_1l8yf_32",U="_topBar_1l8yf_39",V="_dragHandle_1l8yf_48",W="_grip_1l8yf_59",X="_topButton_1l8yf_67",Y="_key_1l8yf_1",j="_closeButton_1l8yf_98",A="_keys_1l8yf_104",F="_row_1l8yf_111",J="_wideKey_1l8yf_132",P="_spaceKey_1l8yf_136",G="_spaceIcon_1l8yf_144",Q="_activeKey_1l8yf_153",t={keyboard:O,small:R,medium:T,large:q,topBar:U,dragHandle:V,grip:W,topButton:X,key:Y,closeButton:j,keys:A,row:F,wideKey:J,spaceKey:P,spaceIcon:G,activeKey:Q},$="virtual-keyboard-state",b=["small","medium","large"],Z=["1","2","3","4","5","6","7","8","9","0"],ee=["!","@","#","$","%","^","&","*","(",")"],te=[["q","w","e","r","t","y","u","i","o","p"],["a","s","d","f","g","h","j","k","l"],["z","x","c","v","b","n","m"]],ne=()=>{const i={position:{x:Math.max(12,window.innerWidth-690),y:Math.max(90,window.innerHeight-330)},size:"medium"};try{const c=x.getItem($);if(!c)return i;const s=JSON.parse(c);return{position:s.position&&Number.isFinite(s.position.x)&&Number.isFinite(s.position.y)?s.position:i.position,size:s.size&&b.includes(s.size)?s.size:i.size}}catch{return i}},K=(i,c)=>{const s=c?.offsetWidth??650,r=c?.offsetHeight??270;return{x:Math.min(Math.max(8,i.x),Math.max(8,window.innerWidth-s-8)),y:Math.min(Math.max(8,i.y),Math.max(8,window.innerHeight-r-8))}};function re({activeInputRef:i,isVisible:c,onClose:s}){const[{position:r,size:l},h]=w(ne),[k,z]=w(!1),[g,S]=w(!1),f=E(null),u=E(null);v(()=>{x.setItem($,JSON.stringify({position:r,size:l}))},[r,l]),v(()=>{const e=()=>{h(n=>({...n,position:K(n.position,f.current)}))};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]);const _=()=>i.current&&document.contains(i.current)?i.current:document.activeElement instanceof HTMLInputElement?document.activeElement:null,d=e=>{const n=_();if(!n)return;const a=n.selectionStart??n.value.length,p=n.selectionEnd??n.value.length;n.setRangeText(e,a,p,"end"),n.dispatchEvent(new Event("input",{bubbles:!0})),n.focus()},M=()=>{const e=_();if(!e)return;const n=e.selectionStart??e.value.length,a=e.selectionEnd??e.value.length;n===a&&n===0||(e.setRangeText("",n===a?n-1:n,a,"end"),e.dispatchEvent(new Event("input",{bubbles:!0})),e.focus())},B=()=>{const e=_();if(!e){s();return}const n=e.form;n?n.requestSubmit():e.dispatchEvent(new KeyboardEvent("keydown",{key:"Enter",bubbles:!0})),s()},C=e=>{e.preventDefault()},y=N(e=>{if(!u.current)return;const n={x:e.clientX-u.current.x,y:e.clientY-u.current.y};h(a=>({...a,position:K(n,f.current)}))},[]),m=N(()=>{u.current=null,window.removeEventListener("mousemove",y),window.removeEventListener("mouseup",m)},[y]),L=e=>{e.preventDefault(),u.current={x:e.clientX-r.x,y:e.clientY-r.y},window.addEventListener("mousemove",y),window.addEventListener("mouseup",m)};if(v(()=>()=>{window.removeEventListener("mousemove",y),window.removeEventListener("mouseup",m)},[y,m]),!c)return null;const H=g?ee:Z,I=()=>{h(e=>{const n=b[(b.indexOf(e.size)+1)%b.length];return{...e,size:n}})};return D(o("div",{ref:f,className:`${t.keyboard} ${t[l]}`,style:{left:r.x,top:r.y},onMouseDown:C,"data-virtual-keyboard-root":!0,children:[o("div",{className:t.topBar,children:[o("div",{className:t.dragHandle,onMouseDown:L,"aria-label":"Move virtual keyboard",children:[o("span",{className:t.grip,"aria-hidden":"true"}),o("span",{children:"Virtual Keyboard"})]}),o("button",{type:"button",className:t.topButton,onClick:I,children:["Size: ",l[0].toUpperCase()+l.slice(1)]}),o("button",{type:"button",className:`${t.topButton} ${t.closeButton}`,onClick:s,children:"X"})]}),o("div",{className:t.keys,children:[o("div",{className:t.row,children:[H.map(e=>o("button",{type:"button",className:t.key,onClick:()=>d(e),children:e},e)),o("button",{type:"button",className:`${t.key} ${t.wideKey}`,onClick:M,"aria-label":"Backspace",children:"⟵"})]}),te.map((e,n)=>o("div",{className:t.row,children:[e.map(a=>{const p=k?a.toUpperCase():a;return o("button",{type:"button",className:t.key,onClick:()=>d(p),children:p},a)}),n===1&&o("button",{type:"button",className:`${t.key} ${t.wideKey}`,onClick:B,children:"Enter"})]},e.join(""))),o("div",{className:t.row,children:[o("button",{type:"button",className:`${t.key} ${t.wideKey} ${g?t.activeKey:""}`,onClick:()=>S(e=>!e),children:"Ctrl"}),o("button",{type:"button",className:`${t.key} ${t.wideKey} ${k?t.activeKey:""}`,onClick:()=>z(e=>!e),children:"Shift"}),o("button",{type:"button",className:`${t.key} ${t.spaceKey}`,onClick:()=>d(" "),"aria-label":"Space",children:o("span",{className:t.spaceIcon})}),o("button",{type:"button",className:t.key,onClick:()=>d("."),children:"."}),o("button",{type:"button",className:t.key,onClick:()=>d("-"),children:"-"})]})]})]}),document.body)}export{re as default};
1
+ import{d as w,A as E,h as v,q as N,$ as D,u as o}from"./vendor-core-DfaOB3Rn.js";import{p as x}from"./index-CkZCduQZ.js";import"./vendor-query-BBT5_sHx.js";import"./vendor-icons-C1Pj_eSX.js";const O="_keyboard_1l8yf_1",R="_small_1l8yf_18",T="_medium_1l8yf_25",q="_large_1l8yf_32",U="_topBar_1l8yf_39",V="_dragHandle_1l8yf_48",W="_grip_1l8yf_59",X="_topButton_1l8yf_67",Y="_key_1l8yf_1",j="_closeButton_1l8yf_98",A="_keys_1l8yf_104",F="_row_1l8yf_111",J="_wideKey_1l8yf_132",P="_spaceKey_1l8yf_136",G="_spaceIcon_1l8yf_144",Q="_activeKey_1l8yf_153",t={keyboard:O,small:R,medium:T,large:q,topBar:U,dragHandle:V,grip:W,topButton:X,key:Y,closeButton:j,keys:A,row:F,wideKey:J,spaceKey:P,spaceIcon:G,activeKey:Q},$="virtual-keyboard-state",b=["small","medium","large"],Z=["1","2","3","4","5","6","7","8","9","0"],ee=["!","@","#","$","%","^","&","*","(",")"],te=[["q","w","e","r","t","y","u","i","o","p"],["a","s","d","f","g","h","j","k","l"],["z","x","c","v","b","n","m"]],ne=()=>{const i={position:{x:Math.max(12,window.innerWidth-690),y:Math.max(90,window.innerHeight-330)},size:"medium"};try{const c=x.getItem($);if(!c)return i;const s=JSON.parse(c);return{position:s.position&&Number.isFinite(s.position.x)&&Number.isFinite(s.position.y)?s.position:i.position,size:s.size&&b.includes(s.size)?s.size:i.size}}catch{return i}},K=(i,c)=>{const s=c?.offsetWidth??650,r=c?.offsetHeight??270;return{x:Math.min(Math.max(8,i.x),Math.max(8,window.innerWidth-s-8)),y:Math.min(Math.max(8,i.y),Math.max(8,window.innerHeight-r-8))}};function re({activeInputRef:i,isVisible:c,onClose:s}){const[{position:r,size:l},h]=w(ne),[k,z]=w(!1),[g,S]=w(!1),f=E(null),u=E(null);v(()=>{x.setItem($,JSON.stringify({position:r,size:l}))},[r,l]),v(()=>{const e=()=>{h(n=>({...n,position:K(n.position,f.current)}))};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]);const _=()=>i.current&&document.contains(i.current)?i.current:document.activeElement instanceof HTMLInputElement?document.activeElement:null,d=e=>{const n=_();if(!n)return;const a=n.selectionStart??n.value.length,p=n.selectionEnd??n.value.length;n.setRangeText(e,a,p,"end"),n.dispatchEvent(new Event("input",{bubbles:!0})),n.focus()},M=()=>{const e=_();if(!e)return;const n=e.selectionStart??e.value.length,a=e.selectionEnd??e.value.length;n===a&&n===0||(e.setRangeText("",n===a?n-1:n,a,"end"),e.dispatchEvent(new Event("input",{bubbles:!0})),e.focus())},B=()=>{const e=_();if(!e){s();return}const n=e.form;n?n.requestSubmit():e.dispatchEvent(new KeyboardEvent("keydown",{key:"Enter",bubbles:!0})),s()},C=e=>{e.preventDefault()},y=N(e=>{if(!u.current)return;const n={x:e.clientX-u.current.x,y:e.clientY-u.current.y};h(a=>({...a,position:K(n,f.current)}))},[]),m=N(()=>{u.current=null,window.removeEventListener("mousemove",y),window.removeEventListener("mouseup",m)},[y]),L=e=>{e.preventDefault(),u.current={x:e.clientX-r.x,y:e.clientY-r.y},window.addEventListener("mousemove",y),window.addEventListener("mouseup",m)};if(v(()=>()=>{window.removeEventListener("mousemove",y),window.removeEventListener("mouseup",m)},[y,m]),!c)return null;const H=g?ee:Z,I=()=>{h(e=>{const n=b[(b.indexOf(e.size)+1)%b.length];return{...e,size:n}})};return D(o("div",{ref:f,className:`${t.keyboard} ${t[l]}`,style:{left:r.x,top:r.y},onMouseDown:C,"data-virtual-keyboard-root":!0,children:[o("div",{className:t.topBar,children:[o("div",{className:t.dragHandle,onMouseDown:L,"aria-label":"Move virtual keyboard",children:[o("span",{className:t.grip,"aria-hidden":"true"}),o("span",{children:"Virtual Keyboard"})]}),o("button",{type:"button",className:t.topButton,onClick:I,children:["Size: ",l[0].toUpperCase()+l.slice(1)]}),o("button",{type:"button",className:`${t.topButton} ${t.closeButton}`,onClick:s,children:"X"})]}),o("div",{className:t.keys,children:[o("div",{className:t.row,children:[H.map(e=>o("button",{type:"button",className:t.key,onClick:()=>d(e),children:e},e)),o("button",{type:"button",className:`${t.key} ${t.wideKey}`,onClick:M,"aria-label":"Backspace",children:"⟵"})]}),te.map((e,n)=>o("div",{className:t.row,children:[e.map(a=>{const p=k?a.toUpperCase():a;return o("button",{type:"button",className:t.key,onClick:()=>d(p),children:p},a)}),n===1&&o("button",{type:"button",className:`${t.key} ${t.wideKey}`,onClick:B,children:"Enter"})]},e.join(""))),o("div",{className:t.row,children:[o("button",{type:"button",className:`${t.key} ${t.wideKey} ${g?t.activeKey:""}`,onClick:()=>S(e=>!e),children:"Ctrl"}),o("button",{type:"button",className:`${t.key} ${t.wideKey} ${k?t.activeKey:""}`,onClick:()=>z(e=>!e),children:"Shift"}),o("button",{type:"button",className:`${t.key} ${t.spaceKey}`,onClick:()=>d(" "),"aria-label":"Space",children:o("span",{className:t.spaceIcon})}),o("button",{type:"button",className:t.key,onClick:()=>d("."),children:"."}),o("button",{type:"button",className:t.key,onClick:()=>d("-"),children:"-"})]})]})]}),document.body)}export{re as default};
@@ -1 +1 @@
1
- import{c as h,d as s,u as e}from"./vendor-core-DfaOB3Rn.js";import{a7 as d,B as m}from"./index-jbfR1Gmm.js";import{W as u,s as p,a as g}from"./WatchAlongPanel-Df8EFgd_.js";import"./vendor-query-BBT5_sHx.js";import"./vendor-icons-C1Pj_eSX.js";function b(){const o=d(),c=h(),[t,l]=s(c.hash.slice(1)),[n,a]=s("");return e("div",{style:{maxWidth:640,margin:"2rem auto",padding:"0 1rem"},children:[e("h1",{children:"Watch along"}),e("p",{children:"Watch with friends across the internet. The host chooses the episode, provider, and source, and controls playback. Your dango streams your own video."}),o.session&&e(u,{}),!o.session&&e("form",{className:p.panel,onSubmit:r=>{r.preventDefault();try{o.join(t),a("")}catch(i){a(i instanceof Error?i.message:"Could not join room")}},children:[e(g,{}),e("label",{htmlFor:"watch-invite",children:"Invite link or room code"}),e("input",{id:"watch-invite",value:t,onChange:r=>l(r.currentTarget.value),required:!0,autoComplete:"off"}),e("p",{children:"Joining shares your connection and playback readiness with the room service. Start a room from an episode using a direct HLS source."}),e(m,{type:"submit",disabled:!o.workerUrl,style:{marginTop:"1rem"},children:"Join room"}),!o.workerUrl&&e("p",{children:"Watch along is unavailable. The server needs a watch-along service URL."}),n&&e("p",{role:"alert",children:n})]})]})}export{b as default};
1
+ import{c as h,d as s,u as e}from"./vendor-core-DfaOB3Rn.js";import{a7 as d,B as m}from"./index-CkZCduQZ.js";import{W as u,s as p,a as g}from"./WatchAlongPanel-DLuYT4hH.js";import"./vendor-query-BBT5_sHx.js";import"./vendor-icons-C1Pj_eSX.js";function b(){const o=d(),c=h(),[t,l]=s(c.hash.slice(1)),[n,a]=s("");return e("div",{style:{maxWidth:640,margin:"2rem auto",padding:"0 1rem"},children:[e("h1",{children:"Watch along"}),e("p",{children:"Watch with friends across the internet. The host chooses the episode, provider, and source, and controls playback. Your dango streams your own video."}),o.session&&e(u,{}),!o.session&&e("form",{className:p.panel,onSubmit:r=>{r.preventDefault();try{o.join(t),a("")}catch(i){a(i instanceof Error?i.message:"Could not join room")}},children:[e(g,{}),e("label",{htmlFor:"watch-invite",children:"Invite link or room code"}),e("input",{id:"watch-invite",value:t,onChange:r=>l(r.currentTarget.value),required:!0,autoComplete:"off"}),e("p",{children:"Joining shares your connection and playback readiness with the room service. Start a room from an episode using a direct HLS source."}),e(m,{type:"submit",disabled:!o.workerUrl,style:{marginTop:"1rem"},children:"Join room"}),!o.workerUrl&&e("p",{children:"Watch along is unavailable. The server needs a watch-along service URL."}),n&&e("p",{role:"alert",children:n})]})]})}export{b as default};
@@ -1 +1 @@
1
- import{d as h,A as _,h as z,u as s,L as C}from"./vendor-core-DfaOB3Rn.js";import{a7 as g,B as r}from"./index-jbfR1Gmm.js";const N="_panel_ntzz0_1",b="_summary_ntzz0_10",k="_heading_ntzz0_20",x="_actions_ntzz0_21",T="_members_ntzz0_22",A="_name_ntzz0_29",o={panel:N,summary:b,heading:k,actions:x,members:T,name:A};function L(){const t=g();return s("label",{className:o.name,children:["Display name",s("input",{value:t.displayName,onChange:a=>t.setDisplayName(a.currentTarget.value),maxLength:32,placeholder:"Your name (optional)",autoComplete:"nickname"}),s("small",{children:"Remembered for this profile on this browser."})]})}function D({playback:t,onCreate:a,needsPlayback:l,onEnablePlayback:p}){const e=g(),[y,m]=h(!1),[d,i]=h(""),[v,f]=h(!1),c=_(null);z(()=>{c.current&&(e.session||l)&&(c.current.open=!0)},[e.session,l]);const u=e.session?`${e.workerUrl}/join#${e.session.id}.${e.session.guestToken}`:"";return s("details",{ref:c,className:o.panel,"aria-label":"Watch along",children:[s("summary",{className:o.summary,children:["Watch along",e.session?e.session.host?" · You are hosting":" · Following host":""]}),s("div",{className:o.heading,children:e.session?s("div",{className:o.actions,children:[s(r,{size:"sm",variant:"secondary",onClick:async()=>{f(!0);try{await navigator.clipboard.writeText(u),i("Invite copied")}catch{i("Copy the invite below")}},children:"Copy invite"}),s(r,{size:"sm",variant:"ghost",onClick:e.leave,children:e.session.host?"End room":"Leave room"})]}):s("div",{className:o.actions,children:[a&&s(r,{size:"sm",loading:y,disabled:!t||!e.workerUrl,onClick:async()=>{if(t){m(!0),i("");try{a(),await e.create({...t,playing:!1})}catch(n){i(n instanceof Error?n.message:"Could not create room")}finally{m(!1)}}},children:"Create room"}),s(C,{to:"/watch-along",children:"Join a room"})]})}),s(L,{}),!e.session&&s("p",{children:"Direct HLS only. Each viewer needs their own dango. Room controls use the shared watch-along service."}),e.session&&s("p",{children:[e.connected?e.room?.hostOnline?"Connected":"Host disconnected. Room closes after 60 seconds unless they reconnect":"Connecting…"," ","· Provider and source follow the host. Volume and subtitles stay yours."]}),e.room&&s("p",{children:[e.session?.host&&"End the room when you are finished watching. ","Rooms automatically close six hours after creation. This room expires at"," ",s("time",{dateTime:new Date(e.room.expiresAt).toISOString(),children:new Date(e.room.expiresAt).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}),", even if playback is still active."]}),e.room&&s("ul",{className:o.members,children:e.room.members.map((n,w)=>s("li",{children:[n.name||(n.host?"Host":`Guest ${w+1}`),n.name&&n.host?" (host)":"",n.id===e.selfId?" (you)":"",": ",n.status]},n.id))}),l&&s(r,{size:"sm",onClick:p,children:"Enable playback"}),v&&e.session&&s("input",{"aria-label":"Room invite",readOnly:!0,value:u,onFocus:n=>n.currentTarget.select()}),(e.error||d)&&s("p",{role:"status",children:e.error||d})]})}export{D as W,L as a,o as s};
1
+ import{d as h,A as _,h as z,u as s,L as C}from"./vendor-core-DfaOB3Rn.js";import{a7 as g,B as r}from"./index-CkZCduQZ.js";const N="_panel_ntzz0_1",b="_summary_ntzz0_10",k="_heading_ntzz0_20",x="_actions_ntzz0_21",T="_members_ntzz0_22",A="_name_ntzz0_29",o={panel:N,summary:b,heading:k,actions:x,members:T,name:A};function L(){const t=g();return s("label",{className:o.name,children:["Display name",s("input",{value:t.displayName,onChange:a=>t.setDisplayName(a.currentTarget.value),maxLength:32,placeholder:"Your name (optional)",autoComplete:"nickname"}),s("small",{children:"Remembered for this profile on this browser."})]})}function D({playback:t,onCreate:a,needsPlayback:l,onEnablePlayback:p}){const e=g(),[y,m]=h(!1),[d,i]=h(""),[v,f]=h(!1),c=_(null);z(()=>{c.current&&(e.session||l)&&(c.current.open=!0)},[e.session,l]);const u=e.session?`${e.workerUrl}/join#${e.session.id}.${e.session.guestToken}`:"";return s("details",{ref:c,className:o.panel,"aria-label":"Watch along",children:[s("summary",{className:o.summary,children:["Watch along",e.session?e.session.host?" · You are hosting":" · Following host":""]}),s("div",{className:o.heading,children:e.session?s("div",{className:o.actions,children:[s(r,{size:"sm",variant:"secondary",onClick:async()=>{f(!0);try{await navigator.clipboard.writeText(u),i("Invite copied")}catch{i("Copy the invite below")}},children:"Copy invite"}),s(r,{size:"sm",variant:"ghost",onClick:e.leave,children:e.session.host?"End room":"Leave room"})]}):s("div",{className:o.actions,children:[a&&s(r,{size:"sm",loading:y,disabled:!t||!e.workerUrl,onClick:async()=>{if(t){m(!0),i("");try{a(),await e.create({...t,playing:!1})}catch(n){i(n instanceof Error?n.message:"Could not create room")}finally{m(!1)}}},children:"Create room"}),s(C,{to:"/watch-along",children:"Join a room"})]})}),s(L,{}),!e.session&&s("p",{children:"Direct HLS only. Each viewer needs their own dango. Room controls use the shared watch-along service."}),e.session&&s("p",{children:[e.connected?e.room?.hostOnline?"Connected":"Host disconnected. Room closes after 60 seconds unless they reconnect":"Connecting…"," ","· Provider and source follow the host. Volume and subtitles stay yours."]}),e.room&&s("p",{children:[e.session?.host&&"End the room when you are finished watching. ","Rooms automatically close six hours after creation. This room expires at"," ",s("time",{dateTime:new Date(e.room.expiresAt).toISOString(),children:new Date(e.room.expiresAt).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}),", even if playback is still active."]}),e.room&&s("ul",{className:o.members,children:e.room.members.map((n,w)=>s("li",{children:[n.name||(n.host?"Host":`Guest ${w+1}`),n.name&&n.host?" (host)":"",n.id===e.selfId?" (you)":"",": ",n.status]},n.id))}),l&&s(r,{size:"sm",onClick:p,children:"Enable playback"}),v&&e.session&&s("input",{"aria-label":"Room invite",readOnly:!0,value:u,onFocus:n=>n.currentTarget.select()}),(e.error||d)&&s("p",{role:"status",children:e.error||d})]})}export{D as W,L as a,o as s};
@@ -1 +1 @@
1
- import{h as fe,o as He,a as Ze,p as Je,d as h,A as ye,T,u as t,S as Xe}from"./vendor-core-DfaOB3Rn.js";import{u as et,a as Se}from"./vendor-query-BBT5_sHx.js";import{o as tt,u as at,d as nt,H as st,I as _e,J as we,q as Ae,K as lt,t as rt,w as ct,L as it,N as ot,O as dt,P as ht,Q as ut,B as W,R as se}from"./index-jbfR1Gmm.js";import{I as g}from"./vendor-icons-C1Pj_eSX.js";import{A as mt}from"./AnimeCard-2k8ssFQg.js";import{S as pt}from"./SkeletonGrid-DHbe7WWt.js";import{E as gt}from"./ErrorMessage-hMt90aG4.js";import{P as Le}from"./MediaCard-yDEaWmRR.js";import{s as n}from"./LibraryListPage.module-r6k9nyT9.js";import{A as vt}from"./ActiveFilterChips-olGfwxle.js";import"./useAnimeInfoData-DdGnfUWc.js";import"./QueueOptionsButton-BMlChzgW.js";import"./vendor-ui-3qrARCPr.js";import"./MediaPopupShell-BewMMT93.js";import"./useIsMobile-Dvx1uJ82.js";import"./playbackCompletion-Diib3fZu.js";import"./MatureConsentModal-B8mTktfi.js";const ft=(d,v)=>{const l=new URLSearchParams(v);return l.delete("page"),l.sort(),`${d}|${l.toString()}`},yt=(d,v)=>{const l=new Set(d);return v.forEach(w=>l.add(w)),l},St=(d,v)=>{const l=new Set(d);return v.forEach(w=>l.delete(w)),l},_t="_sortSelect_cahhw_1",wt="_filterContainer_cahhw_30",At="_slideUpIn_cahhw_1",Lt="_searchBarWrapper_cahhw_44",Ct="_inputIconWrapper_cahhw_50",Nt="_searchIcon_cahhw_55",bt="_searchInput_cahhw_64",Bt="_searchActions_cahhw_84",Rt="_searchBtn_cahhw_89",kt="_filterToggleBtn_cahhw_94",Tt="_advancedFilters_cahhw_115",Wt="_show_cahhw_122",It="_filterDivider_cahhw_128",xt="_filterGrid_cahhw_134",Pt="_filterItem_cahhw_141",$t="_genreSection_cahhw_183",Ft="_genreLabel_cahhw_189",Ot="_genreContainer_cahhw_199",Gt="_genreButton_cahhw_205",Mt="_include_cahhw_222",Et="_exclude_cahhw_228",Dt="_filterActions_cahhw_235",zt="_applyBtn_cahhw_246",c={sortSelect:_t,filterContainer:wt,slideUpIn:At,searchBarWrapper:Lt,inputIconWrapper:Ct,searchIcon:Nt,searchInput:bt,searchActions:Bt,searchBtn:Rt,filterToggleBtn:kt,advancedFilters:Tt,show:Wt,filterDivider:It,filterGrid:xt,filterItem:Pt,genreSection:$t,genreLabel:Ft,genreContainer:Ot,genreButton:Gt,include:Mt,exclude:Et,filterActions:Dt,applyBtn:zt},Ne=["All","Continue Watching","Watching","Completed","On-Hold","Dropped","Planned"],Ce=Ne.slice(2),Ut=[{value:"ALL",label:"All Types"},{value:"TV",label:"TV Series"},{value:"Movie",label:"Movie"},{value:"OVA",label:"OVA"},{value:"ONA",label:"ONA"},{value:"TV_SHORT",label:"TV Short"},{value:"SPECIAL",label:"Special"},{value:"ADULT",label:"Adult (18+)"}],qt=[{value:"ALL",label:"All Seasons"},{value:"WINTER",label:"Winter"},{value:"SPRING",label:"Spring"},{value:"SUMMER",label:"Summer"},{value:"FALL",label:"Fall"}],ia=()=>{fe(()=>{document.title="Watchlist - dango"},[]);const{filter:d="All"}=He(),v=Ze(),[l,w]=Je(),Q=et(),le=tt(),[f,I]=h(parseInt(l.get("page")||"1")),[A,x]=h(l.get("query")||""),[L,V]=h(l.get("sortBy")||"last_added"),[C,P]=h(l.get("type")||"ALL"),[N,$]=h(l.get("season")||"ALL"),[b,F]=h(l.get("year")||"ALL"),[R,O]=h(()=>{const e={},a=l.get("genres")?.split(",").map(r=>r.trim()).filter(Boolean)||[],s=l.get("excludeGenres")?.split(",").map(r=>r.trim()).filter(Boolean)||[];return a.forEach(r=>r&&(e[r]="include")),s.forEach(r=>r&&(e[r]="exclude")),e}),[G,be]=h(()=>["type","season","year","genres","excludeGenres"].some(e=>l.has(e))),{lowEndMode:Be}=at(),{titlePreference:M}=nt(),{data:Re}=st(),re=Re?.genres||[],H=ye(null),[o,B]=h(null),[Z,E]=h(!1),[ce,D]=h(!1),[z,ke]=h(!1),[p,y]=h(new Set),J=ye(null),i=d==="Continue Watching",U=T(()=>{const e=new URLSearchParams(l);return e.delete("page"),e.set("titlePreference",M),e.toString()},[l,M]),{data:q,isLoading:Te,error:We}=_e(U,f,14),{data:Y,isLoading:Ie,error:xe}=we(d,U,f,14),{data:Pe}=_e(U,f+1,14),{data:$e}=we(d,U,f+1,14),X=T(()=>(i?q?.data:Y?.data)||[],[i,q,Y]),k=T(()=>(i?q?.total:Y?.total)||0,[i,q,Y]),j=i?Te:Ie,ie=i?We:xe,oe=i?Pe:$e;fe(()=>{x(l.get("query")||""),V(l.get("sortBy")||"last_added"),P(l.get("type")||"ALL"),$(l.get("season")||"ALL"),F(l.get("year")||"ALL");const e={},a=l.get("genres")?.split(",").map(u=>u.trim()).filter(Boolean)||[],s=l.get("excludeGenres")?.split(",").map(u=>u.trim()).filter(Boolean)||[];a.forEach(u=>u&&(e[u]="include")),s.forEach(u=>u&&(e[u]="exclude")),O(e),I(parseInt(l.get("page")||"1"));const r=ft(d,l);J.current!==null&&J.current!==r&&y(new Set),J.current=r},[l,d]);const Fe=Se({mutationFn:async({id:e,status:a})=>{await rt.watchlist.setStatus.mutate({id:e,status:a})},onSuccess:()=>{Q.invalidateQueries({queryKey:[Ae.watchlist]}),lt.success("Status updated")}}),Oe=Se(le.continueWatching.remove.mutationOptions({onSuccess:()=>{Q.invalidateQueries(le.continueWatching.pathFilter()),Q.invalidateQueries({queryKey:[Ae.continueWatching]})}})),ee=ct(),{data:de}=it("skipRemoveConfirmation"),Ge=ot(),te=T(()=>{const e=a=>a[M]||a.name||"";return[...X].sort((a,s)=>L==="name_asc"?e(a).localeCompare(e(s)):L==="name_desc"?e(s).localeCompare(e(a)):0)},[X,L,M]),ae=new Date().getFullYear(),Me=[{value:"ALL",label:"All Years"},...Array.from({length:ae-1980+1},(e,a)=>({value:String(ae-a),label:String(ae-a)}))],m=(e=L,a=1)=>{const s=new URLSearchParams;A.trim()&&s.set("query",A.trim()),e!=="last_added"&&s.set("sortBy",e),C!=="ALL"&&s.set("type",C),N!=="ALL"&&s.set("season",N),b!=="ALL"&&s.set("year",b);const r=Object.entries(R).filter(([,_])=>_==="include").map(([_])=>_),u=Object.entries(R).filter(([,_])=>_==="exclude").map(([_])=>_);r.length>0&&s.set("genres",r.join(",")),u.length>0&&s.set("excludeGenres",u.join(",")),a>1&&s.set("page",a.toString()),w(s),a!==f&&I(a)},he=e=>{if(m(L,e),H.current){const a=H.current.getBoundingClientRect().top+window.scrollY-100;window.scrollTo({top:a,behavior:"smooth"})}},Ee=()=>{x(""),V("last_added"),P("ALL"),$("ALL"),F("ALL"),O({}),w(new URLSearchParams),I(1)},De=e=>{O(a=>{const s=a[e],r={...a};return s==="include"?r[e]="exclude":s==="exclude"?delete r[e]:r[e]="include",r})},ue=(e,a)=>{if(i){B({id:e,name:a});return}String(de)==="true"||String(de)==="1"?ee.mutate({id:e}):B({id:e,name:a})},ze=()=>{if(o){if(o.ids){i?(Ue.mutate({ids:o.ids}),Z&&pe.mutate({ids:o.ids})):pe.mutate({ids:o.ids}),y(new Set),B(null),E(!1),D(!1);return}i?(Oe.mutate({showId:o.id}),Z&&ee.mutate({id:o.id})):ee.mutate({id:o.id}),ce&&Ge.mutate({key:"skipRemoveConfirmation",value:!0}),B(null),E(!1),D(!1)}},me=()=>{B(null),E(!1),D(!1)},pe=dt(),Ue=ht(),qe=ut(),Ye=()=>{ke(e=>{const a=!e;return a||y(new Set),a})},je=e=>{y(a=>{const s=new Set(a);return s.has(e)?s.delete(e):s.add(e),s})},K=te.map(e=>e.id),ne=K.length>0&&K.every(e=>p.has(e)),Ke=()=>{y(ne?e=>St(e,K):e=>yt(e,K))},Qe=e=>{p.size!==0&&(qe.mutate({ids:[...p],status:e}),y(new Set))},Ve=()=>{p.size!==0&&B({ids:[...p]})},ge=X.length>=14&&oe&&oe.data.length>0,ve=T(()=>Math.max(1,Math.ceil(k/14)),[k]),S=[];A.trim()&&S.push({key:"query",label:`Search: ${A}`,onRemove:()=>{x(""),m()}}),C!=="ALL"&&S.push({key:"type",label:`Type: ${C}`,onRemove:()=>{P("ALL"),m()}}),N!=="ALL"&&S.push({key:"season",label:`Season: ${N}`,onRemove:()=>{$("ALL"),m()}}),b!=="ALL"&&S.push({key:"year",label:`Year: ${b}`,onRemove:()=>{F("ALL"),m()}});for(const[e,a]of Object.entries(R))S.push({key:e,label:a==="include"?`+ ${e}`:`-${e}`,tone:a==="include"?"primary":"danger",onRemove:()=>{O(s=>{const r={...s};return delete r[e],r}),m()}});return t("div",{className:"page-container",children:[t("header",{className:n.header,children:[t("h2",{className:n.title,children:"My Watchlist"}),t("p",{className:n.subtitle,children:"Track and manage your anime collection"})]}),t("div",{className:n.controls,children:[t("div",{className:n.filters,children:Ne.map(e=>t("button",{className:`${n.filterBtn} ${d===e?n.active:""}`,onClick:()=>{const a=new URLSearchParams(l);a.delete("page"),v({pathname:`/watchlist/${e}`,search:a.toString()}),I(1)},children:e},e))}),t("div",{children:t("select",{className:c.sortSelect,value:L,onChange:e=>{const a=e.currentTarget.value;V(a),m(a,f)},children:[t("option",{value:"last_added",children:"Recently Added"}),t("option",{value:"name_asc",children:"Name (A-Z)"}),t("option",{value:"name_desc",children:"Name (Z-A)"})]})})]}),t("div",{className:c.filterContainer,children:[t("div",{className:c.searchBarWrapper,children:[t("div",{className:c.inputIconWrapper,children:[t(g,{name:"search",className:c.searchIcon}),t("input",{className:c.searchInput,placeholder:"Search your watchlist by title...",value:A,onInput:e=>x(e.currentTarget.value),onKeyDown:e=>e.key==="Enter"&&m()})]}),t("div",{className:c.searchActions,children:[t(W,{onClick:()=>m(),className:c.searchBtn,children:"Search"}),t("button",{className:`${c.filterToggleBtn} ${G?n.active:""}`,onClick:()=>be(!G),children:[t(g,{name:"filter",size:14}),t("span",{children:"Filters"}),G?t(g,{name:"chevron-up",size:12}):t(g,{name:"chevron-down",size:12})]})]})]}),t("div",{className:`${c.advancedFilters} ${G?c.show:""}`,children:[t("div",{className:c.filterDivider}),t("div",{className:c.filterGrid,children:[t("div",{className:c.filterItem,children:[t("label",{children:"Type"}),t("select",{value:C,onChange:e=>P(e.currentTarget.value),children:Ut.map(e=>t("option",{value:e.value,children:e.label},e.value))})]}),t("div",{className:c.filterItem,children:[t("label",{children:"Season"}),t("select",{value:N,onChange:e=>$(e.currentTarget.value),children:qt.map(e=>t("option",{value:e.value,children:e.label},e.value))})]}),t("div",{className:c.filterItem,children:[t("label",{children:"Year"}),t("select",{value:b,onChange:e=>F(e.currentTarget.value),children:Me.map(e=>t("option",{value:e.value,children:e.label},e.value))})]})]}),re.length>0&&t("div",{className:c.genreSection,children:[t("label",{className:c.genreLabel,children:"Genres"}),t("div",{className:c.genreContainer,children:re.map(e=>t("button",{className:`${c.genreButton} ${c[R[e]||""]}`,onClick:()=>De(e),children:e},e))})]}),t("div",{className:c.filterActions,children:[t(W,{variant:"secondary",onClick:Ee,children:"Reset All"}),t(W,{onClick:()=>m(),className:c.applyBtn,children:"Apply Filters"})]})]})]}),t("div",{className:n.resultsHeader,ref:H,children:[t("h3",{className:n.resultsTitle,children:[i?"Continue Watching":d,t("span",{className:n.itemCount,children:["(",k," items)"]})]}),t("div",{className:n.headerActions,children:[t("button",{className:`${n.manageBtn} ${z?n.active:""}`,onClick:Ye,children:[t(g,{name:"pencil-alt",size:13}),t("span",{children:"Bulk Manage"})]}),k>0&&t(Le,{page:f,totalPages:ve,canGoNext:ge,onChange:he,isLoading:j})]})]}),z&&t("div",{className:n.manageBar,children:[t("button",{className:n.selectAllBtn,onClick:Ke,children:[t("span",{className:`${n.selectAllBox} ${ne?n.selectAllBoxChecked:""}`,"aria-hidden":"true"}),t("span",{children:ne?"Clear Page":"Select All"})]}),t("span",{className:n.manageCount,children:[p.size," selected"]}),t("div",{className:n.manageSpacer}),!i&&t("select",{className:n.manageStatusSelect,value:"",onChange:e=>{e.currentTarget.value&&Qe(e.currentTarget.value)},disabled:p.size===0,title:"Set status for selected items",children:[t("option",{value:"",children:"Set status…"}),Ce.map(e=>t("option",{value:e,children:e},e))]}),t("button",{className:n.manageRemoveBtn,onClick:Ve,disabled:p.size===0,children:[t(g,{name:"trash",size:13}),t("span",{children:"Remove Selected"})]})]}),j?t(pt,{}):ie?t(gt,{message:ie.message}):t(Xe,{children:[S.length>0&&t(vt,{chips:S}),t("div",{className:`${n.grid} ${Be?n.lowEnd:""}`,children:te.map(e=>{const a=p.has(e.id);return t("div",{className:`${n.itemWrapper} ${a?n.selected:""}`,children:[z&&t("div",{className:n.selectOverlay,onClick:()=>je(e.id),title:a?"Deselect":"Select",children:t("span",{className:n.selectBadge,children:a?t(g,{name:"check",size:12}):null})}),t(mt,{anime:e,continueWatching:i,onRemove:()=>ue(e.id,e.name),layout:"vertical"}),!i&&!z&&t("div",{className:n.cardActions,children:[t("select",{className:n.statusSelect,value:e.status,onChange:s=>Fe.mutate({id:e.id,status:s.currentTarget.value}),children:Ce.map(s=>t("option",{value:s,children:s},s))}),t("button",{className:n.removeBtn,onClick:()=>ue(e.id,e.name),title:"Remove from Watchlist","aria-label":"Remove from Watchlist",children:t(g,{name:"trash",size:12})})]})]},e._id)})})]}),!j&&te.length===0&&t("div",{className:n.emptyState,children:[t("h3",{className:n.emptyTitle,children:"Your watchlist is looking a bit lonely"}),t("p",{className:n.emptyText,children:d!=="All"||A||C!=="ALL"||N!=="ALL"||b!=="ALL"||Object.keys(R).length>0?"No anime match these filters. Try adjusting them to see more titles.":"Let's find something to watch!"}),t("button",{className:n.emptyBtn,onClick:()=>v("/search"),children:[t(g,{name:"search",size:14}),t("span",{children:"Browse Anime"})]})]}),k>0&&t("div",{className:n.bottomPagination,children:t(Le,{page:f,totalPages:ve,canGoNext:ge,onChange:he,isLoading:j,variant:"labeled"})}),t(se,{isOpen:!!o,onClose:me,title:i?"Reset Progress":"Remove from Watchlist",children:[t(se.Body,{children:[t("p",{children:o?.ids&&o.ids.length>1?i?`Are you sure you want to remove watch progress for ${o.ids.length} items?`:`Are you sure you want to remove ${o.ids.length} items from your watchlist?`:i?`Are you sure you want to remove your watch progress for "${o?.name}"?`:`Are you sure you want to remove "${o?.name}" from your watchlist?`}),i&&t("label",{children:[t("input",{type:"checkbox",checked:Z,onChange:e=>E(e.currentTarget.checked)}),"Also remove from my watchlist"]}),!i&&!(o?.ids&&o.ids.length>1)&&t("label",{children:[t("input",{type:"checkbox",checked:ce,onChange:e=>D(e.currentTarget.checked)}),"Remember my choice"]})]}),t(se.Actions,{children:[t(W,{variant:"secondary",onClick:me,children:"No"}),t(W,{variant:"danger",onClick:ze,children:"Yes"})]})]})]})};export{ia as default};
1
+ import{h as fe,o as He,a as Ze,p as Je,d as h,A as ye,T,u as t,S as Xe}from"./vendor-core-DfaOB3Rn.js";import{u as et,a as Se}from"./vendor-query-BBT5_sHx.js";import{o as tt,u as at,d as nt,H as st,I as _e,J as we,q as Ae,K as lt,t as rt,w as ct,L as it,N as ot,O as dt,P as ht,Q as ut,B as W,R as se}from"./index-CkZCduQZ.js";import{I as g}from"./vendor-icons-C1Pj_eSX.js";import{A as mt}from"./AnimeCard-Dj2gXZQ_.js";import{S as pt}from"./SkeletonGrid-xUVpcN5T.js";import{E as gt}from"./ErrorMessage-hMt90aG4.js";import{P as Le}from"./MediaCard-FQr72c16.js";import{s as n}from"./LibraryListPage.module-r6k9nyT9.js";import{A as vt}from"./ActiveFilterChips-olGfwxle.js";import"./useAnimeInfoData-tmC_S41n.js";import"./QueueOptionsButton-Tsij7x21.js";import"./vendor-ui-3qrARCPr.js";import"./MediaPopupShell-BewMMT93.js";import"./useIsMobile-Dvx1uJ82.js";import"./playbackCompletion-BTwrTq5S.js";import"./MatureConsentModal-BuJjdQ5N.js";const ft=(d,v)=>{const l=new URLSearchParams(v);return l.delete("page"),l.sort(),`${d}|${l.toString()}`},yt=(d,v)=>{const l=new Set(d);return v.forEach(w=>l.add(w)),l},St=(d,v)=>{const l=new Set(d);return v.forEach(w=>l.delete(w)),l},_t="_sortSelect_cahhw_1",wt="_filterContainer_cahhw_30",At="_slideUpIn_cahhw_1",Lt="_searchBarWrapper_cahhw_44",Ct="_inputIconWrapper_cahhw_50",Nt="_searchIcon_cahhw_55",bt="_searchInput_cahhw_64",Bt="_searchActions_cahhw_84",Rt="_searchBtn_cahhw_89",kt="_filterToggleBtn_cahhw_94",Tt="_advancedFilters_cahhw_115",Wt="_show_cahhw_122",It="_filterDivider_cahhw_128",xt="_filterGrid_cahhw_134",Pt="_filterItem_cahhw_141",$t="_genreSection_cahhw_183",Ft="_genreLabel_cahhw_189",Ot="_genreContainer_cahhw_199",Gt="_genreButton_cahhw_205",Mt="_include_cahhw_222",Et="_exclude_cahhw_228",Dt="_filterActions_cahhw_235",zt="_applyBtn_cahhw_246",c={sortSelect:_t,filterContainer:wt,slideUpIn:At,searchBarWrapper:Lt,inputIconWrapper:Ct,searchIcon:Nt,searchInput:bt,searchActions:Bt,searchBtn:Rt,filterToggleBtn:kt,advancedFilters:Tt,show:Wt,filterDivider:It,filterGrid:xt,filterItem:Pt,genreSection:$t,genreLabel:Ft,genreContainer:Ot,genreButton:Gt,include:Mt,exclude:Et,filterActions:Dt,applyBtn:zt},Ne=["All","Continue Watching","Watching","Completed","On-Hold","Dropped","Planned"],Ce=Ne.slice(2),Ut=[{value:"ALL",label:"All Types"},{value:"TV",label:"TV Series"},{value:"Movie",label:"Movie"},{value:"OVA",label:"OVA"},{value:"ONA",label:"ONA"},{value:"TV_SHORT",label:"TV Short"},{value:"SPECIAL",label:"Special"},{value:"ADULT",label:"Adult (18+)"}],qt=[{value:"ALL",label:"All Seasons"},{value:"WINTER",label:"Winter"},{value:"SPRING",label:"Spring"},{value:"SUMMER",label:"Summer"},{value:"FALL",label:"Fall"}],ia=()=>{fe(()=>{document.title="Watchlist - dango"},[]);const{filter:d="All"}=He(),v=Ze(),[l,w]=Je(),Q=et(),le=tt(),[f,I]=h(parseInt(l.get("page")||"1")),[A,x]=h(l.get("query")||""),[L,V]=h(l.get("sortBy")||"last_added"),[C,P]=h(l.get("type")||"ALL"),[N,$]=h(l.get("season")||"ALL"),[b,F]=h(l.get("year")||"ALL"),[R,O]=h(()=>{const e={},a=l.get("genres")?.split(",").map(r=>r.trim()).filter(Boolean)||[],s=l.get("excludeGenres")?.split(",").map(r=>r.trim()).filter(Boolean)||[];return a.forEach(r=>r&&(e[r]="include")),s.forEach(r=>r&&(e[r]="exclude")),e}),[G,be]=h(()=>["type","season","year","genres","excludeGenres"].some(e=>l.has(e))),{lowEndMode:Be}=at(),{titlePreference:M}=nt(),{data:Re}=st(),re=Re?.genres||[],H=ye(null),[o,B]=h(null),[Z,E]=h(!1),[ce,D]=h(!1),[z,ke]=h(!1),[p,y]=h(new Set),J=ye(null),i=d==="Continue Watching",U=T(()=>{const e=new URLSearchParams(l);return e.delete("page"),e.set("titlePreference",M),e.toString()},[l,M]),{data:q,isLoading:Te,error:We}=_e(U,f,14),{data:Y,isLoading:Ie,error:xe}=we(d,U,f,14),{data:Pe}=_e(U,f+1,14),{data:$e}=we(d,U,f+1,14),X=T(()=>(i?q?.data:Y?.data)||[],[i,q,Y]),k=T(()=>(i?q?.total:Y?.total)||0,[i,q,Y]),j=i?Te:Ie,ie=i?We:xe,oe=i?Pe:$e;fe(()=>{x(l.get("query")||""),V(l.get("sortBy")||"last_added"),P(l.get("type")||"ALL"),$(l.get("season")||"ALL"),F(l.get("year")||"ALL");const e={},a=l.get("genres")?.split(",").map(u=>u.trim()).filter(Boolean)||[],s=l.get("excludeGenres")?.split(",").map(u=>u.trim()).filter(Boolean)||[];a.forEach(u=>u&&(e[u]="include")),s.forEach(u=>u&&(e[u]="exclude")),O(e),I(parseInt(l.get("page")||"1"));const r=ft(d,l);J.current!==null&&J.current!==r&&y(new Set),J.current=r},[l,d]);const Fe=Se({mutationFn:async({id:e,status:a})=>{await rt.watchlist.setStatus.mutate({id:e,status:a})},onSuccess:()=>{Q.invalidateQueries({queryKey:[Ae.watchlist]}),lt.success("Status updated")}}),Oe=Se(le.continueWatching.remove.mutationOptions({onSuccess:()=>{Q.invalidateQueries(le.continueWatching.pathFilter()),Q.invalidateQueries({queryKey:[Ae.continueWatching]})}})),ee=ct(),{data:de}=it("skipRemoveConfirmation"),Ge=ot(),te=T(()=>{const e=a=>a[M]||a.name||"";return[...X].sort((a,s)=>L==="name_asc"?e(a).localeCompare(e(s)):L==="name_desc"?e(s).localeCompare(e(a)):0)},[X,L,M]),ae=new Date().getFullYear(),Me=[{value:"ALL",label:"All Years"},...Array.from({length:ae-1980+1},(e,a)=>({value:String(ae-a),label:String(ae-a)}))],m=(e=L,a=1)=>{const s=new URLSearchParams;A.trim()&&s.set("query",A.trim()),e!=="last_added"&&s.set("sortBy",e),C!=="ALL"&&s.set("type",C),N!=="ALL"&&s.set("season",N),b!=="ALL"&&s.set("year",b);const r=Object.entries(R).filter(([,_])=>_==="include").map(([_])=>_),u=Object.entries(R).filter(([,_])=>_==="exclude").map(([_])=>_);r.length>0&&s.set("genres",r.join(",")),u.length>0&&s.set("excludeGenres",u.join(",")),a>1&&s.set("page",a.toString()),w(s),a!==f&&I(a)},he=e=>{if(m(L,e),H.current){const a=H.current.getBoundingClientRect().top+window.scrollY-100;window.scrollTo({top:a,behavior:"smooth"})}},Ee=()=>{x(""),V("last_added"),P("ALL"),$("ALL"),F("ALL"),O({}),w(new URLSearchParams),I(1)},De=e=>{O(a=>{const s=a[e],r={...a};return s==="include"?r[e]="exclude":s==="exclude"?delete r[e]:r[e]="include",r})},ue=(e,a)=>{if(i){B({id:e,name:a});return}String(de)==="true"||String(de)==="1"?ee.mutate({id:e}):B({id:e,name:a})},ze=()=>{if(o){if(o.ids){i?(Ue.mutate({ids:o.ids}),Z&&pe.mutate({ids:o.ids})):pe.mutate({ids:o.ids}),y(new Set),B(null),E(!1),D(!1);return}i?(Oe.mutate({showId:o.id}),Z&&ee.mutate({id:o.id})):ee.mutate({id:o.id}),ce&&Ge.mutate({key:"skipRemoveConfirmation",value:!0}),B(null),E(!1),D(!1)}},me=()=>{B(null),E(!1),D(!1)},pe=dt(),Ue=ht(),qe=ut(),Ye=()=>{ke(e=>{const a=!e;return a||y(new Set),a})},je=e=>{y(a=>{const s=new Set(a);return s.has(e)?s.delete(e):s.add(e),s})},K=te.map(e=>e.id),ne=K.length>0&&K.every(e=>p.has(e)),Ke=()=>{y(ne?e=>St(e,K):e=>yt(e,K))},Qe=e=>{p.size!==0&&(qe.mutate({ids:[...p],status:e}),y(new Set))},Ve=()=>{p.size!==0&&B({ids:[...p]})},ge=X.length>=14&&oe&&oe.data.length>0,ve=T(()=>Math.max(1,Math.ceil(k/14)),[k]),S=[];A.trim()&&S.push({key:"query",label:`Search: ${A}`,onRemove:()=>{x(""),m()}}),C!=="ALL"&&S.push({key:"type",label:`Type: ${C}`,onRemove:()=>{P("ALL"),m()}}),N!=="ALL"&&S.push({key:"season",label:`Season: ${N}`,onRemove:()=>{$("ALL"),m()}}),b!=="ALL"&&S.push({key:"year",label:`Year: ${b}`,onRemove:()=>{F("ALL"),m()}});for(const[e,a]of Object.entries(R))S.push({key:e,label:a==="include"?`+ ${e}`:`-${e}`,tone:a==="include"?"primary":"danger",onRemove:()=>{O(s=>{const r={...s};return delete r[e],r}),m()}});return t("div",{className:"page-container",children:[t("header",{className:n.header,children:[t("h2",{className:n.title,children:"My Watchlist"}),t("p",{className:n.subtitle,children:"Track and manage your anime collection"})]}),t("div",{className:n.controls,children:[t("div",{className:n.filters,children:Ne.map(e=>t("button",{className:`${n.filterBtn} ${d===e?n.active:""}`,onClick:()=>{const a=new URLSearchParams(l);a.delete("page"),v({pathname:`/watchlist/${e}`,search:a.toString()}),I(1)},children:e},e))}),t("div",{children:t("select",{className:c.sortSelect,value:L,onChange:e=>{const a=e.currentTarget.value;V(a),m(a,f)},children:[t("option",{value:"last_added",children:"Recently Added"}),t("option",{value:"name_asc",children:"Name (A-Z)"}),t("option",{value:"name_desc",children:"Name (Z-A)"})]})})]}),t("div",{className:c.filterContainer,children:[t("div",{className:c.searchBarWrapper,children:[t("div",{className:c.inputIconWrapper,children:[t(g,{name:"search",className:c.searchIcon}),t("input",{className:c.searchInput,placeholder:"Search your watchlist by title...",value:A,onInput:e=>x(e.currentTarget.value),onKeyDown:e=>e.key==="Enter"&&m()})]}),t("div",{className:c.searchActions,children:[t(W,{onClick:()=>m(),className:c.searchBtn,children:"Search"}),t("button",{className:`${c.filterToggleBtn} ${G?n.active:""}`,onClick:()=>be(!G),children:[t(g,{name:"filter",size:14}),t("span",{children:"Filters"}),G?t(g,{name:"chevron-up",size:12}):t(g,{name:"chevron-down",size:12})]})]})]}),t("div",{className:`${c.advancedFilters} ${G?c.show:""}`,children:[t("div",{className:c.filterDivider}),t("div",{className:c.filterGrid,children:[t("div",{className:c.filterItem,children:[t("label",{children:"Type"}),t("select",{value:C,onChange:e=>P(e.currentTarget.value),children:Ut.map(e=>t("option",{value:e.value,children:e.label},e.value))})]}),t("div",{className:c.filterItem,children:[t("label",{children:"Season"}),t("select",{value:N,onChange:e=>$(e.currentTarget.value),children:qt.map(e=>t("option",{value:e.value,children:e.label},e.value))})]}),t("div",{className:c.filterItem,children:[t("label",{children:"Year"}),t("select",{value:b,onChange:e=>F(e.currentTarget.value),children:Me.map(e=>t("option",{value:e.value,children:e.label},e.value))})]})]}),re.length>0&&t("div",{className:c.genreSection,children:[t("label",{className:c.genreLabel,children:"Genres"}),t("div",{className:c.genreContainer,children:re.map(e=>t("button",{className:`${c.genreButton} ${c[R[e]||""]}`,onClick:()=>De(e),children:e},e))})]}),t("div",{className:c.filterActions,children:[t(W,{variant:"secondary",onClick:Ee,children:"Reset All"}),t(W,{onClick:()=>m(),className:c.applyBtn,children:"Apply Filters"})]})]})]}),t("div",{className:n.resultsHeader,ref:H,children:[t("h3",{className:n.resultsTitle,children:[i?"Continue Watching":d,t("span",{className:n.itemCount,children:["(",k," items)"]})]}),t("div",{className:n.headerActions,children:[t("button",{className:`${n.manageBtn} ${z?n.active:""}`,onClick:Ye,children:[t(g,{name:"pencil-alt",size:13}),t("span",{children:"Bulk Manage"})]}),k>0&&t(Le,{page:f,totalPages:ve,canGoNext:ge,onChange:he,isLoading:j})]})]}),z&&t("div",{className:n.manageBar,children:[t("button",{className:n.selectAllBtn,onClick:Ke,children:[t("span",{className:`${n.selectAllBox} ${ne?n.selectAllBoxChecked:""}`,"aria-hidden":"true"}),t("span",{children:ne?"Clear Page":"Select All"})]}),t("span",{className:n.manageCount,children:[p.size," selected"]}),t("div",{className:n.manageSpacer}),!i&&t("select",{className:n.manageStatusSelect,value:"",onChange:e=>{e.currentTarget.value&&Qe(e.currentTarget.value)},disabled:p.size===0,title:"Set status for selected items",children:[t("option",{value:"",children:"Set status…"}),Ce.map(e=>t("option",{value:e,children:e},e))]}),t("button",{className:n.manageRemoveBtn,onClick:Ve,disabled:p.size===0,children:[t(g,{name:"trash",size:13}),t("span",{children:"Remove Selected"})]})]}),j?t(pt,{}):ie?t(gt,{message:ie.message}):t(Xe,{children:[S.length>0&&t(vt,{chips:S}),t("div",{className:`${n.grid} ${Be?n.lowEnd:""}`,children:te.map(e=>{const a=p.has(e.id);return t("div",{className:`${n.itemWrapper} ${a?n.selected:""}`,children:[z&&t("div",{className:n.selectOverlay,onClick:()=>je(e.id),title:a?"Deselect":"Select",children:t("span",{className:n.selectBadge,children:a?t(g,{name:"check",size:12}):null})}),t(mt,{anime:e,continueWatching:i,onRemove:()=>ue(e.id,e.name),layout:"vertical"}),!i&&!z&&t("div",{className:n.cardActions,children:[t("select",{className:n.statusSelect,value:e.status,onChange:s=>Fe.mutate({id:e.id,status:s.currentTarget.value}),children:Ce.map(s=>t("option",{value:s,children:s},s))}),t("button",{className:n.removeBtn,onClick:()=>ue(e.id,e.name),title:"Remove from Watchlist","aria-label":"Remove from Watchlist",children:t(g,{name:"trash",size:12})})]})]},e._id)})})]}),!j&&te.length===0&&t("div",{className:n.emptyState,children:[t("h3",{className:n.emptyTitle,children:"Your watchlist is looking a bit lonely"}),t("p",{className:n.emptyText,children:d!=="All"||A||C!=="ALL"||N!=="ALL"||b!=="ALL"||Object.keys(R).length>0?"No anime match these filters. Try adjusting them to see more titles.":"Let's find something to watch!"}),t("button",{className:n.emptyBtn,onClick:()=>v("/search"),children:[t(g,{name:"search",size:14}),t("span",{children:"Browse Anime"})]})]}),k>0&&t("div",{className:n.bottomPagination,children:t(Le,{page:f,totalPages:ve,canGoNext:ge,onChange:he,isLoading:j,variant:"labeled"})}),t(se,{isOpen:!!o,onClose:me,title:i?"Reset Progress":"Remove from Watchlist",children:[t(se.Body,{children:[t("p",{children:o?.ids&&o.ids.length>1?i?`Are you sure you want to remove watch progress for ${o.ids.length} items?`:`Are you sure you want to remove ${o.ids.length} items from your watchlist?`:i?`Are you sure you want to remove your watch progress for "${o?.name}"?`:`Are you sure you want to remove "${o?.name}" from your watchlist?`}),i&&t("label",{children:[t("input",{type:"checkbox",checked:Z,onChange:e=>E(e.currentTarget.checked)}),"Also remove from my watchlist"]}),!i&&!(o?.ids&&o.ids.length>1)&&t("label",{children:[t("input",{type:"checkbox",checked:ce,onChange:e=>D(e.currentTarget.checked)}),"Remember my choice"]})]}),t(se.Actions,{children:[t(W,{variant:"secondary",onClick:me,children:"No"}),t(W,{variant:"danger",onClick:ze,children:"Yes"})]})]})]})};export{ia as default};
@@ -1 +1 @@
1
- ._fadeImage_1bp3x_1{opacity:0;transition:opacity .4s ease}._fadeImage_1bp3x_1._loaded_1bp3x_6{opacity:1}._overlay_5hzq9_1{position:fixed;inset:0;background-color:#0009;z-index:var(--z-modal);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:_fadeIn_5hzq9_1 .2s ease-out}._content_5hzq9_11{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:calc(var(--z-modal) + 1);background-color:var(--bg-secondary);padding:var(--space-6);border-radius:var(--radius-lg);width:100%;max-width:min(500px,calc(100vw - 2 * var(--space-4)));max-height:calc(100vh - 2 * var(--space-4));overflow-y:auto;box-shadow:var(--shadow-xl);border:1px solid var(--border-primary);animation:_modalIn_5hzq9_1 .2s var(--ease-smooth)}._sm_5hzq9_29{max-width:min(400px,calc(100vw - 2 * var(--space-4)))}._md_5hzq9_33{max-width:min(500px,calc(100vw - 2 * var(--space-4)))}._lg_5hzq9_37{max-width:min(700px,calc(100vw - 2 * var(--space-4)))}._title_5hzq9_41{margin:0 0 var(--space-4);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--text-primary)}._closeButton_5hzq9_48{position:absolute;top:var(--space-3);right:var(--space-3);display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);cursor:pointer;opacity:.6;transition:opacity .15s ease,background-color .15s ease}._closeButton_5hzq9_48:hover{opacity:1;background-color:var(--bg-tertiary)}._body_5hzq9_74{color:var(--text-secondary)}._footer_5hzq9_78{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--border-primary)}._footer_5hzq9_78>*{flex:0 1 auto;min-width:0;max-width:100%}@media(max-width:480px){._content_5hzq9_11{padding:var(--space-4)}._footer_5hzq9_78{flex-direction:column;align-items:stretch;justify-content:flex-start}._footer_5hzq9_78>*{flex:1 1 auto;width:100%}}@keyframes _fadeIn_5hzq9_1{0%{opacity:0}to{opacity:1}}@keyframes _modalIn_5hzq9_1{0%{opacity:0;transform:translate(-50%,-50%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}._container_jzirm_1{position:relative;display:flex;align-items:center}._bellBtn_jzirm_7{background:var(--header-btn-bg, rgba(255, 255, 255, .05));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--header-control-border, rgba(255, 255, 255, .08));color:var(--text-primary);font-size:1.25rem;cursor:pointer;padding:var(--space-2);display:flex;align-items:center;justify-content:center;transition:transform var(--transition-fast),background var(--transition-fast);position:relative;width:50px;height:50px;border-radius:50%}._bellBtn_jzirm_7:hover{background:var(--header-btn-bg-hover, rgba(0, 0, 0, .25));border-color:#ffffff59;transform:translateY(-1px)}._bellBtn_jzirm_7:focus-visible{outline:none;box-shadow:var(--shadow-focus)}._badge_jzirm_39{position:absolute;top:6px;right:6px;background-color:var(--color-danger);color:#fff;font-size:.62rem;font-weight:700;min-width:18px;height:18px;padding:0 4px;border-radius:999px;display:flex;align-items:center;justify-content:center;text-align:center;border:none;pointer-events:none;animation:_badgePulse_jzirm_1 1.8s ease-in-out 2;line-height:1}@keyframes _badgePulse_jzirm_1{50%{box-shadow:0 0 0 4px var(--accent-subtle)}}._dropdown_jzirm_67{position:fixed;top:calc(var(--vv-top, 0px) + var(--header-height, 64px) + var(--space-3));right:max(var(--space-4),calc((100vw - var(--max-width)) / 2 + var(--space-8)));width:min(420px,calc(100vw - 2rem));max-height:min(620px,calc(100vh - var(--header-height, 64px) - 2rem));background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);z-index:var(--z-header);overflow:hidden;display:flex;flex-direction:column;animation:_slideIn_jzirm_1 .18s ease-out}@keyframes _slideIn_jzirm_1{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}._dropdownHeader_jzirm_98{padding:var(--space-4);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-primary)}._headerSubtitle_jzirm_106{display:block;margin-top:2px;font-size:var(--font-size-xs);color:var(--text-muted)}._headerActions_jzirm_113{display:flex;align-items:center;gap:var(--space-2)}._closeBtn_jzirm_119{display:none;align-items:center;justify-content:center;width:36px;height:36px;border:0;border-radius:var(--radius-full);color:var(--text-secondary);background:#ffffff0f;cursor:pointer}._sectionHeading_jzirm_132{margin:0;padding:var(--space-3) var(--space-4) var(--space-2);color:var(--text-muted);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase}._dropdownHeader_jzirm_98 h4{margin:0;font-size:1rem;color:var(--text-primary)}._clearAllBtn_jzirm_148{background:none;border:1px solid var(--border-secondary);color:var(--accent-light);font-size:var(--font-size-xs);font-weight:600;cursor:pointer;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);transition:all var(--transition-fast)}._clearAllBtn_jzirm_148:hover{background:var(--accent-subtle);border-color:var(--border-accent);color:var(--accent-lighter)}._discoveryStatusRow_jzirm_166{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:.72rem;color:var(--text-muted);background:#ffffff08;border-bottom:1px solid var(--border-primary)}._statusDot_jzirm_177{width:8px;height:8px;border-radius:50%;flex-shrink:0}._statusDotRunning_jzirm_184{background:var(--accent);animation:_statusPulse_jzirm_1 1.2s ease-in-out infinite}._statusDotOk_jzirm_189{background:var(--color-success)}._statusDotInfo_jzirm_193{background:var(--color-info)}._statusDotError_jzirm_197{background:var(--color-danger)}._statusDotIdle_jzirm_201{background:var(--text-muted)}@keyframes _statusPulse_jzirm_1{0%,to{opacity:1}50%{opacity:.35}}._list_jzirm_216{overflow-y:auto;flex:1}._list_jzirm_216::-webkit-scrollbar{width:4px}._list_jzirm_216::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:2px}._item_jzirm_230{display:flex;align-items:center;padding:var(--space-3) var(--space-4);gap:var(--space-3);text-decoration:none;transition:background var(--transition-fast);border-bottom:1px solid var(--border-primary);position:relative}._itemTitleLink_jzirm_241{display:block;text-decoration:none;border-radius:var(--radius-sm)}._itemTitleLink_jzirm_241:focus-visible,._systemItemMeta_jzirm_248:focus-visible,._removeItem_jzirm_249:focus-visible,._clearAllBtn_jzirm_148:focus-visible,._modalButton_jzirm_251:focus-visible{outline:none;box-shadow:var(--shadow-focus)}._item_jzirm_230:hover{background:#ffffff0d}._systemItem_jzirm_248{background:#ffffff06}._systemIcon_jzirm_264{width:42px;height:42px;display:grid;place-items:center;border-radius:var(--radius-md);color:var(--accent-light);background:var(--accent-subtle);flex-shrink:0}._thumbWrap_jzirm_275{width:48px;height:64px;border-radius:var(--radius-sm);background:var(--bg-tertiary);flex-shrink:0;overflow:hidden}._thumbnail_jzirm_284{width:48px;height:64px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0;box-shadow:0 2px 8px #0000004d}._itemInfo_jzirm_293{flex:1;min-width:0}._itemTitle_jzirm_241{display:block;font-size:.85rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:var(--space-1)}._itemMeta_jzirm_309{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_jzirm_248{display:inline-block;font-size:.7rem;background:none;color:var(--text-muted);padding:0;text-align:left;font:inherit;font-size:var(--font-size-xs);line-height:1.5;border:0;cursor:pointer;transition:background var(--transition-fast)}._systemItemMeta_jzirm_248:hover{color:var(--text-primary)}._systemItemMeta_jzirm_248 span{color:var(--accent-light);white-space:nowrap}._removeItem_jzirm_249{background:none;border:none;color:var(--text-muted);font-size:var(--font-size-xs);cursor:pointer;padding:var(--space-2);display:flex;align-items:center;justify-content:center;opacity:0;border-radius:var(--radius-sm);transition:opacity var(--transition-fast),color var(--transition-fast)}._item_jzirm_230:hover ._removeItem_jzirm_249{opacity:1}@media(hover:none),(pointer:coarse){._removeItem_jzirm_249{opacity:1}}._removeItem_jzirm_249:hover{color:var(--color-danger)}._queueItem_jzirm_374:hover{color:var(--color-success)}._modalButton_jzirm_251{background:var(--accent);color:var(--accent-text);border:0;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;font-weight:600}._fullMessage_jzirm_388{margin:0;line-height:1.6;white-space:pre-wrap}._emptyState_jzirm_394{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_jzirm_394 strong{color:var(--text-primary);font-size:var(--font-size-base)}._emptyIcon_jzirm_412{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_jzirm_67{position:fixed;top:calc(var(--header-height, 64px) + env(safe-area-inset-top,0px));left:env(safe-area-inset-left,0px);right:env(safe-area-inset-right,0px);width:auto;height:calc(100dvh - var(--header-height, 64px) - env(safe-area-inset-top,0px));max-height:none;border-radius:0 0 var(--radius-lg) var(--radius-lg);animation:_mobileSheetIn_jzirm_1 .2s ease-out;padding-bottom:env(safe-area-inset-bottom,0px)}._removeItem_jzirm_249{padding:var(--space-2);min-width:36px;min-height:36px}._badge_jzirm_39{top:5px;right:6px;font-size:.58rem;min-width:16px;height:16px;padding:0 3px}._list_jzirm_216{overscroll-behavior:contain}._dropdownHeader_jzirm_98,._discoveryStatusRow_jzirm_166{flex-shrink:0}._closeBtn_jzirm_119{display:flex}}@media(max-width:480px){._bellBtn_jzirm_7{width:42px;height:42px}}@keyframes _mobileSheetIn_jzirm_1{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){._dropdown_jzirm_67,._bellBtn_jzirm_7,._badge_jzirm_39,._statusDotRunning_jzirm_184{animation:none;transition:none}}._notificationDivider_jzirm_495{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_hls4o_1{height:var(--logo-height, 75px);display:inline-flex;align-items:center;gap:calc(var(--logo-height, 75px) * .18);overflow:visible;flex-shrink:0}._img_hls4o_10{height:calc(var(--logo-height, 75px) * var(--logo-scale, 1.9));width:auto;display:block;object-fit:contain;-webkit-user-select:none;user-select:none;align-self:flex-end;margin-bottom:calc(var(--logo-height, 75px) * var(--logo-drop, -.7));flex-shrink:0}._word_hls4o_21{font-family:var(--font-family);font-size:calc(var(--logo-height, 75px) * .68);font-weight:700;letter-spacing:-.03em;line-height:1;color:var(--text-primary);transition:color var(--transition-fast);white-space:nowrap;flex-shrink:0}._logo_hls4o_1:hover ._word_hls4o_21{color:var(--accent)}._header_19a0e_1{height:var(--header-height);--logo-height: 42px;--header-control-bg: rgba(255, 255, 255, .045);--header-control-border: rgba(255, 255, 255, .07);--header-btn-bg: rgba(255, 255, 255, .045);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),border-color var(--transition-base),box-shadow var(--transition-base)}._header_19a0e_1._hidden_19a0e_24{transform:translateY(-100%)}._header_19a0e_1._scrolled_19a0e_28{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-btn-bg-hover: rgba(255, 255, 255, .1)}._logo_19a0e_37{display:flex;align-items:center;justify-content:center;padding:6px 12px;background:var(--header-btn-bg, rgba(255, 255, 255, .05));border:1px solid var(--header-control-border, rgba(255, 255, 255, .08));border-radius:var(--radius-full);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:opacity var(--transition-base),transform var(--transition-fast)}._logo_19a0e_37:hover{opacity:.9;transform:translate(2px)}._logoCollapsed_19a0e_57{display:none}._logoFull_19a0e_61,._logoCollapsed_19a0e_57{--logo-scale: 1.7;--logo-drop: -.29}._headerInner_19a0e_67{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_19a0e_77{display:flex;align-items:center;gap:var(--space-2)}._desktopNav_19a0e_83{display:flex;align-items:center;gap:var(--space-1);margin-left:var(--space-6);padding:4px 6px;background:var(--header-btn-bg, rgba(255, 255, 255, .05));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--header-control-border, rgba(255, 255, 255, .08));border-radius:var(--radius-full)}._navLink_19a0e_96{color:var(--text-muted);font-weight:500;font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);text-decoration:none;transition:all var(--transition-fast);position:relative;letter-spacing:.01em;background:none;z-index:1}._navLink_19a0e_96:hover{color:var(--text-primary);background:#ffffff08}._navLinkActive_19a0e_115{color:#fff;font-weight:600;background:transparent}._navPill_19a0e_121{position:absolute;top:4px;bottom:4px;background:#ffffff12;border-radius:var(--radius-full);transition:left .25s cubic-bezier(.22,1,.36,1),width .25s cubic-bezier(.22,1,.36,1),opacity .2s ease;pointer-events:none;z-index:0}._navLinkActive_19a0e_115:after{display:none}._rightSection_19a0e_139{display:flex;align-items:center;gap:var(--space-3)}._searchWrapper_19a0e_145{position:relative;display:flex;align-items:center;background:var(--header-btn-bg, rgba(255, 255, 255, .05));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--header-control-border, rgba(255, 255, 255, .08));border-radius:var(--radius-full);height:50px;padding:0 10px 0 14px;gap:8px;transition:all var(--transition-base);cursor:text}._searchWrapper_19a0e_145:hover{background:var(--header-btn-bg-hover, rgba(255, 255, 255, .08));border-color:#ffffff38}._searchWrapper_19a0e_145:focus-within{background:#0f1118f2;border-color:#ffffff59;box-shadow:0 4px 20px #00000059}._searchIconButton_19a0e_172{display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;background:none;color:inherit;cursor:pointer;flex-shrink:0}._searchIcon_19a0e_172{font-size:.95rem;color:#fff9;flex-shrink:0;transition:color var(--transition-fast)}._searchIconButton_19a0e_172:hover ._searchIcon_19a0e_172{color:var(--accent)}._searchWrapper_19a0e_145:focus-within ._searchIcon_19a0e_172{color:#fff}._searchInput_19a0e_199{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_19a0e_199:focus,._searchInput_19a0e_199:focus-visible,input._searchInput_19a0e_199:focus,input._searchInput_19a0e_199:focus-visible{outline:none!important;outline-offset:0!important;box-shadow:none!important;border:none!important}._searchInput_19a0e_199::placeholder{color:#ffffff8c}._searchWrapper_19a0e_145:focus-within ._searchInput_19a0e_199{width:230px}._searchKbd_19a0e_232{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_19a0e_250{opacity:0;pointer-events:none}._searchButton_19a0e_255{display:none;cursor:pointer}._searchButton_19a0e_255:hover{opacity:.9;transform:translateY(-1px)}._profileBtn_19a0e_265{height:50px;border-radius:var(--radius-full);gap:var(--space-2);padding-right:var(--space-3);text-decoration:none;overflow:hidden;border:1px solid var(--header-control-border, rgba(255, 255, 255, .08));cursor:pointer;transition:all var(--transition-base);display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--header-btn-bg, rgba(255, 255, 255, .05));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text-primary)}._profileBtn_19a0e_265:hover{border-color:#ffffff59;transform:translateY(-1px);background:var(--header-btn-bg-hover, rgba(0, 0, 0, .25))}._profileBtn_19a0e_265:active{transform:scale(.95)}._profileBtn_19a0e_265 svg{color:var(--text-primary);font-size:1.1rem}._profileAvatar_19a0e_300{width:50px;height:50px;display:flex;flex-shrink:0}._profileName_19a0e_307{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-sm);font-weight:500}._hamburgerBtn_19a0e_316{background:transparent;border:none;color:var(--text-primary);font-size:1.25rem;padding:var(--space-2);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;height:40px;width:40px;flex-shrink:0}._hamburgerBtn_19a0e_316:hover{background:var(--header-btn-bg-hover, rgba(255, 255, 255, .08))}._searchButton_19a0e_255:focus-visible,._profileBtn_19a0e_265:focus-visible,._hamburgerBtn_19a0e_316:focus-visible,._logo_19a0e_37:focus-visible{outline:none;box-shadow:var(--shadow-focus)}._searchDropdown_19a0e_344{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_19a0e_1 .18s ease-out}@media(max-width:1200px){._searchDropdown_19a0e_344{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_19a0e_376{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_19a0e_384{padding:var(--space-4);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-primary)}._searchDropdownQuery_19a0e_392{font-size:.85rem;font-weight:600;color:var(--text-primary)}._searchDropdownSeeAll_19a0e_398{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_19a0e_398:hover{background:var(--accent-subtle);color:var(--accent-lighter)}._searchDropdownList_19a0e_415{overflow-y:auto;flex:1}._searchDropdownList_19a0e_415::-webkit-scrollbar{width:4px}._searchDropdownList_19a0e_415::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:2px}._searchDropdownItem_19a0e_429{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_19a0e_429:hover{background:#ffffff0d}._searchDropdownThumb_19a0e_447{width:48px;height:64px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0;box-shadow:0 2px 8px #0000004d}._searchDropdownItemInfo_19a0e_456{display:flex;flex-direction:column;gap:2px;min-width:0}._searchDropdownItemTitle_19a0e_463{font-size:.85rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._searchDropdownItemMeta_19a0e_472{font-size:.7rem;color:var(--text-muted);white-space:nowrap}@keyframes _slideIn_19a0e_1{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}._logo_19a0e_37:active,._searchButton_19a0e_255:active,._profileBtn_19a0e_265:active,._hamburgerBtn_19a0e_316:active{transform:scale(.97)}@media(prefers-reduced-motion:reduce){._logo_19a0e_37,._searchButton_19a0e_255,._profileBtn_19a0e_265,._hamburgerBtn_19a0e_316,._searchIcon_19a0e_172{transition:none}}._hamburgerBtn_19a0e_316:active{transform:scale(.95)}._mobileSearchBar_19a0e_511{display:none}@media(max-width:1200px){._searchWrapper_19a0e_145{background:transparent;border:1px solid transparent;padding:0;height:auto;cursor:default;backdrop-filter:none;-webkit-backdrop-filter:none}._searchWrapper_19a0e_145:hover{background:transparent;border-color:transparent}._searchWrapper_19a0e_145:focus-within{background:transparent;box-shadow:none;border-color:transparent}._searchIconButton_19a0e_172,._searchIcon_19a0e_172,._searchInput_19a0e_199{display:none}._searchWrapper_19a0e_145:focus-within ._searchInput_19a0e_199{display:none}._searchKbd_19a0e_232{display:none}._searchButton_19a0e_255{display:flex;background:var(--header-btn-bg, rgba(255, 255, 255, .05));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid transparent;color:var(--text-primary);padding:0;align-items:center;justify-content:center;cursor:pointer;pointer-events:auto;width:50px;height:50px;border-radius:50%;transition:all var(--transition-base);flex-shrink:0}._searchButton_19a0e_255:hover{background:var(--header-btn-bg-hover, rgba(0, 0, 0, .25));border-color:#ffffff59;transform:translateY(-1px)}._searchIconMobile_19a0e_582{font-size:1rem;color:#fff;transition:all var(--transition-base)}._searchButton_19a0e_255:hover ._searchIconMobile_19a0e_582{color:var(--accent)}._mobileSearchBar_19a0e_511{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_19a0e_1 .2s ease;transition:transform var(--transition-base),opacity var(--transition-base)}._mobileSearchBarHidden_19a0e_609{transform:translateY(-100%);opacity:0;pointer-events:none}@keyframes _slideDown_19a0e_1{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}._mobileSearchInner_19a0e_627{display:flex;align-items:center;background:#ffffff14;border:none;border-radius:var(--radius-full);padding:0 var(--space-4);height:40px}._mobileSearchInner_19a0e_627:focus-within{border:none;outline:none;box-shadow:0 0 0 2px var(--accent)}._mobileSearchIcon_19a0e_643{color:#ffffff80;font-size:.85rem;flex-shrink:0;margin-right:var(--space-2)}._mobileSearchInput_19a0e_650{flex:1;background:transparent;border:none;outline:none;color:var(--text-primary);font-size:var(--font-size-sm);font-family:inherit;height:100%}._mobileSearchInput_19a0e_650::placeholder{color:#ffffff80}._mobileSearchInput_19a0e_650:focus,input._mobileSearchInput_19a0e_650:focus,._mobileSearchInput_19a0e_650:focus-visible,input._mobileSearchInput_19a0e_650:focus-visible{outline:none!important;box-shadow:none!important;border:none}}@media(max-width:920px){._profileBtn_19a0e_265{width:50px;height:50px;padding:0}._profileName_19a0e_307{display:none}}@media(max-width:805px){._desktopNav_19a0e_83{display:none}}@media(max-width:542px){._rightSection_19a0e_139{gap:4px}._hamburgerBtn_19a0e_316{height:38px;width:38px;font-size:1rem}}@media(max-width:480px){._logoFull_19a0e_61{display:none}._logoCollapsed_19a0e_57{display:inline-flex}._logo_19a0e_37{padding:6px 12px;border-radius:var(--radius-full)}._searchButton_19a0e_255,._profileBtn_19a0e_265,._profileAvatar_19a0e_300{width:42px;height:42px}}._sidebar_1431e_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_1431e_1._open_1431e_20{transform:translate(0);box-shadow:20px 0 60px #00000080}._sidebarHeader_1431e_25{display:flex;align-items:center;justify-content:space-between;margin:0 calc(var(--space-6) * -1) var(--space-10);padding:0 var(--space-6) 16.9px;border-bottom:1px solid var(--border-primary);position:relative}._closeBtn_1431e_35{position:absolute;right:0;top:50%;transform:translateY(-50%);width:28px;height:76px;border-radius:var(--radius-md) 0 0 var(--radius-md);background:var(--bg-tertiary);border:1px solid var(--border-primary);border-right:none;line-height:1;cursor:pointer;color:var(--text-secondary);transition:color var(--transition-base),background-color var(--transition-base);display:flex;align-items:center;justify-content:center;z-index:2;padding:0}._closeBtn_1431e_35:hover{color:var(--text-primary);background-color:var(--bg-elevated)}._logo_1431e_64{display:flex;align-items:center;text-decoration:none;--logo-height: 50px;--logo-scale: 1.7;--logo-drop: -.5;transition:opacity var(--transition-base)}._logo_1431e_64:hover{opacity:.8}._navSection_1431e_78{display:flex;flex-direction:column;gap:var(--space-1);margin-right:18px}._navLink_1431e_85{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)}._navLink_1431e_85 svg{font-size:1rem;width:20px;text-align:center;flex-shrink:0;transition:color var(--transition-base)}._navLink_1431e_85:hover{background-color:#ffffff0a;color:var(--text-primary)}._navLink_1431e_85:hover svg{color:var(--text-primary)}._navLink_1431e_85._active_1431e_115{background-color:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent-light)}._navLink_1431e_85._active_1431e_115 svg{color:var(--accent)}._overlay_1431e_124{position:fixed;inset:0;background-color:#0009;z-index:calc(var(--z-sidebar) - 1);animation:_fadeIn_1431e_1 .3s ease-out}@keyframes _fadeIn_1431e_1{0%{opacity:0}to{opacity:1}}._versionInfo_1431e_145{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_1431e_145:before{content:"";display:block;width:5px;height:5px;border-radius:50%;background-color:var(--color-success)}@media(max-width:768px){._sidebar_1431e_1{width:260px;padding:var(--space-6) var(--space-4)}._sidebarHeader_1431e_25{margin-bottom:var(--space-8);margin-left:calc(var(--space-4) * -1);margin-right:calc(var(--space-4) * -1);padding-left:var(--space-4);padding-right:var(--space-4)}._logo_1431e_64{--logo-height: 48px}._closeBtn_1431e_35{width:18px;height:56px}._navSection_1431e_78{margin-right:18px}._navLink_1431e_85{padding:var(--space-3) var(--space-3)}}._footer_13o90_1{width:100%;position:relative;z-index:2;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_13o90_16{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_13o90_28{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_13o90_40{display:flex;align-items:center;gap:14px;--logo-height: 60px}._logoRow_13o90_40 a{display:flex;align-items:flex-end;height:calc(var(--logo-height) * 1.9);margin-top:calc(var(--logo-height) * -.9)}._logoText_13o90_54{--logo-height: 60px;--logo-scale: 1.75;--logo-drop: -.1;width:auto}._brandMeta_13o90_61{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-2);flex-wrap:wrap;margin-top:10px}._brandTagline_13o90_70{color:var(--text-secondary);font-size:.88rem;line-height:1.5;margin:0}._statusPill_13o90_77{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_13o90_90{width:7px;height:7px;border-radius:50%;background:var(--color-success);box-shadow:0 0 8px var(--color-success)}._linksGrid_13o90_98{grid-column:2;display:flex;gap:var(--space-8);justify-content:flex-end;padding-top:var(--space-8)}._linkColumn_13o90_106{display:flex;flex-direction:column;gap:var(--space-2)}._columnTitle_13o90_112{color:var(--text-primary);font-size:.9rem;font-weight:700;margin:0 0 var(--space-2);text-transform:uppercase;letter-spacing:.05em}._footer_13o90_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_13o90_1 a:hover{color:var(--accent);transform:translate(2px)}._bottomBar_13o90_136{position:relative;width:100%;max-width:var(--max-width);margin:var(--space-6) auto 0;display:flex;align-items:center;justify-content:center}._copyright_13o90_146{margin:0;color:var(--text-muted);font-size:.85rem;display:flex;align-items:center;justify-content:center;gap:4px;text-align:center}._brand_13o90_28{color:var(--accent);font-weight:700}._heartIcon_13o90_162{color:var(--color-danger);margin:0 2px}._backToTop_13o90_167{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_13o90_167:hover{background:#ffffff1f;color:#fff;border-color:var(--accent);transform:translateY(-2px)}@media(max-width:768px){._footer_13o90_1{padding:0 var(--space-4) var(--space-6)}._footerInner_13o90_16{grid-template-columns:1fr;gap:var(--space-5);align-items:center;justify-items:center}._brandSection_13o90_28{grid-column:1;align-items:center;text-align:center;padding-top:0;justify-content:center;margin-top:-26px}._logoRow_13o90_40{flex-direction:column;align-items:center;gap:6px;--logo-height: 52px}._logoText_13o90_54{--logo-height: 52px}._brandMeta_13o90_61{flex-direction:column;align-items:center;gap:var(--space-1);justify-content:center;margin-top:8px}._linksGrid_13o90_98{grid-column:1;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4);text-align:center}._linkColumn_13o90_106{align-items:center;gap:var(--space-1)}._columnTitle_13o90_112{margin:0 0 var(--space-1);font-size:.78rem}._footer_13o90_1 a{font-size:.82rem}._bottomBar_13o90_136{flex-direction:column;gap:var(--space-3);text-align:center}._copyright_13o90_146{font-size:.78rem}._backToTop_13o90_167{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) calc(var(--space-16) + 48px);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) calc(var(--space-12) + 48px)}.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_1ex8w_1{min-height:100dvh;min-height:100svh;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;overflow-y:auto;padding:max(env(safe-area-inset-top),var(--space-5)) max(env(safe-area-inset-right),var(--space-4)) max(env(safe-area-inset-bottom),var(--space-5)) max(env(safe-area-inset-left),var(--space-4));background:radial-gradient(circle at 50% 0%,var(--accent-subtle),transparent 55%),var(--bg-main);color:var(--text-primary);animation:_gateFadeIn_1ex8w_1 .35s var(--ease-smooth);transition:opacity var(--transition-base),transform var(--transition-base)}._gateExiting_1ex8w_21{opacity:0;transform:translateY(-8px);pointer-events:none}._appEntering_1ex8w_27{animation:_appEnter_1ex8w_27 .4s var(--ease-smooth)}@keyframes _gateFadeIn_1ex8w_1{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes _appEnter_1ex8w_27{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes _panelSlideIn_1ex8w_1{0%{opacity:0;transform:translateY(14px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes _cardIn_1ex8w_1{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes _dotPulse_1ex8w_1{0%,60%,to{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}@keyframes _breathe_1ex8w_1{0%,to{transform:scale(1);opacity:.9}50%{transform:scale(1.04);opacity:1}}._gateInner_1ex8w_100{width:min(100%,880px);margin:clamp(2rem,12vh,7rem) auto auto;display:flex;flex-direction:column;align-items:center;gap:var(--space-6);animation:_gateFadeIn_1ex8w_1 .35s var(--ease-smooth)}._connecting_1ex8w_110{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding-top:clamp(2rem,8vh,4rem)}._connectingLogo_1ex8w_118{width:72px;height:72px;border-radius:var(--radius-full);background:radial-gradient(circle at 35% 30%,var(--accent-light, var(--accent)),transparent 60%),var(--accent);animation:_breathe_1ex8w_1 1.6s ease-in-out infinite}._connectingDots_1ex8w_128{display:inline-flex;gap:6px}._connectingDots_1ex8w_128 span{width:7px;height:7px;border-radius:var(--radius-full);background:var(--text-secondary);animation:_dotPulse_1ex8w_1 1.1s ease-in-out infinite}._connectingDots_1ex8w_128 span:nth-child(2){animation-delay:.15s}._connectingDots_1ex8w_128 span:nth-child(3){animation-delay:.3s}._gateTitle_1ex8w_149{margin:0;font-size:clamp(1.75rem,5vw,3rem);font-weight:700;letter-spacing:-.02em;text-align:center}._profileGrid_1ex8w_157{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(104px,100%),148px));justify-content:center;gap:var(--space-5) var(--space-4);width:100%}._profileCard_1ex8w_165{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);min-width:0;min-height:44px;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;animation:_cardIn_1ex8w_1 .35s var(--ease-smooth) backwards}._profileCard_1ex8w_165:nth-child(1){animation-delay:.03s}._profileCard_1ex8w_165:nth-child(2){animation-delay:.07s}._profileCard_1ex8w_165:nth-child(3){animation-delay:.11s}._profileCard_1ex8w_165:nth-child(4){animation-delay:.15s}._profileCard_1ex8w_165:nth-child(5){animation-delay:.19s}._profileCard_1ex8w_165:nth-child(6){animation-delay:.23s}._profileCard_1ex8w_165:nth-child(7){animation-delay:.27s}._profileCard_1ex8w_165:nth-child(8){animation-delay:.31s}._profileCard_1ex8w_165:disabled{cursor:default;opacity:.6}._profileCard_1ex8w_165:focus-visible{outline:none}._profileCardAvatar_1ex8w_216{position:relative;display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1;overflow:hidden;border:2px solid transparent;border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-tertiary);transition:transform var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}._profileCard_1ex8w_165:hover ._profileCardAvatar_1ex8w_216,._profileCard_1ex8w_165:focus-visible ._profileCardAvatar_1ex8w_216{transform:translateY(-3px) scale(1.02);border-color:var(--accent);box-shadow:0 12px 32px var(--accent-glow)}._profileCard_1ex8w_165:active ._profileCardAvatar_1ex8w_216{transform:scale(.98)}._addAvatar_1ex8w_245{border:2px dashed var(--border-secondary);background:var(--bg-tertiary)}._profileCard_1ex8w_165:hover ._addAvatar_1ex8w_245{border-color:var(--accent);color:var(--accent)}._profileCardName_1ex8w_255{max-width:100%;overflow:hidden;font-size:var(--font-size-sm);font-weight:600;text-align:center;text-overflow:ellipsis;white-space:nowrap}._ownerTag_1ex8w_265{display:block;margin-top:var(--space-1);font-size:var(--font-size-xs);font-weight:500;color:var(--text-tertiary)}._lockBadge_1ex8w_273{position:absolute;right:var(--space-2);bottom:var(--space-2);display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--radius-full);background:#000000a6;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}._gatePanel_1ex8w_288{width:min(100%,420px);margin:auto;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-6);border:1px solid var(--border-secondary);border-radius:var(--radius-lg);background:var(--bg-tertiary);box-shadow:0 24px 64px #00000059;animation:_panelSlideIn_1ex8w_1 .35s var(--ease-smooth)}._panelAvatar_1ex8w_302{align-self:center;width:96px;height:96px}._panelTitle_1ex8w_308{margin:0;font-size:var(--font-size-lg);text-align:center}._gateForm_1ex8w_314{display:flex;flex-direction:column;gap:var(--space-4)}._gateField_1ex8w_320{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--font-size-sm);font-weight:600;color:var(--text-secondary)}._gateField_1ex8w_320 input{width:100%;min-height:44px;padding:var(--space-3);border:1px solid var(--border-secondary);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font-size:16px}._gateField_1ex8w_320 input:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-input-focus)}._gateHint_1ex8w_346{max-width:42ch;margin:0;color:var(--text-secondary);text-align:center}._gateError_1ex8w_353{margin:0;color:var(--danger-color);text-align:center}._backButton_1ex8w_359{display:inline-flex;align-items:center;align-self:flex-start;gap:var(--space-2);min-height:44px;padding:var(--space-2) var(--space-3);border:0;border-radius:var(--radius-md);background:none;color:var(--text-secondary);font:inherit;cursor:pointer;touch-action:manipulation}._backButton_1ex8w_359:hover{background:var(--bg-hover);color:var(--text-primary)}._backButton_1ex8w_359:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:640px){._gateInner_1ex8w_100{gap:var(--space-5)}._profileGrid_1ex8w_157{grid-template-columns:repeat(auto-fit,minmax(min(96px,100%),128px));gap:var(--space-4) var(--space-3)}._profileCard_1ex8w_165{min-height:44px}._gatePanel_1ex8w_288{padding:var(--space-5);gap:var(--space-3)}._panelAvatar_1ex8w_302{width:80px;height:80px}}@media(max-width:380px){._profileGrid_1ex8w_157{grid-template-columns:repeat(auto-fit,minmax(min(86px,100%),108px));gap:var(--space-4) var(--space-2)}._gatePanel_1ex8w_288{padding:var(--space-4)}}@media(prefers-reduced-motion:reduce){._gate_1ex8w_1,._gateInner_1ex8w_100,._gatePanel_1ex8w_288,._profileCard_1ex8w_165,._appEntering_1ex8w_27,._connectingLogo_1ex8w_118,._connectingDots_1ex8w_128 span{animation:none;transition:none}._profileCardAvatar_1ex8w_216{transition:none}._profileCard_1ex8w_165:hover ._profileCardAvatar_1ex8w_216,._profileCard_1ex8w_165:focus-visible ._profileCardAvatar_1ex8w_216,._profileCard_1ex8w_165:active ._profileCardAvatar_1ex8w_216{transform:none}}._form_1ex8w_444{display:flex;flex-wrap:wrap;align-items:end;gap:var(--space-3);margin:var(--space-4) 0}._form_1ex8w_444 h3,._form_1ex8w_444 p{flex-basis:100%}._field_1ex8w_457{display:flex;flex-direction:column;gap:var(--space-2);max-width:100%}._field_1ex8w_457 input,._field_1ex8w_457 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_1ex8w_474{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-4)}._avatarRow_1ex8w_474>:first-child{width:72px;height:72px}._uploadButton_1ex8w_486{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_1ex8w_486:hover{background:var(--bg-elevated);border-color:var(--accent)}._uploadButton_1ex8w_486:focus-within{outline:2px solid var(--accent);outline-offset:2px}._fileInput_1ex8w_515{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}._fileInput_1ex8w_515:disabled{cursor:not-allowed}._profileList_1ex8w_528{list-style:none;padding:0}._profileList_1ex8w_528 li{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border-secondary)}._smallAvatar_1ex8w_541{width:36px;height:36px;flex-shrink:0}._profileName_1ex8w_546{flex:1;min-width:0;overflow-wrap:anywhere}
1
+ ._fadeImage_1bp3x_1{opacity:0;transition:opacity .4s ease}._fadeImage_1bp3x_1._loaded_1bp3x_6{opacity:1}._overlay_5hzq9_1{position:fixed;inset:0;background-color:#0009;z-index:var(--z-modal);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:_fadeIn_5hzq9_1 .2s ease-out}._content_5hzq9_11{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:calc(var(--z-modal) + 1);background-color:var(--bg-secondary);padding:var(--space-6);border-radius:var(--radius-lg);width:100%;max-width:min(500px,calc(100vw - 2 * var(--space-4)));max-height:calc(100vh - 2 * var(--space-4));overflow-y:auto;box-shadow:var(--shadow-xl);border:1px solid var(--border-primary);animation:_modalIn_5hzq9_1 .2s var(--ease-smooth)}._sm_5hzq9_29{max-width:min(400px,calc(100vw - 2 * var(--space-4)))}._md_5hzq9_33{max-width:min(500px,calc(100vw - 2 * var(--space-4)))}._lg_5hzq9_37{max-width:min(700px,calc(100vw - 2 * var(--space-4)))}._title_5hzq9_41{margin:0 0 var(--space-4);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--text-primary)}._closeButton_5hzq9_48{position:absolute;top:var(--space-3);right:var(--space-3);display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);cursor:pointer;opacity:.6;transition:opacity .15s ease,background-color .15s ease}._closeButton_5hzq9_48:hover{opacity:1;background-color:var(--bg-tertiary)}._body_5hzq9_74{color:var(--text-secondary)}._footer_5hzq9_78{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--border-primary)}._footer_5hzq9_78>*{flex:0 1 auto;min-width:0;max-width:100%}@media(max-width:480px){._content_5hzq9_11{padding:var(--space-4)}._footer_5hzq9_78{flex-direction:column;align-items:stretch;justify-content:flex-start}._footer_5hzq9_78>*{flex:1 1 auto;width:100%}}@keyframes _fadeIn_5hzq9_1{0%{opacity:0}to{opacity:1}}@keyframes _modalIn_5hzq9_1{0%{opacity:0;transform:translate(-50%,-50%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}._container_jzirm_1{position:relative;display:flex;align-items:center}._bellBtn_jzirm_7{background:var(--header-btn-bg, rgba(255, 255, 255, .05));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--header-control-border, rgba(255, 255, 255, .08));color:var(--text-primary);font-size:1.25rem;cursor:pointer;padding:var(--space-2);display:flex;align-items:center;justify-content:center;transition:transform var(--transition-fast),background var(--transition-fast);position:relative;width:50px;height:50px;border-radius:50%}._bellBtn_jzirm_7:hover{background:var(--header-btn-bg-hover, rgba(0, 0, 0, .25));border-color:#ffffff59;transform:translateY(-1px)}._bellBtn_jzirm_7:focus-visible{outline:none;box-shadow:var(--shadow-focus)}._badge_jzirm_39{position:absolute;top:6px;right:6px;background-color:var(--color-danger);color:#fff;font-size:.62rem;font-weight:700;min-width:18px;height:18px;padding:0 4px;border-radius:999px;display:flex;align-items:center;justify-content:center;text-align:center;border:none;pointer-events:none;animation:_badgePulse_jzirm_1 1.8s ease-in-out 2;line-height:1}@keyframes _badgePulse_jzirm_1{50%{box-shadow:0 0 0 4px var(--accent-subtle)}}._dropdown_jzirm_67{position:fixed;top:calc(var(--vv-top, 0px) + var(--header-height, 64px) + var(--space-3));right:max(var(--space-4),calc((100vw - var(--max-width)) / 2 + var(--space-8)));width:min(420px,calc(100vw - 2rem));max-height:min(620px,calc(100vh - var(--header-height, 64px) - 2rem));background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);z-index:var(--z-header);overflow:hidden;display:flex;flex-direction:column;animation:_slideIn_jzirm_1 .18s ease-out}@keyframes _slideIn_jzirm_1{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}._dropdownHeader_jzirm_98{padding:var(--space-4);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-primary)}._headerSubtitle_jzirm_106{display:block;margin-top:2px;font-size:var(--font-size-xs);color:var(--text-muted)}._headerActions_jzirm_113{display:flex;align-items:center;gap:var(--space-2)}._closeBtn_jzirm_119{display:none;align-items:center;justify-content:center;width:36px;height:36px;border:0;border-radius:var(--radius-full);color:var(--text-secondary);background:#ffffff0f;cursor:pointer}._sectionHeading_jzirm_132{margin:0;padding:var(--space-3) var(--space-4) var(--space-2);color:var(--text-muted);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase}._dropdownHeader_jzirm_98 h4{margin:0;font-size:1rem;color:var(--text-primary)}._clearAllBtn_jzirm_148{background:none;border:1px solid var(--border-secondary);color:var(--accent-light);font-size:var(--font-size-xs);font-weight:600;cursor:pointer;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);transition:all var(--transition-fast)}._clearAllBtn_jzirm_148:hover{background:var(--accent-subtle);border-color:var(--border-accent);color:var(--accent-lighter)}._discoveryStatusRow_jzirm_166{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:.72rem;color:var(--text-muted);background:#ffffff08;border-bottom:1px solid var(--border-primary)}._statusDot_jzirm_177{width:8px;height:8px;border-radius:50%;flex-shrink:0}._statusDotRunning_jzirm_184{background:var(--accent);animation:_statusPulse_jzirm_1 1.2s ease-in-out infinite}._statusDotOk_jzirm_189{background:var(--color-success)}._statusDotInfo_jzirm_193{background:var(--color-info)}._statusDotError_jzirm_197{background:var(--color-danger)}._statusDotIdle_jzirm_201{background:var(--text-muted)}@keyframes _statusPulse_jzirm_1{0%,to{opacity:1}50%{opacity:.35}}._list_jzirm_216{overflow-y:auto;flex:1}._list_jzirm_216::-webkit-scrollbar{width:4px}._list_jzirm_216::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:2px}._item_jzirm_230{display:flex;align-items:center;padding:var(--space-3) var(--space-4);gap:var(--space-3);text-decoration:none;transition:background var(--transition-fast);border-bottom:1px solid var(--border-primary);position:relative}._itemTitleLink_jzirm_241{display:block;text-decoration:none;border-radius:var(--radius-sm)}._itemTitleLink_jzirm_241:focus-visible,._systemItemMeta_jzirm_248:focus-visible,._removeItem_jzirm_249:focus-visible,._clearAllBtn_jzirm_148:focus-visible,._modalButton_jzirm_251:focus-visible{outline:none;box-shadow:var(--shadow-focus)}._item_jzirm_230:hover{background:#ffffff0d}._systemItem_jzirm_248{background:#ffffff06}._systemIcon_jzirm_264{width:42px;height:42px;display:grid;place-items:center;border-radius:var(--radius-md);color:var(--accent-light);background:var(--accent-subtle);flex-shrink:0}._thumbWrap_jzirm_275{width:48px;height:64px;border-radius:var(--radius-sm);background:var(--bg-tertiary);flex-shrink:0;overflow:hidden}._thumbnail_jzirm_284{width:48px;height:64px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0;box-shadow:0 2px 8px #0000004d}._itemInfo_jzirm_293{flex:1;min-width:0}._itemTitle_jzirm_241{display:block;font-size:.85rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:var(--space-1)}._itemMeta_jzirm_309{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_jzirm_248{display:inline-block;font-size:.7rem;background:none;color:var(--text-muted);padding:0;text-align:left;font:inherit;font-size:var(--font-size-xs);line-height:1.5;border:0;cursor:pointer;transition:background var(--transition-fast)}._systemItemMeta_jzirm_248:hover{color:var(--text-primary)}._systemItemMeta_jzirm_248 span{color:var(--accent-light);white-space:nowrap}._removeItem_jzirm_249{background:none;border:none;color:var(--text-muted);font-size:var(--font-size-xs);cursor:pointer;padding:var(--space-2);display:flex;align-items:center;justify-content:center;opacity:0;border-radius:var(--radius-sm);transition:opacity var(--transition-fast),color var(--transition-fast)}._item_jzirm_230:hover ._removeItem_jzirm_249{opacity:1}@media(hover:none),(pointer:coarse){._removeItem_jzirm_249{opacity:1}}._removeItem_jzirm_249:hover{color:var(--color-danger)}._queueItem_jzirm_374:hover{color:var(--color-success)}._modalButton_jzirm_251{background:var(--accent);color:var(--accent-text);border:0;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;font-weight:600}._fullMessage_jzirm_388{margin:0;line-height:1.6;white-space:pre-wrap}._emptyState_jzirm_394{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_jzirm_394 strong{color:var(--text-primary);font-size:var(--font-size-base)}._emptyIcon_jzirm_412{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_jzirm_67{position:fixed;top:calc(var(--header-height, 64px) + env(safe-area-inset-top,0px));left:env(safe-area-inset-left,0px);right:env(safe-area-inset-right,0px);width:auto;height:calc(100dvh - var(--header-height, 64px) - env(safe-area-inset-top,0px));max-height:none;border-radius:0 0 var(--radius-lg) var(--radius-lg);animation:_mobileSheetIn_jzirm_1 .2s ease-out;padding-bottom:env(safe-area-inset-bottom,0px)}._removeItem_jzirm_249{padding:var(--space-2);min-width:36px;min-height:36px}._badge_jzirm_39{top:5px;right:6px;font-size:.58rem;min-width:16px;height:16px;padding:0 3px}._list_jzirm_216{overscroll-behavior:contain}._dropdownHeader_jzirm_98,._discoveryStatusRow_jzirm_166{flex-shrink:0}._closeBtn_jzirm_119{display:flex}}@media(max-width:480px){._bellBtn_jzirm_7{width:42px;height:42px}}@keyframes _mobileSheetIn_jzirm_1{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){._dropdown_jzirm_67,._bellBtn_jzirm_7,._badge_jzirm_39,._statusDotRunning_jzirm_184{animation:none;transition:none}}._notificationDivider_jzirm_495{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_hls4o_1{height:var(--logo-height, 75px);display:inline-flex;align-items:center;gap:calc(var(--logo-height, 75px) * .18);overflow:visible;flex-shrink:0}._img_hls4o_10{height:calc(var(--logo-height, 75px) * var(--logo-scale, 1.9));width:auto;display:block;object-fit:contain;-webkit-user-select:none;user-select:none;align-self:flex-end;margin-bottom:calc(var(--logo-height, 75px) * var(--logo-drop, -.7));flex-shrink:0}._word_hls4o_21{font-family:var(--font-family);font-size:calc(var(--logo-height, 75px) * .68);font-weight:700;letter-spacing:-.03em;line-height:1;color:var(--text-primary);transition:color var(--transition-fast);white-space:nowrap;flex-shrink:0}._logo_hls4o_1:hover ._word_hls4o_21{color:var(--accent)}._header_19a0e_1{height:var(--header-height);--logo-height: 42px;--header-control-bg: rgba(255, 255, 255, .045);--header-control-border: rgba(255, 255, 255, .07);--header-btn-bg: rgba(255, 255, 255, .045);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),border-color var(--transition-base),box-shadow var(--transition-base)}._header_19a0e_1._hidden_19a0e_24{transform:translateY(-100%)}._header_19a0e_1._scrolled_19a0e_28{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-btn-bg-hover: rgba(255, 255, 255, .1)}._logo_19a0e_37{display:flex;align-items:center;justify-content:center;padding:6px 12px;background:var(--header-btn-bg, rgba(255, 255, 255, .05));border:1px solid var(--header-control-border, rgba(255, 255, 255, .08));border-radius:var(--radius-full);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:opacity var(--transition-base),transform var(--transition-fast)}._logo_19a0e_37:hover{opacity:.9;transform:translate(2px)}._logoCollapsed_19a0e_57{display:none}._logoFull_19a0e_61,._logoCollapsed_19a0e_57{--logo-scale: 1.7;--logo-drop: -.29}._headerInner_19a0e_67{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_19a0e_77{display:flex;align-items:center;gap:var(--space-2)}._desktopNav_19a0e_83{display:flex;align-items:center;gap:var(--space-1);margin-left:var(--space-6);padding:4px 6px;background:var(--header-btn-bg, rgba(255, 255, 255, .05));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--header-control-border, rgba(255, 255, 255, .08));border-radius:var(--radius-full)}._navLink_19a0e_96{color:var(--text-muted);font-weight:500;font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);text-decoration:none;transition:all var(--transition-fast);position:relative;letter-spacing:.01em;background:none;z-index:1}._navLink_19a0e_96:hover{color:var(--text-primary);background:#ffffff08}._navLinkActive_19a0e_115{color:#fff;font-weight:600;background:transparent}._navPill_19a0e_121{position:absolute;top:4px;bottom:4px;background:#ffffff12;border-radius:var(--radius-full);transition:left .25s cubic-bezier(.22,1,.36,1),width .25s cubic-bezier(.22,1,.36,1),opacity .2s ease;pointer-events:none;z-index:0}._navLinkActive_19a0e_115:after{display:none}._rightSection_19a0e_139{display:flex;align-items:center;gap:var(--space-3)}._searchWrapper_19a0e_145{position:relative;display:flex;align-items:center;background:var(--header-btn-bg, rgba(255, 255, 255, .05));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--header-control-border, rgba(255, 255, 255, .08));border-radius:var(--radius-full);height:50px;padding:0 10px 0 14px;gap:8px;transition:all var(--transition-base);cursor:text}._searchWrapper_19a0e_145:hover{background:var(--header-btn-bg-hover, rgba(255, 255, 255, .08));border-color:#ffffff38}._searchWrapper_19a0e_145:focus-within{background:#0f1118f2;border-color:#ffffff59;box-shadow:0 4px 20px #00000059}._searchIconButton_19a0e_172{display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;background:none;color:inherit;cursor:pointer;flex-shrink:0}._searchIcon_19a0e_172{font-size:.95rem;color:#fff9;flex-shrink:0;transition:color var(--transition-fast)}._searchIconButton_19a0e_172:hover ._searchIcon_19a0e_172{color:var(--accent)}._searchWrapper_19a0e_145:focus-within ._searchIcon_19a0e_172{color:#fff}._searchInput_19a0e_199{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_19a0e_199:focus,._searchInput_19a0e_199:focus-visible,input._searchInput_19a0e_199:focus,input._searchInput_19a0e_199:focus-visible{outline:none!important;outline-offset:0!important;box-shadow:none!important;border:none!important}._searchInput_19a0e_199::placeholder{color:#ffffff8c}._searchWrapper_19a0e_145:focus-within ._searchInput_19a0e_199{width:230px}._searchKbd_19a0e_232{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_19a0e_250{opacity:0;pointer-events:none}._searchButton_19a0e_255{display:none;cursor:pointer}._searchButton_19a0e_255:hover{opacity:.9;transform:translateY(-1px)}._profileBtn_19a0e_265{height:50px;border-radius:var(--radius-full);gap:var(--space-2);padding-right:var(--space-3);text-decoration:none;overflow:hidden;border:1px solid var(--header-control-border, rgba(255, 255, 255, .08));cursor:pointer;transition:all var(--transition-base);display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--header-btn-bg, rgba(255, 255, 255, .05));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text-primary)}._profileBtn_19a0e_265:hover{border-color:#ffffff59;transform:translateY(-1px);background:var(--header-btn-bg-hover, rgba(0, 0, 0, .25))}._profileBtn_19a0e_265:active{transform:scale(.95)}._profileBtn_19a0e_265 svg{color:var(--text-primary);font-size:1.1rem}._profileAvatar_19a0e_300{width:50px;height:50px;display:flex;flex-shrink:0}._profileName_19a0e_307{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-sm);font-weight:500}._hamburgerBtn_19a0e_316{background:transparent;border:none;color:var(--text-primary);font-size:1.25rem;padding:var(--space-2);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;height:40px;width:40px;flex-shrink:0}._hamburgerBtn_19a0e_316:hover{background:var(--header-btn-bg-hover, rgba(255, 255, 255, .08))}._searchButton_19a0e_255:focus-visible,._profileBtn_19a0e_265:focus-visible,._hamburgerBtn_19a0e_316:focus-visible,._logo_19a0e_37:focus-visible{outline:none;box-shadow:var(--shadow-focus)}._searchDropdown_19a0e_344{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_19a0e_1 .18s ease-out}@media(max-width:1200px){._searchDropdown_19a0e_344{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_19a0e_376{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_19a0e_384{padding:var(--space-4);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-primary)}._searchDropdownQuery_19a0e_392{font-size:.85rem;font-weight:600;color:var(--text-primary)}._searchDropdownSeeAll_19a0e_398{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_19a0e_398:hover{background:var(--accent-subtle);color:var(--accent-lighter)}._searchDropdownList_19a0e_415{overflow-y:auto;flex:1}._searchDropdownList_19a0e_415::-webkit-scrollbar{width:4px}._searchDropdownList_19a0e_415::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:2px}._searchDropdownItem_19a0e_429{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_19a0e_429:hover{background:#ffffff0d}._searchDropdownThumb_19a0e_447{width:48px;height:64px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0;box-shadow:0 2px 8px #0000004d}._searchDropdownItemInfo_19a0e_456{display:flex;flex-direction:column;gap:2px;min-width:0}._searchDropdownItemTitle_19a0e_463{font-size:.85rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._searchDropdownItemMeta_19a0e_472{font-size:.7rem;color:var(--text-muted);white-space:nowrap}@keyframes _slideIn_19a0e_1{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}._logo_19a0e_37:active,._searchButton_19a0e_255:active,._profileBtn_19a0e_265:active,._hamburgerBtn_19a0e_316:active{transform:scale(.97)}@media(prefers-reduced-motion:reduce){._logo_19a0e_37,._searchButton_19a0e_255,._profileBtn_19a0e_265,._hamburgerBtn_19a0e_316,._searchIcon_19a0e_172{transition:none}}._hamburgerBtn_19a0e_316:active{transform:scale(.95)}._mobileSearchBar_19a0e_511{display:none}@media(max-width:1200px){._searchWrapper_19a0e_145{background:transparent;border:1px solid transparent;padding:0;height:auto;cursor:default;backdrop-filter:none;-webkit-backdrop-filter:none}._searchWrapper_19a0e_145:hover{background:transparent;border-color:transparent}._searchWrapper_19a0e_145:focus-within{background:transparent;box-shadow:none;border-color:transparent}._searchIconButton_19a0e_172,._searchIcon_19a0e_172,._searchInput_19a0e_199{display:none}._searchWrapper_19a0e_145:focus-within ._searchInput_19a0e_199{display:none}._searchKbd_19a0e_232{display:none}._searchButton_19a0e_255{display:flex;background:var(--header-btn-bg, rgba(255, 255, 255, .05));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid transparent;color:var(--text-primary);padding:0;align-items:center;justify-content:center;cursor:pointer;pointer-events:auto;width:50px;height:50px;border-radius:50%;transition:all var(--transition-base);flex-shrink:0}._searchButton_19a0e_255:hover{background:var(--header-btn-bg-hover, rgba(0, 0, 0, .25));border-color:#ffffff59;transform:translateY(-1px)}._searchIconMobile_19a0e_582{font-size:1rem;color:#fff;transition:all var(--transition-base)}._searchButton_19a0e_255:hover ._searchIconMobile_19a0e_582{color:var(--accent)}._mobileSearchBar_19a0e_511{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_19a0e_1 .2s ease;transition:transform var(--transition-base),opacity var(--transition-base)}._mobileSearchBarHidden_19a0e_609{transform:translateY(-100%);opacity:0;pointer-events:none}@keyframes _slideDown_19a0e_1{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}._mobileSearchInner_19a0e_627{display:flex;align-items:center;background:#ffffff14;border:none;border-radius:var(--radius-full);padding:0 var(--space-4);height:40px}._mobileSearchInner_19a0e_627:focus-within{border:none;outline:none;box-shadow:0 0 0 2px var(--accent)}._mobileSearchIcon_19a0e_643{color:#ffffff80;font-size:.85rem;flex-shrink:0;margin-right:var(--space-2)}._mobileSearchInput_19a0e_650{flex:1;background:transparent;border:none;outline:none;color:var(--text-primary);font-size:var(--font-size-sm);font-family:inherit;height:100%}._mobileSearchInput_19a0e_650::placeholder{color:#ffffff80}._mobileSearchInput_19a0e_650:focus,input._mobileSearchInput_19a0e_650:focus,._mobileSearchInput_19a0e_650:focus-visible,input._mobileSearchInput_19a0e_650:focus-visible{outline:none!important;box-shadow:none!important;border:none}}@media(max-width:920px){._profileBtn_19a0e_265{width:50px;height:50px;padding:0}._profileName_19a0e_307{display:none}}@media(max-width:805px){._desktopNav_19a0e_83{display:none}}@media(max-width:542px){._rightSection_19a0e_139{gap:4px}._hamburgerBtn_19a0e_316{height:38px;width:38px;font-size:1rem}}@media(max-width:480px){._logoFull_19a0e_61{display:none}._logoCollapsed_19a0e_57{display:inline-flex}._logo_19a0e_37{padding:6px 12px;border-radius:var(--radius-full)}._searchButton_19a0e_255,._profileBtn_19a0e_265,._profileAvatar_19a0e_300{width:42px;height:42px}}._sidebar_1nmyv_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_1nmyv_1._open_1nmyv_20{transform:translate(0);box-shadow:20px 0 60px #00000080}._sidebarHeader_1nmyv_25{display:flex;align-items:center;justify-content:space-between;margin:0 calc(var(--space-6) * -1) var(--space-10);padding:0 var(--space-6) 16.9px;border-bottom:1px solid var(--border-primary);position:relative}._closeBtn_1nmyv_35{position:absolute;right:0;top:50%;transform:translateY(-50%);width:28px;height:76px;border-radius:var(--radius-md) 0 0 var(--radius-md);background:var(--bg-tertiary);border:1px solid var(--border-primary);border-right:none;line-height:1;cursor:pointer;color:var(--text-secondary);transition:color var(--transition-base),background-color var(--transition-base);display:flex;align-items:center;justify-content:center;z-index:2;padding:0}._closeBtn_1nmyv_35:hover{color:var(--text-primary);background-color:var(--bg-elevated)}._logo_1nmyv_64{display:flex;align-items:center;text-decoration:none;--logo-height: 50px;--logo-scale: 1.7;--logo-drop: -.5;transition:opacity var(--transition-base)}._logo_1nmyv_64:hover{opacity:.8}._navSection_1nmyv_78{display:flex;flex-direction:column;gap:var(--space-1);margin-right:18px}._navLink_1nmyv_85{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)}._navLink_1nmyv_85 svg{font-size:1rem;width:20px;text-align:center;flex-shrink:0;transition:color var(--transition-base)}._navLink_1nmyv_85:hover{background-color:#ffffff0a;color:var(--text-primary)}._navLink_1nmyv_85:hover svg{color:var(--text-primary)}._navLink_1nmyv_85._active_1nmyv_115{background-color:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent-light)}._navLink_1nmyv_85._active_1nmyv_115 svg{color:var(--accent)}._overlay_1nmyv_124{position:fixed;inset:0;background-color:#0009;z-index:calc(var(--z-sidebar) - 1);animation:_fadeIn_1nmyv_1 .3s ease-out}@keyframes _fadeIn_1nmyv_1{0%{opacity:0}to{opacity:1}}._versionInfo_1nmyv_145{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_1nmyv_145:before{content:"";display:block;width:5px;height:5px;border-radius:50%;background-color:var(--color-success)}@media(max-width:768px){._sidebar_1nmyv_1{width:260px;padding:var(--space-6) var(--space-4)}._sidebarHeader_1nmyv_25{margin-bottom:var(--space-8);margin-left:calc(var(--space-4) * -1);margin-right:calc(var(--space-4) * -1);padding-left:var(--space-4);padding-right:var(--space-4)}._logo_1nmyv_64{--logo-height: 48px}._closeBtn_1nmyv_35{width:18px;height:56px}._navSection_1nmyv_78{margin-right:18px}._navLink_1nmyv_85{padding:var(--space-3) var(--space-3)}}._footer_13o90_1{width:100%;position:relative;z-index:2;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_13o90_16{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_13o90_28{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_13o90_40{display:flex;align-items:center;gap:14px;--logo-height: 60px}._logoRow_13o90_40 a{display:flex;align-items:flex-end;height:calc(var(--logo-height) * 1.9);margin-top:calc(var(--logo-height) * -.9)}._logoText_13o90_54{--logo-height: 60px;--logo-scale: 1.75;--logo-drop: -.1;width:auto}._brandMeta_13o90_61{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-2);flex-wrap:wrap;margin-top:10px}._brandTagline_13o90_70{color:var(--text-secondary);font-size:.88rem;line-height:1.5;margin:0}._statusPill_13o90_77{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_13o90_90{width:7px;height:7px;border-radius:50%;background:var(--color-success);box-shadow:0 0 8px var(--color-success)}._linksGrid_13o90_98{grid-column:2;display:flex;gap:var(--space-8);justify-content:flex-end;padding-top:var(--space-8)}._linkColumn_13o90_106{display:flex;flex-direction:column;gap:var(--space-2)}._columnTitle_13o90_112{color:var(--text-primary);font-size:.9rem;font-weight:700;margin:0 0 var(--space-2);text-transform:uppercase;letter-spacing:.05em}._footer_13o90_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_13o90_1 a:hover{color:var(--accent);transform:translate(2px)}._bottomBar_13o90_136{position:relative;width:100%;max-width:var(--max-width);margin:var(--space-6) auto 0;display:flex;align-items:center;justify-content:center}._copyright_13o90_146{margin:0;color:var(--text-muted);font-size:.85rem;display:flex;align-items:center;justify-content:center;gap:4px;text-align:center}._brand_13o90_28{color:var(--accent);font-weight:700}._heartIcon_13o90_162{color:var(--color-danger);margin:0 2px}._backToTop_13o90_167{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_13o90_167:hover{background:#ffffff1f;color:#fff;border-color:var(--accent);transform:translateY(-2px)}@media(max-width:768px){._footer_13o90_1{padding:0 var(--space-4) var(--space-6)}._footerInner_13o90_16{grid-template-columns:1fr;gap:var(--space-5);align-items:center;justify-items:center}._brandSection_13o90_28{grid-column:1;align-items:center;text-align:center;padding-top:0;justify-content:center;margin-top:-26px}._logoRow_13o90_40{flex-direction:column;align-items:center;gap:6px;--logo-height: 52px}._logoText_13o90_54{--logo-height: 52px}._brandMeta_13o90_61{flex-direction:column;align-items:center;gap:var(--space-1);justify-content:center;margin-top:8px}._linksGrid_13o90_98{grid-column:1;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4);text-align:center}._linkColumn_13o90_106{align-items:center;gap:var(--space-1)}._columnTitle_13o90_112{margin:0 0 var(--space-1);font-size:.78rem}._footer_13o90_1 a{font-size:.82rem}._bottomBar_13o90_136{flex-direction:column;gap:var(--space-3);text-align:center}._copyright_13o90_146{font-size:.78rem}._backToTop_13o90_167{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) calc(var(--space-16) + 48px);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) calc(var(--space-12) + 48px)}.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_1ex8w_1{min-height:100dvh;min-height:100svh;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;overflow-y:auto;padding:max(env(safe-area-inset-top),var(--space-5)) max(env(safe-area-inset-right),var(--space-4)) max(env(safe-area-inset-bottom),var(--space-5)) max(env(safe-area-inset-left),var(--space-4));background:radial-gradient(circle at 50% 0%,var(--accent-subtle),transparent 55%),var(--bg-main);color:var(--text-primary);animation:_gateFadeIn_1ex8w_1 .35s var(--ease-smooth);transition:opacity var(--transition-base),transform var(--transition-base)}._gateExiting_1ex8w_21{opacity:0;transform:translateY(-8px);pointer-events:none}._appEntering_1ex8w_27{animation:_appEnter_1ex8w_27 .4s var(--ease-smooth)}@keyframes _gateFadeIn_1ex8w_1{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes _appEnter_1ex8w_27{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes _panelSlideIn_1ex8w_1{0%{opacity:0;transform:translateY(14px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes _cardIn_1ex8w_1{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes _dotPulse_1ex8w_1{0%,60%,to{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}@keyframes _breathe_1ex8w_1{0%,to{transform:scale(1);opacity:.9}50%{transform:scale(1.04);opacity:1}}._gateInner_1ex8w_100{width:min(100%,880px);margin:clamp(2rem,12vh,7rem) auto auto;display:flex;flex-direction:column;align-items:center;gap:var(--space-6);animation:_gateFadeIn_1ex8w_1 .35s var(--ease-smooth)}._connecting_1ex8w_110{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding-top:clamp(2rem,8vh,4rem)}._connectingLogo_1ex8w_118{width:72px;height:72px;border-radius:var(--radius-full);background:radial-gradient(circle at 35% 30%,var(--accent-light, var(--accent)),transparent 60%),var(--accent);animation:_breathe_1ex8w_1 1.6s ease-in-out infinite}._connectingDots_1ex8w_128{display:inline-flex;gap:6px}._connectingDots_1ex8w_128 span{width:7px;height:7px;border-radius:var(--radius-full);background:var(--text-secondary);animation:_dotPulse_1ex8w_1 1.1s ease-in-out infinite}._connectingDots_1ex8w_128 span:nth-child(2){animation-delay:.15s}._connectingDots_1ex8w_128 span:nth-child(3){animation-delay:.3s}._gateTitle_1ex8w_149{margin:0;font-size:clamp(1.75rem,5vw,3rem);font-weight:700;letter-spacing:-.02em;text-align:center}._profileGrid_1ex8w_157{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(104px,100%),148px));justify-content:center;gap:var(--space-5) var(--space-4);width:100%}._profileCard_1ex8w_165{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);min-width:0;min-height:44px;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;animation:_cardIn_1ex8w_1 .35s var(--ease-smooth) backwards}._profileCard_1ex8w_165:nth-child(1){animation-delay:.03s}._profileCard_1ex8w_165:nth-child(2){animation-delay:.07s}._profileCard_1ex8w_165:nth-child(3){animation-delay:.11s}._profileCard_1ex8w_165:nth-child(4){animation-delay:.15s}._profileCard_1ex8w_165:nth-child(5){animation-delay:.19s}._profileCard_1ex8w_165:nth-child(6){animation-delay:.23s}._profileCard_1ex8w_165:nth-child(7){animation-delay:.27s}._profileCard_1ex8w_165:nth-child(8){animation-delay:.31s}._profileCard_1ex8w_165:disabled{cursor:default;opacity:.6}._profileCard_1ex8w_165:focus-visible{outline:none}._profileCardAvatar_1ex8w_216{position:relative;display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1;overflow:hidden;border:2px solid transparent;border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-tertiary);transition:transform var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}._profileCard_1ex8w_165:hover ._profileCardAvatar_1ex8w_216,._profileCard_1ex8w_165:focus-visible ._profileCardAvatar_1ex8w_216{transform:translateY(-3px) scale(1.02);border-color:var(--accent);box-shadow:0 12px 32px var(--accent-glow)}._profileCard_1ex8w_165:active ._profileCardAvatar_1ex8w_216{transform:scale(.98)}._addAvatar_1ex8w_245{border:2px dashed var(--border-secondary);background:var(--bg-tertiary)}._profileCard_1ex8w_165:hover ._addAvatar_1ex8w_245{border-color:var(--accent);color:var(--accent)}._profileCardName_1ex8w_255{max-width:100%;overflow:hidden;font-size:var(--font-size-sm);font-weight:600;text-align:center;text-overflow:ellipsis;white-space:nowrap}._ownerTag_1ex8w_265{display:block;margin-top:var(--space-1);font-size:var(--font-size-xs);font-weight:500;color:var(--text-tertiary)}._lockBadge_1ex8w_273{position:absolute;right:var(--space-2);bottom:var(--space-2);display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--radius-full);background:#000000a6;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}._gatePanel_1ex8w_288{width:min(100%,420px);margin:auto;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-6);border:1px solid var(--border-secondary);border-radius:var(--radius-lg);background:var(--bg-tertiary);box-shadow:0 24px 64px #00000059;animation:_panelSlideIn_1ex8w_1 .35s var(--ease-smooth)}._panelAvatar_1ex8w_302{align-self:center;width:96px;height:96px}._panelTitle_1ex8w_308{margin:0;font-size:var(--font-size-lg);text-align:center}._gateForm_1ex8w_314{display:flex;flex-direction:column;gap:var(--space-4)}._gateField_1ex8w_320{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--font-size-sm);font-weight:600;color:var(--text-secondary)}._gateField_1ex8w_320 input{width:100%;min-height:44px;padding:var(--space-3);border:1px solid var(--border-secondary);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font-size:16px}._gateField_1ex8w_320 input:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-input-focus)}._gateHint_1ex8w_346{max-width:42ch;margin:0;color:var(--text-secondary);text-align:center}._gateError_1ex8w_353{margin:0;color:var(--danger-color);text-align:center}._backButton_1ex8w_359{display:inline-flex;align-items:center;align-self:flex-start;gap:var(--space-2);min-height:44px;padding:var(--space-2) var(--space-3);border:0;border-radius:var(--radius-md);background:none;color:var(--text-secondary);font:inherit;cursor:pointer;touch-action:manipulation}._backButton_1ex8w_359:hover{background:var(--bg-hover);color:var(--text-primary)}._backButton_1ex8w_359:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:640px){._gateInner_1ex8w_100{gap:var(--space-5)}._profileGrid_1ex8w_157{grid-template-columns:repeat(auto-fit,minmax(min(96px,100%),128px));gap:var(--space-4) var(--space-3)}._profileCard_1ex8w_165{min-height:44px}._gatePanel_1ex8w_288{padding:var(--space-5);gap:var(--space-3)}._panelAvatar_1ex8w_302{width:80px;height:80px}}@media(max-width:380px){._profileGrid_1ex8w_157{grid-template-columns:repeat(auto-fit,minmax(min(86px,100%),108px));gap:var(--space-4) var(--space-2)}._gatePanel_1ex8w_288{padding:var(--space-4)}}@media(prefers-reduced-motion:reduce){._gate_1ex8w_1,._gateInner_1ex8w_100,._gatePanel_1ex8w_288,._profileCard_1ex8w_165,._appEntering_1ex8w_27,._connectingLogo_1ex8w_118,._connectingDots_1ex8w_128 span{animation:none;transition:none}._profileCardAvatar_1ex8w_216{transition:none}._profileCard_1ex8w_165:hover ._profileCardAvatar_1ex8w_216,._profileCard_1ex8w_165:focus-visible ._profileCardAvatar_1ex8w_216,._profileCard_1ex8w_165:active ._profileCardAvatar_1ex8w_216{transform:none}}._form_1ex8w_444{display:flex;flex-wrap:wrap;align-items:end;gap:var(--space-3);margin:var(--space-4) 0}._form_1ex8w_444 h3,._form_1ex8w_444 p{flex-basis:100%}._field_1ex8w_457{display:flex;flex-direction:column;gap:var(--space-2);max-width:100%}._field_1ex8w_457 input,._field_1ex8w_457 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_1ex8w_474{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-4)}._avatarRow_1ex8w_474>:first-child{width:72px;height:72px}._uploadButton_1ex8w_486{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_1ex8w_486:hover{background:var(--bg-elevated);border-color:var(--accent)}._uploadButton_1ex8w_486:focus-within{outline:2px solid var(--accent);outline-offset:2px}._fileInput_1ex8w_515{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}._fileInput_1ex8w_515:disabled{cursor:not-allowed}._profileList_1ex8w_528{list-style:none;padding:0}._profileList_1ex8w_528 li{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border-secondary)}._smallAvatar_1ex8w_541{width:36px;height:36px;flex-shrink:0}._profileName_1ex8w_546{flex:1;min-width:0;overflow-wrap:anywhere}