For a single area, the code would look something like this.
var area = d3.svg.area()
.x(function(d) { return x(d.date); })
.y0(function(d) { return y(+d.p05); })
.y1(function(d) { return y(+d.p25); });
per.append("g")
.attr("class", "per")
.append("path")
.attr("class", "area")
.attr("d", function (d) { return area(data); });
For multiple areas, you can use the domain of your color
scale to loop over the different values like you have done before. That is, the code above would be in a loop like this.
var values = color.domain();
for(var i = 0; i < values.length() - 1; i ++) {
var area = d3.svg.area()
.x(function(d) { return x(d.date); })
.y0(function(d) { return y(+d[values[i]]); })
.y1(function(d) { return y(+d[values[i+1]]); });
per.append("g")
.attr("class", "per-" + values[i])
.append("path")
.attr("class", "area-" + values[i])
.attr("d", function (d) { return area(data); });
}