body{margin:0}#root{width:100%;min-height:100vh}*{box-sizing:border-box;margin:0;padding:0}body{color:#111;-webkit-font-smoothing:antialiased;background:#fff;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;overflow:hidden}.loading{color:#999;text-transform:lowercase;justify-content:center;align-items:center;height:100vh;font-size:.85rem;font-weight:700;display:flex}.app{width:100vw;height:100vh;transition:opacity .8s;position:relative}.app--hidden{opacity:0}.app--visible{opacity:1}.map-layer{cursor:grab;z-index:1;touch-action:none;position:absolute;inset:0;overflow:hidden}.map-layer:active{cursor:grabbing}.graph{will-change:transform;width:100%;height:100%;transition:none}.axis-line{stroke:#e0e0e0;stroke-width:.8px}.connection{stroke-width:.8px;opacity:.18;transition:opacity .3s,stroke-width .3s}.connection.active{opacity:.6;stroke-width:1.8px}.connection.faded{opacity:.04}.node-group{cursor:pointer;transform-origin:50%;transform-box:fill-box;transition:opacity .4s,transform .25s}.node-group:hover{z-index:10;transform:scale(1.25)}.node-group.faded{opacity:.12}.poster-shadow{fill:#0000000f;filter:blur(2px)}.node-group image{opacity:0;animation:.4s ease-out forwards posterIn}@keyframes posterIn{to{opacity:1}}.poster-border{fill:none;stroke:#e0e0e0;stroke-width:.5px;transition:stroke .2s,stroke-width .2s}.poster-active{stroke-width:1.5px}.node-group.hovered image{filter:brightness(1.05)}.node-group.hovered .poster-shadow{fill:#0000001f;filter:blur(4px)}.node-label{fill:#111;pointer-events:none;letter-spacing:-.01em;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:7px;font-weight:700}.overlay{z-index:10;pointer-events:none;flex-direction:column;justify-content:space-between;display:flex;position:absolute;inset:0}.overlay>*{pointer-events:auto}.overlay-top{background:linear-gradient(#fffffff2 0%,#fffc 60%,#fff0 100%);justify-content:space-between;align-items:flex-start;padding:32px 40px 24px;display:flex}.brand h1{letter-spacing:-.03em;color:#000;text-transform:lowercase;font-size:1.3rem;font-weight:700}.subtitle{color:#aaa;text-transform:lowercase;margin-top:3px;font-size:.7rem;font-weight:400}.search{-webkit-backdrop-filter:blur(12px);color:#111;background:#fff9;border:1px solid #00000014;border-radius:100px;outline:none;width:180px;padding:8px 16px;font-family:inherit;font-size:.75rem;font-weight:500;transition:border-color .2s}.search:focus{border-color:#0003}.search::placeholder{color:#ccc}.overlay-bottom{background:linear-gradient(#fff0 0%,#fffc 40%,#fffffff2 100%);padding:24px 40px 28px}.pills{scrollbar-width:none;gap:5px;padding-bottom:12px;display:flex;overflow-x:auto}.pills::-webkit-scrollbar{display:none}.pill{-webkit-backdrop-filter:blur(12px);color:#888;cursor:pointer;white-space:nowrap;text-transform:lowercase;background:#fff9;border:1px solid #0000000f;border-radius:100px;align-items:center;gap:5px;padding:5px 12px;font-family:inherit;font-size:.62rem;font-weight:500;transition:all .2s;display:flex}.pill:hover{color:#444;border-color:#0000001f}.pill.active{color:#111;background:#ffffffd9;border-color:#00000040}.pill-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.pill-count{color:#ccc;font-size:.58rem}.pill-clear{-webkit-backdrop-filter:blur(12px);color:#111;cursor:pointer;text-transform:lowercase;background:#0000000d;border:1px solid #0000001a;border-radius:100px;padding:5px 14px;font-family:inherit;font-size:.62rem;font-weight:600}.stats{color:#ccc;letter-spacing:.06em;text-transform:uppercase;gap:28px;font-size:.55rem;font-weight:500;display:flex}.hover-card{z-index:20;pointer-events:none;-webkit-backdrop-filter:blur(20px)saturate(1.6);background:#ffffff0d;border:1px solid #ffffff26;border-radius:16px;min-width:220px;max-width:280px;padding:14px 16px;animation:.18s ease-out cardIn;position:absolute;box-shadow:0 8px 32px #0000000d,0 1px 2px #00000005,inset 0 1px #ffffff26}@keyframes cardIn{0%{opacity:0;transform:translate(-50%,calc(6px - 100%))}to{opacity:1;transform:translate(-50%,-100%)}}.card-inner{gap:12px;display:flex}.card-poster{object-fit:cover;border-radius:8px;flex-shrink:0;width:48px;height:72px;box-shadow:0 2px 8px #0000001a}.card-text h3{color:#000;text-transform:lowercase;margin-bottom:2px;font-size:.85rem;font-weight:700;line-height:1.2}.card-year{color:#999;font-size:.68rem;font-weight:400}.card-rating{color:#000;margin-top:6px;font-size:.85rem;font-weight:700}.card-slash{color:#bbb;font-size:.72rem;font-weight:400}.card-director{color:#555;margin-top:2px;font-size:.7rem;font-weight:500}.card-actors{color:#aaa;margin-top:2px;font-size:.62rem}.card-rank{color:#bbb;letter-spacing:.02em;border-top:1px solid #0000000f;margin-top:10px;padding-top:8px;font-size:.55rem;font-weight:500}.axis-labels{z-index:5;pointer-events:none;position:absolute;inset:0}.axis-label{letter-spacing:.08em;text-transform:lowercase;color:#00000026;align-items:center;gap:6px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.55rem;font-weight:500;display:flex;position:absolute}.axis-label-arrow{color:#0000001a;font-size:.6rem}.axis-label-hi{color:#0000002e}.axis-label-lo{color:#0000001a}.axis-label--y{transform-origin:50%;white-space:nowrap;top:50%;left:14px;transform:translateY(-50%)rotate(-90deg)}.axis-label--x{white-space:nowrap;bottom:100px;left:50%;transform:translate(-50%)}.view-toggle{-webkit-backdrop-filter:blur(16px);color:#666;cursor:pointer;text-transform:lowercase;pointer-events:auto;letter-spacing:.05em;background:#ffffff80;border:1px solid #0000000f;border-radius:100px;padding:6px 16px;font-family:inherit;font-size:.62rem;font-weight:600;transition:all .2s}.view-toggle:hover{color:#333;background:#0000000d}.connection-dock-wrap{z-index:15;pointer-events:none;flex-direction:column;align-items:flex-end;gap:10px;max-height:calc(100vh - 100px);display:flex;position:absolute;top:50%;right:28px;transform:translateY(-50%)}.connect-toggle{-webkit-backdrop-filter:blur(28px)saturate(1.8);pointer-events:auto;background:#ffffff38;border:1px solid #ffffff73;border-radius:999px;padding:3px;display:inline-flex;box-shadow:inset 0 1px #fff9,inset 0 -1px #00000008}.ct-btn{appearance:none;letter-spacing:.02em;color:#777;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:5px 12px;font-family:inherit;font-size:11px;font-weight:700;transition:background .18s,color .18s}.ct-btn:hover{color:#222}.ct-btn.ct-active{color:#111;background:#ffffffbf;box-shadow:inset 0 1px #ffffffe6,0 1px 2px #0000000d}.director-dock{pointer-events:auto;scrollbar-width:thin;scrollbar-color:#00000026 transparent;flex-direction:column;flex:1;align-items:flex-end;gap:2px;min-height:0;padding:8px 4px 8px 120px;display:flex;overflow-y:auto}.director-dock::-webkit-scrollbar{width:4px}.director-dock::-webkit-scrollbar-track{background:0 0}.director-dock::-webkit-scrollbar-thumb{background:#00000026;border-radius:2px}.dir-item{color:#888;letter-spacing:.01em;cursor:pointer;transform-origin:100%;will-change:transform;white-space:nowrap;align-items:center;gap:8px;padding:4px 2px;font-family:inherit;font-size:12px;font-weight:700;transition:transform .18s cubic-bezier(.2,.9,.3,1.2),color .15s;display:inline-flex}.dir-item:hover,.dir-item.active{color:#111}.dir-dot{background:var(--chip-color);border-radius:50%;flex-shrink:0;order:2;width:7px;height:7px}.dir-name{order:1}.dir-count{font-variant-numeric:tabular-nums;color:#bbb;order:3;font-size:10px}.dir-item.active .dir-count{color:#666}.hover-card-3d{-webkit-backdrop-filter:blur(20px)saturate(1.6);background:#ffffff0d;border:1px solid #ffffff1f;border-radius:12px;min-width:180px;padding:10px;box-shadow:0 8px 32px #00000014}.hover-card-3d .card-inner{gap:10px;display:flex}.hover-card-3d .card-poster{object-fit:cover;border-radius:4px;width:40px;height:60px}.hover-card-3d .card-text h3{color:#111;margin:0 0 2px;font-size:.7rem;font-weight:700}.hover-card-3d .card-year{color:#999;font-size:.55rem}.hover-card-3d .card-rating{color:#333;margin-top:2px;font-size:.6rem;font-weight:600}.hover-card-3d .card-slash{color:#bbb;font-weight:400}.hover-card-3d .card-director{color:#777;margin-top:2px;font-size:.55rem}.reset-zoom{-webkit-backdrop-filter:blur(16px);color:#666;cursor:pointer;text-transform:lowercase;pointer-events:auto;background:#ffffff80;border:1px solid #0000000f;border-radius:100px;padding:6px 16px;font-family:inherit;font-size:.62rem;font-weight:600;transition:all .2s;position:absolute;bottom:100px;right:40px}.reset-zoom:hover{color:#111;border-color:#00000026}.landing{z-index:100;background:#fff;justify-content:center;align-items:center;transition:opacity .6s;display:flex;position:fixed;inset:0;overflow:hidden}.landing--exit{pointer-events:none}.landing-loader{color:#ccc;text-transform:lowercase;letter-spacing:.05em;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.8rem;font-weight:600}.landing-scene{perspective:900px;perspective-origin:50% 45%;justify-content:center;align-items:center;padding-bottom:50px;display:flex;position:absolute;inset:0}.cube{width:360px;height:360px;transform-style:preserve-3d;will-change:transform;animation:24s linear infinite cubeRotate;position:relative}@keyframes cubeRotate{0%{transform:rotateX(-20deg)rotateY(0)rotate(5deg)}to{transform:rotateX(-20deg)rotateY(360deg)rotate(5deg)}}.cube--explode{animation:1.2s cubic-bezier(.22,1,.36,1) forwards cubeExplode}@keyframes cubeExplode{0%{opacity:1;filter:blur()}40%{opacity:1;filter:blur();transform:rotateX(0)rotateY(0)rotate(0)scale(1.3)}to{opacity:0;filter:blur(20px);transform:rotateX(0)rotateY(0)rotate(0)scale(.01)}}.cube-face{backface-visibility:visible;width:360px;height:360px;box-shadow:none;background:0 0;border:none;position:absolute;overflow:visible;-webkit-mask-image:radial-gradient(#000 20%,#0009 45%,#0000 70%);mask-image:radial-gradient(#000 20%,#0009 45%,#0000 70%)}.cube--explode .cube-face{animation:1.2s cubic-bezier(.22,1,.36,1) forwards faceScatter}@keyframes faceScatter{0%{opacity:1}60%{opacity:.6}to{opacity:0;transform:translateZ(800px)}}.face-lines{z-index:0;opacity:.6;width:100%;height:100%;position:absolute;inset:0}.face-poster{z-index:1;animation:3s ease-in-out infinite alternate posterDrift;animation-delay:var(--drift-delay,0s);will-change:transform;backface-visibility:hidden;border-radius:3px;position:absolute;overflow:hidden;box-shadow:0 1px 4px #00000014,0 0 1px #0000000d}@keyframes posterDrift{0%{transform:translate(0)}50%{transform:translate(var(--drift-x,5px), var(--drift-y,3px))}to{transform:translate(calc(var(--drift-x,5px) * -.5), calc(var(--drift-y,3px) * -.7))}}.face-poster img{object-fit:cover;width:100%;height:100%;display:block}.landing-content{z-index:10;text-align:center;pointer-events:auto;flex-direction:column;align-items:center;animation:1s ease-out .3s both contentIn;display:flex;position:relative}.landing-text-bg{pointer-events:none;z-index:-1;background:radial-gradient(#ffffffd9 0%,#fff9 40%,#fff0 75%);width:420px;height:200px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes contentIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.landing-content--exit{animation:.6s cubic-bezier(.22,1,.36,1) forwards contentOut}@keyframes contentOut{to{opacity:0;filter:blur(8px);transform:translateY(-30px)scale(.95)}}.landing-title{letter-spacing:-.06em;color:#000;text-transform:lowercase;text-shadow:0 2px 30px #fff9,0 4px 60px #fff6;margin-bottom:16px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:4.5rem;font-weight:700;line-height:1}.landing-sub{color:#000;letter-spacing:.12em;text-transform:lowercase;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.72rem;font-weight:400;animation:2.5s ease-in-out infinite subtitlePulse}@keyframes subtitlePulse{0%,to{opacity:.45}50%{opacity:1}}.landing-flash{z-index:200;pointer-events:none;background:#fff;animation:1.2s forwards flashIn;position:fixed;inset:0}@keyframes flashIn{0%{opacity:0}50%{opacity:1}to{opacity:1}}@media (width<=600px){.landing-title{font-size:3rem}.landing-text-bg{width:300px;height:160px}.cube,.cube-face{width:240px;height:240px}.landing-scene{padding-bottom:60px}}.filters-root{z-index:30;pointer-events:none;align-items:flex-start;font-family:inherit;display:flex;position:absolute;top:50%;left:20px;transform:translateY(-50%)}.filters-tabs{pointer-events:auto;flex-direction:column;gap:4px;display:flex}.filter-tab{-webkit-backdrop-filter:blur(28px)saturate(1.8);color:#444;cursor:pointer;letter-spacing:.01em;text-align:left;background:#ffffff38;border:1px solid #ffffff73;border-right:none;border-top-left-radius:14px;border-bottom-left-radius:14px;align-items:baseline;gap:8px;min-width:130px;padding:12px 16px;font-family:inherit;font-size:13px;transition:transform .2s cubic-bezier(.3,.9,.3,1),background .2s,color .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden;transform:translate(2px);box-shadow:inset 0 1px #fff9,inset 0 -1px #00000008}.filter-tab:before{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,#ffffff59 0%,#fff0 55%);position:absolute;inset:0}.filter-tab:hover{color:#111;background:#ffffff61;transform:translate(0);box-shadow:inset 0 1px #ffffffbf,inset 0 -1px #0000000a}.filter-tab.active{color:#111;background:#ffffff8c;border-color:#ffffffb3;transform:translate(0);box-shadow:inset 0 1px #ffffffe6,inset 0 -1px #0000000a}.filter-tab-label{flex:1;font-weight:700}.filter-tab-summary{color:#999;font-variant-numeric:tabular-nums;font-size:11px;font-weight:500}.filter-tab.active .filter-tab-summary{color:#555}.filters-panel{-webkit-backdrop-filter:blur(36px)saturate(1.9);pointer-events:auto;background:#ffffff8c;border:1px solid #ffffffa6;border-radius:0 14px 14px;width:360px;max-height:70vh;margin-left:-1px;padding:18px 20px;animation:.2s cubic-bezier(.3,.9,.3,1) panel-slide;position:relative;overflow-y:auto;box-shadow:inset 0 1px #ffffffe6,inset 0 -1px #0000000a,12px 14px 36px #0000001a}.filters-panel:before{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,#ffffff40 0%,#fff0 55%);position:absolute;inset:0}@keyframes panel-slide{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}.panel-title{color:#999;letter-spacing:.02em;margin-bottom:10px;font-size:11px;font-weight:400}.panel-hint{color:#aaa;margin-top:10px;font-size:11px;font-style:italic}.panel-top-slider{align-items:center;gap:12px;display:flex}.topn-readout{color:#111;font-variant-numeric:tabular-nums;text-align:right;min-width:36px;font-size:14px;font-weight:700}.topn-track-wrap{flex:1;padding:8px 10px}.topn-track{cursor:pointer;background:#00000014;border-radius:2px;height:4px;position:relative}.topn-fill{background:#111;border-radius:2px;position:absolute;top:0;bottom:0;left:0}.topn-handle{cursor:grab;touch-action:none;background:#fff;border:2px solid #111;border-radius:50%;width:16px;height:16px;transition:transform 80ms;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 1px 3px #0003}.topn-handle:active{cursor:grabbing;transform:translate(-50%,-50%)scale(1.15)}.timeline-head{justify-content:space-between;align-items:baseline;margin-bottom:14px;display:flex}.timeline-readout{font-variant-numeric:tabular-nums;color:#111;align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.timeline-dash{color:#bbb}.timeline-track-wrap{padding:0 10px 4px}.timeline-track{cursor:pointer;background:#00000014;border-radius:2px;height:4px;margin-bottom:8px;position:relative}.timeline-fill{background:#111;border-radius:2px;position:absolute;top:0;bottom:0}.timeline-handle{cursor:grab;touch-action:none;background:#fff;border:2px solid #111;border-radius:50%;width:16px;height:16px;transition:transform 80ms;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 1px 3px #0003}.timeline-handle:active{cursor:grabbing;transform:translate(-50%,-50%)scale(1.15)}.timeline-bounds{color:#bbb;font-variant-numeric:tabular-nums;justify-content:space-between;font-size:10px;display:flex}.fav-search{color:#111;box-sizing:border-box;background:#00000005;border:1px solid #00000014;border-radius:8px;outline:none;width:100%;padding:8px 12px;font-family:inherit;font-size:12px;transition:border-color .14s,background .14s}.fav-search:focus{background:#fff;border-color:#00000040}.fav-results{border-top:1px solid #0000000d;max-height:280px;margin:8px 0 0;padding:0;list-style:none;overflow-y:auto}.fav-row{border-bottom:1px solid #0000000a;align-items:center;gap:10px;padding:6px 2px;display:flex}.fav-thumb{object-fit:cover;border-radius:3px;flex-shrink:0;width:28px;height:42px}.fav-meta{flex:1;min-width:0}.fav-title{color:#111;white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:700;overflow:hidden}.fav-sub{color:#888;margin-top:1px;font-size:10px;font-weight:400}.fav-add{color:#111;letter-spacing:.02em;cursor:pointer;background:#fff;border:1px solid #0000001a;border-radius:6px;padding:4px 10px;font-family:inherit;font-size:10px;font-weight:600;transition:background .14s,color .14s,border-color .14s}.fav-add:hover,.fav-add.added{color:#fff;background:#111;border-color:#111}.fav-add.added:hover{color:#111;background:#fff;border-color:#0000001a}.fav-pinned{border-top:1px solid #0000000f;margin-top:12px;padding-top:10px}.fav-pinned-head{color:#999;letter-spacing:.02em;margin-bottom:6px;font-size:11px;font-weight:400}.fav-chips{flex-wrap:wrap;gap:4px;display:flex}.fav-chip{color:#333;cursor:pointer;background:#0000000d;border:none;border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-family:inherit;font-size:10px;font-weight:500;transition:background .14s;display:inline-flex}.fav-chip:hover{background:#0000001a}.fav-chip-x{color:#999;font-size:12px;line-height:1}
