How to modify the styling of outline entries?

Hey guys, I am currently working on a layout for my master thesis. While I have a template for writing it in Latex, I would like to use Typst. Hence, I tried to convert it, but ended up copying manually.

I was able to achieve most of the key aspects of the original template, expect for styling outline entries. More specifically, I would like to increase the vertical spacing between entry items.

This here is how the table of contents / outline should look like (original template):

As you can see each chapter (headling-level) has some vertical spacing and there also is some additional spacing between the other entries.

I was able to achieve something similar but through a kinda hacky way…:

    #set repeat(gap: 4pt)

    #show outline.entry.where(level: 2): it => {
      box(inset: (left: 10pt))[
        #set par(hanging-indent: 15pt)
        #v(-4pt)
        #it
        #v(2pt)
      ]
    }

    #show outline.entry.where(level: 3): it => {
      block(spacing: 0pt, inset: (left: 30pt))[
        #v(2pt)
        #it
        #v(-3pt)
      ]
    }

    #show outline.entry.where(level: 1): it => {
      show repeat: none
      v(5pt)
      strong(it)
    }

    #outline(
      title: [Table of Contents #v(40pt)],
      depth: 3,
      indent: (
        nesting => (
          if (nesting == 0) { 0em } else if nesting == 1 { 1em } else if nesting == 2 { 2.5em } else if nesting == 3 {
            4.5em
          }
        )
      ),
    ) #label("table-contents")

This is what my ToC looks like using the above code:

While it looks fairly similar I was wondering whether there is a cleaner way to do this? (Also there are slight differences like the spacing between 1.1.2 and 1.2 seems to be slightly large than in the original template (first screenshot). And for long headings (1.3) it also looks different in terms of where the page number is placed.

PS: Small side question, as you can see from the first screenshot, the original latex template, all internal links like the outline are encased in red rectangles, due to using hyperref. I use something similar by using a custom function to add such styles, but is it possible to achieve a hyperref behavior in typst more easily, especially in situations like e.g. the outline?