
/* FRAME Connections Studio — designed around people, source-checked roles and real posters. */
.cx-studio{display:flex;flex-direction:column;gap:18px;padding-bottom:20px;--cx-radius:18px}
.cx-studio *{box-sizing:border-box}
.cx-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,58%) minmax(0,42%);align-items:center;min-height:245px;padding:30px 38px;border:1px solid var(--line);border-radius:23px;background:radial-gradient(ellipse at 86% 20%,color-mix(in srgb,var(--accent) 17%,transparent),transparent 65%),linear-gradient(110deg,var(--surface),var(--surface2))}
.cx-hero>div:first-child{position:relative;z-index:2}
.cx-eyebrow{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;font-weight:850;color:var(--accent)}
.cx-hero h2{font-size:clamp(29px,3.2vw,43px);letter-spacing:-1.9px;line-height:1.04;margin:14px 0 10px}
.cx-hero h2 em{font-style:normal;color:var(--accent)}
.cx-hero p{max-width:515px;color:var(--muted);font-size:12.5px;line-height:1.7}
.cx-hero-posters{height:212px;position:relative;overflow:visible}
.cx-hero-p{position:absolute;width:124px;height:186px;top:50%;left:50%;transform:translate(-50%,-50%) rotate(var(--rot));margin-left:var(--offset);z-index:var(--layer);border-radius:12px;overflow:hidden;box-shadow:0 17px 38px #0007,0 0 0 1px #ffffff24}
.cx-hero-p img{width:100%;height:100%;object-fit:cover}
.cx-hero-p0{--offset:-40px;--rot:-5deg;--layer:4}.cx-hero-p1{--offset:65px;--rot:10deg;--layer:3}.cx-hero-p2{--offset:-140px;--rot:-13deg;--layer:2}.cx-hero-p3{--offset:159px;--rot:16deg;--layer:1}
.cx-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.cx-summary>div{border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:16px 17px;display:flex;gap:6px;flex-direction:column}
.cx-summary strong{font-size:clamp(24px,2.3vw,32px);font-variant-numeric:tabular-nums;letter-spacing:-1px}
.cx-summary span{font-size:11px;color:var(--muted);line-height:1.35}
.cx-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.cx-tabs button{min-width:0;min-height:91px;display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:11px;text-align:left;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:15px;color:var(--text)}
.cx-tabs button:hover{border-color:var(--accent)}
.cx-tabs button[aria-pressed=true]{background:color-mix(in srgb,var(--surface) 83%,var(--accent) 17%);border-color:var(--accent)}
.cx-tab-icon{display:grid;place-items:center;width:32px;height:32px;font-size:19px;color:var(--accent);background:var(--surface2);border-radius:10px}
.cx-tabs button>span:nth-child(2){min-width:0;display:flex;flex-direction:column;gap:6px}
.cx-tabs b{font-size:12px;white-space:normal}
.cx-tabs small{color:var(--muted);font-size:10px;line-height:1.35}
.cx-tabs button>strong{font-size:15px;color:var(--accent);font-variant-numeric:tabular-nums}
.cx-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border:1px solid var(--line);background:var(--surface);border-radius:15px;padding:12px}
.cx-search{display:flex;flex:1 1 260px;gap:10px;align-items:center;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);min-height:41px;color:var(--muted)}
.cx-search input{width:100%;min-width:0;background:none;border:0;outline:none;color:var(--text);font-size:12px}
.cx-view{display:flex;padding:3px;gap:3px;border-radius:10px;background:var(--bg);border:1px solid var(--line)}
.cx-view button{border:0;background:transparent;border-radius:8px;font-size:11px;color:var(--muted);font-weight:750;padding:9px 13px}
.cx-view button[aria-pressed=true]{background:var(--accent);color:#17151a}
.cx-discover{border:1px solid var(--line);background:var(--surface2);color:var(--text);border-radius:10px;padding:10px 13px;font-size:11px;white-space:nowrap}
.cx-discover[aria-pressed=true]{border-color:var(--accent)}
.cx-note,.cx-endnote{font-size:11px;line-height:1.7;color:var(--muted);margin:0 2px}
.cx-support{display:flex;align-items:center;justify-content:space-between;gap:20px;background:color-mix(in srgb,var(--surface) 90%,var(--accent) 10%);border:1px solid color-mix(in srgb,var(--line) 60%,var(--accent) 40%);border-radius:17px;padding:20px 22px}
.cx-support h3{font-size:15px;margin:0 0 6px}
.cx-support p{font-size:11px;line-height:1.6;color:var(--muted);margin:0 0 11px;max-width:720px}
.cx-support small{font-size:10px;color:var(--accent)}
.cx-support button{white-space:nowrap}
.cx-feature,.cx-selected{border:1px solid var(--line);border-radius:19px;padding:23px 25px;background:linear-gradient(105deg,color-mix(in srgb,var(--surface) 93%,var(--accent) 7%),var(--surface))}
.cx-feature-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:17px}
.cx-feature-head h3{font-size:clamp(21px,2vw,28px);line-height:1.18;margin:8px 0 4px;letter-spacing:-.8px}
.cx-feature-head p{font-size:11px;color:var(--muted);margin:0}
.cx-work-strip{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap}
.cx-work{width:110px;min-width:0;display:flex;flex-direction:column;gap:5px}
.cx-poster{padding:0;background:var(--surface2);border:1px solid var(--line);border-radius:10px;overflow:hidden;aspect-ratio:2/3;width:100%;display:block;cursor:pointer;transition:transform .2s,border-color .2s}
.cx-poster img{width:100%;height:100%;display:block;object-fit:cover}
.cx-poster:hover{transform:translateY(-3px);border-color:var(--accent)}
.cx-poster-blank{display:grid;place-items:center;width:100%;height:100%;color:var(--muted);font-size:10px;padding:10px}
.cx-work b{font-size:10.5px;line-height:1.3;overflow-wrap:anywhere}
.cx-work small{font-size:10px;color:var(--muted);line-height:1.4;min-height:17px}
.cx-overflow{font-size:11px;color:var(--accent);align-self:center;font-weight:750}
.cx-results{display:flex;flex-direction:column;gap:18px}
.cx-section-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.cx-section-head h3{font-size:20px;letter-spacing:-.5px;margin:4px 0}
.cx-section-head span{font-size:11px;color:var(--muted)}
.cx-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;align-items:stretch}
.cx-person{display:flex;flex-direction:column;gap:15px;min-width:0;padding:19px;background:var(--surface);border:1px solid var(--line);border-radius:18px}
.cx-person:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}
.cx-person-head{display:flex;justify-content:space-between;gap:12px}
.cx-person-head h4{font-size:19px;letter-spacing:-.6px;margin:6px 0}
.cx-person-head small{font-size:11px;color:var(--muted)}
.cx-person-head> b{font-size:24px;color:var(--accent);font-variant-numeric:tabular-nums}
.cx-person .cx-work-strip{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--line) transparent;padding-bottom:6px}
.cx-person .cx-work{flex:0 0 92px;width:92px}
.cx-person .cx-poster{border-radius:8px}
.cx-explore{width:100%;display:flex;justify-content:space-between;align-items:center;background:var(--surface2);border:1px solid var(--line);border-radius:10px;color:var(--text);padding:11px 12px;margin-top:auto;font-size:11px;font-weight:750}
.cx-explore span{color:var(--accent);font-size:16px}
.cx-explore:hover{border-color:var(--accent)}
.cx-show-more{text-align:center}
.cx-selected{border-color:var(--accent)}
.cx-selected-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(225px,1fr));gap:10px}
.cx-selected-title{display:flex;gap:12px;align-items:center;min-width:0;padding:9px;border:1px solid var(--line);border-radius:12px;background:var(--surface2);color:var(--text);text-align:left}
.cx-selected-title:hover{border-color:var(--accent)}
.cx-selected-title img,.cx-selected-title .cx-poster-blank{flex:0 0 60px;width:60px;height:90px;border-radius:7px;object-fit:cover}
.cx-selected-title>span:nth-child(2){display:flex;flex-direction:column;gap:7px;min-width:0}
.cx-selected-title b{font-size:12px;line-height:1.35}
.cx-selected-title small{font-size:11px;color:var(--muted)}
.cx-selected-title em{font-style:normal;color:var(--accent);font-size:10px}
.cx-net{padding:12px 15px;background:var(--surface);border:1px solid var(--line);border-radius:18px}
.cx-net svg{display:block;width:100%;max-height:460px}
.cx-net-node{cursor:pointer}
.cx-net-node text{font-size:10px;fill:var(--text)}
.cx-net-node:hover circle{stroke-width:4}
.cx-empty{border:1px dashed var(--line);border-radius:16px;text-align:center;padding:35px 22px;background:var(--surface)}
.cx-empty h3{font-size:17px;margin-bottom:5px}
.cx-empty p{font-size:12px;color:var(--muted)}
.cx-endnote{text-align:center;margin:6px 10px}
@media(max-width:1140px){.cx-hero{grid-template-columns:minmax(0,65%) minmax(0,35%)}.cx-hero-p3{display:none}.cx-hero-p2{--offset:-85px}.cx-hero-p1{--offset:85px}.cx-tabs button{grid-template-columns:27px minmax(0,1fr) auto;gap:7px;padding:12px}.cx-work{width:98px}.cx-grid{gap:12px}}
@media(max-width:780px){.cx-hero{grid-template-columns:minmax(0,1fr) 180px;padding:24px}.cx-hero h2{font-size:31px}.cx-hero-p{width:105px;height:158px}.cx-hero-p1{--offset:65px}.cx-hero-p2{display:none}.cx-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.cx-tabs{grid-template-columns:1fr}.cx-tabs button{min-height:64px;padding:12px 15px}.cx-grid{grid-template-columns:1fr}.cx-person .cx-work{width:95px;flex-basis:95px}.cx-feature .cx-work{width:95px}.cx-support{flex-direction:column;align-items:stretch}.cx-support button{align-self:flex-start}}
@media(max-width:560px){.cx-hero{display:flex;flex-direction:column-reverse;gap:9px;align-items:stretch;padding:17px 20px 22px}.cx-hero-posters{height:145px;transform:scale(.8)}.cx-hero h2{font-size:29px;margin:9px 0}.cx-hero p{font-size:11px}.cx-summary{gap:9px}.cx-summary>div{padding:13px}.cx-summary strong{font-size:25px}.cx-tabs button{gap:9px}.cx-toolbar{padding:9px}.cx-search{flex-basis:100%}.cx-view,.cx-discover{flex:1}.cx-discover{white-space:normal}.cx-feature,.cx-selected{padding:16px}.cx-feature-head{align-items:flex-start;flex-direction:column}.cx-work-strip{gap:9px}.cx-feature .cx-work{width:86px}.cx-person{padding:15px}.cx-selected-grid{grid-template-columns:1fr}.cx-net{padding:5px}.cx-summary span{font-size:10px}}
@media(prefers-reduced-motion:reduce){.cx-poster{transition:none}.cx-poster:hover{transform:none}}

