<script setup lang="ts">
import ScrollIndicator from './ScrollIndicator.vue'
</script>

<template>
  <header class="hero">
    <div class="hero__group">
      <div class="hero__mainline">
        <slot name="headline" />
      </div>
      <div class="hero__subline">
        <slot name="subline" />
      </div>
    </div>
    <div class="hero__indicator">
      <ScrollIndicator />
    </div>
  </header>
</template>

<style lang="scss">
.hero {
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
  position: relative;

  height: 100dvh;

  &__group {
    display: flex;
    flex-flow: column nowrap;
    padding: 0 max(clamp(1em, 2vw, 4em), env(safe-area-inset-right)) 0
      max(clamp(1em, 2vw, 4em), env(safe-area-inset-left));

    .scroll-blur & {
      justify-content: flex-start;
      position: sticky;
      top: 0;
    }
  }

  &__mainline {
    font-family: var(--page-copy-font);
    font-size: clamp(1.5em, 4vw, 3.5em);
    color: transparent;

    background-image: linear-gradient(
      var(--clr-sebin-blue-dark) 50%,
      var(--clr-sebin-blue-light) 100%
    );
    background-clip: text;
    filter: drop-shadow(0 0 0.125rem #000);
  }

  &__subline {
    font-family: var(--page-heading-font);
    font-size: clamp(3em, 8vw, 7em);
    font-weight: 400;
    color: transparent;

    background-image: linear-gradient(var(--clr-sebin-red) 35%, var(--clr-sebin-yellow) 100%);
    background-clip: text;
    line-height: 1.25;
    filter: drop-shadow(0 0 0.25rem #000);
  }

  &__indicator {
    align-self: center;
    position: absolute;
    inset: auto auto 1em auto;
    transition: opacity 0.3s linear;

    svg {
      width: clamp(1.5em, 5vw, 2em);
    }

    .scroll-blur & {
      opacity: 0;
    }
  }
}
</style>
