How to style heading independently of outline entry?

In outline, thsy show like this, they are level 2 headings.

But they still show level 1 headings if you read it.

I want to keep level 1 heading in code, and shown other levels in outline, I have done this. but I can’t let it show like level 1 heading.

By this:

#let outline_offset(offset: 1 , outline_label: <outline_main>, doc) = {
  context {
    if check_label(outline_label) {
      set heading(offset: offset)
      doc
    } else {doc}
  }
}

(Maybe use state can be better, my project have many includes, talk about this later)

so, just to clarify: you wanna show them as level 1 in code:

= a

show them as level 1 in the output:

but show them as level 2 in the outline (like in your screenshot), right?

My goal is this. You are right.

It seems to me that the easiest solution would be to style heading at level 1 & 2 to look identical:

#show selector.or(
  heading.where(level: 1),
  heading.where(level: 2),
): it => {
  set text(size: 14pt, font: "EB Garamond")
  set align(center)
  show: upper
  it
}

#outline()

= Heading at level 1
== Heading at level 2
=== Heading at level 3