/* Identity-matched headshots sit beside the credits, with a graceful no-photo state. */
.cx-person{display:grid;grid-template-columns:minmax(0,1fr) clamp(105px,23%,138px);align-items:stretch;column-gap:15px}
.cx-person-copy{min-width:0;display:flex;flex-direction:column;gap:14px}
.cx-person-copy .cx-person-head{min-width:0}
.cx-person-copy .cx-person-head h4{overflow-wrap:anywhere}
.cx-person-copy .cx-work-strip{min-width:0;flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px}
.cx-person-copy .cx-work{flex:0 0 75px;width:75px}
.cx-person-copy .cx-explore{margin-top:auto}
.cx-person-photo{position:relative;overflow:hidden;isolation:isolate;min-height:205px;height:100%;width:100%;border:1px solid color-mix(in srgb,var(--accent) 26%,var(--line));border-radius:14px;background:radial-gradient(ellipse at 50% 30%,color-mix(in srgb,var(--accent) 19%,var(--surface2)),var(--surface2) 75%);box-shadow:inset 0 0 16px #00000010}
.cx-person-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 20%;filter:saturate(.92)}
.cx-person-photo img[hidden],.cx-person-photo .cx-photo-fallback[hidden]{display:none!important}
.cx-photo-fallback{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;padding:12px;text-align:center;color:var(--muted)}
.cx-photo-fallback strong{font-size:clamp(21px,2.6vw,31px);line-height:1;color:var(--accent);font-weight:800;letter-spacing:-1px}
.cx-photo-fallback small{font-size:10px;line-height:1.4}
.cx-person-photo:has(img:not([hidden])) .cx-photo-fallback{display:none}
.cx-feature-body,.cx-selected-top{display:grid;grid-template-columns:minmax(0,1fr) 155px;gap:22px;align-items:stretch}
.cx-feature-content,.cx-selected-copy{min-width:0}
.cx-photo-spotlight{min-height:216px;max-height:255px}
.cx-photo-detail{min-height:170px;height:188px;max-height:188px}
.cx-selected-top{margin-bottom:17px}
.cx-feature .cx-work-strip{min-width:0}
@media(max-width:780px){
 .cx-person{grid-template-columns:minmax(0,1fr) 136px}
 .cx-person-copy .cx-work{flex-basis:89px;width:89px}
 .cx-feature-body,.cx-selected-top{grid-template-columns:minmax(0,1fr) 132px;gap:14px}
}
@media(max-width:560px){
 .cx-person{grid-template-columns:minmax(0,1fr) 114px;gap:12px}
 .cx-person-photo{min-height:185px;border-radius:11px}
 .cx-person-copy{gap:10px}
 .cx-person-copy .cx-work{flex-basis:68px;width:68px}
 .cx-person-copy .cx-work-strip{gap:6px}
 .cx-person-copy .cx-person-head h4{font-size:17px}
 .cx-person-copy .cx-person-head>b{font-size:18px}
 .cx-feature-body,.cx-selected-top{grid-template-columns:minmax(0,1fr) 110px;gap:10px}
 .cx-feature .cx-work{width:70px}
 .cx-photo-spotlight{min-height:185px;max-height:205px}
 .cx-photo-detail{min-height:153px;height:153px}
 .cx-feature-head{gap:10px}
 .cx-feature-head .secondary{padding:8px 9px;font-size:10px}
}
@media(max-width:390px){
 .cx-person{grid-template-columns:minmax(0,1fr) 96px;gap:9px}
 .cx-person-copy .cx-work{flex-basis:63px;width:63px}
 .cx-person-photo{min-height:173px}
 .cx-feature-body,.cx-selected-top{grid-template-columns:minmax(0,1fr) 96px}
 .cx-photo-fallback small{font-size:9px}
}


