@function shift($list) {
  @if length($list) == 1 { @return (); }

  $new: ();
  @for $i from 2 through length($list) {
    $new: append($new, nth($list, $i));
  }
  @return $new;
}

@mixin media($medias...) {
  @if length($medias) == 0 {
    @content;
  } @else {
    @media #{nth($medias, 1)} {
      @include media(shift($medias)...) {
        @content;
      }
    }
  }
}

.foo {
  @include media('only screen', '(color)', '(orientation: portrait)') {
    content: bar;
  }
}

@include media('all', '(min-width: 42em)') {
  .foo {
    content: bar;
  }
}