/* Poster balance: take advantage of card width instead of leaving a large blank gutter. */
.cx-person-copy .cx-work-strip{
  justify-content:flex-start;
  gap:12px;
  align-items:flex-start;
}
.cx-person-copy .cx-work{
  flex:0 0 min(152px,43%);
  width:min(152px,43%);
}
.cx-person-copy .cx-work-strip:has(> .cx-work:nth-child(2):last-child){
  justify-content:flex-start;
}
.cx-person-copy .cx-work-strip:has(> .cx-work:nth-child(3)) .cx-work{
  flex-basis:min(119px,30%);
  width:min(119px,30%);
}
.cx-person-copy .cx-work-strip:has(> .cx-work:nth-child(4)) .cx-work{
  flex-basis:min(102px,23%);
  width:min(102px,23%);
}
.cx-person-copy .cx-work b,
.cx-feature-content .cx-work b{
  font-size:11px;
  line-height:1.35;
}
.cx-person-copy .cx-work small,
.cx-feature-content .cx-work small{
  font-size:10px;
  line-height:1.35;
}
.cx-feature-content .cx-work-strip{
  justify-content:flex-start;
  gap:18px;
  align-items:flex-start;
}
.cx-feature-content .cx-work{
  flex:0 0 clamp(124px,10vw,166px);
  width:clamp(124px,10vw,166px);
}
.cx-feature-content .cx-work-strip:has(> .cx-work:nth-child(2):last-child){
  justify-content:flex-start;
}
.cx-feature-content .cx-work-strip:has(> .cx-work:nth-child(3)){
  justify-content:flex-start;
}
@media(max-width:780px){
 .cx-person-copy .cx-work{flex-basis:min(154px,43%);width:min(154px,43%)}
 .cx-person-copy .cx-work-strip:has(> .cx-work:nth-child(3)) .cx-work{flex-basis:min(132px,30%);width:min(132px,30%)}
 .cx-person-copy .cx-work-strip:has(> .cx-work:nth-child(4)) .cx-work{flex-basis:min(105px,23%);width:min(105px,23%)}
 .cx-feature-content .cx-work{flex-basis:clamp(108px,18vw,146px);width:clamp(108px,18vw,146px)}
}
@media(max-width:560px){
 .cx-person-copy .cx-work-strip{gap:8px}
 .cx-person-copy .cx-work{flex-basis:min(104px,46%);width:min(104px,46%)}
 .cx-person-copy .cx-work-strip:has(> .cx-work:nth-child(3)) .cx-work{flex-basis:min(86px,30%);width:min(86px,30%)}
 .cx-person-copy .cx-work-strip:has(> .cx-work:nth-child(4)) .cx-work{flex-basis:min(75px,23%);width:min(75px,23%)}
 .cx-feature-content .cx-work-strip{gap:10px}
 .cx-feature-content .cx-work{flex-basis:min(105px,46%);width:min(105px,46%)}
 .cx-feature-content .cx-work-strip:has(> .cx-work:nth-child(2):last-child){justify-content:flex-start}
 .cx-person-copy .cx-work b,.cx-feature-content .cx-work b{font-size:10px}
}
@media(max-width:390px){
 .cx-person-copy .cx-work{flex-basis:min(90px,46%);width:min(90px,46%)}
 .cx-feature-content .cx-work{flex-basis:min(90px,46%);width:min(90px,46%)}
}
