/* assets/css/reset.css */
@layer reset {
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }
  :where(body, h1, h2, h3, h4, h5, h6, p, blockquote, figure, pre, dl, dd, ul, ol, menu, hr, fieldset, dialog, [popover]) {
    margin: 0;
  }
  :where(ul, ol, menu, fieldset, legend, input, textarea, td, th, dialog, [popover]) {
    padding: 0;
  }
  :root {
    text-size-adjust: none;
  }
  img,
  picture,
  video,
  canvas,
  svg {
    display: block;
    max-width: 100%;
  }
  input,
  button,
  textarea,
  select {
    font: inherit;
    color: inherit;
  }
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    margin: 0;
    font-size: inherit;
    font-weight: inherit;
  }
  button {
    all: unset;
    cursor: pointer;
    box-sizing: border-box;
    &:focus-visible {
      outline: revert;
    }
  }
  a {
    color: inherit;
    text-decoration: none;
  }
  ul,
  ol {
    list-style-type: none;
  }
}

/* assets/css/base/document.css */
@layer base {
  :root {
    font: 100% var(--font-family);
    height: 100%;
    @media (prefers-reduced-motion: no-preference) {
      scroll-behavior: smooth;
    }
  }
  @view-transition { navigation: auto; }
  body {
    background-color: var(--color-background);
    color: var(--color-text);
    font-size: var(--font-size-base);
    display: flex;
    flex-direction: column;
    min-height: 100%;
  }
}

/* assets/css/base/easings.css */
@layer base {
  :root {
    --ease-1: cubic-bezier(0.25, 0, 0.5, 1);
    --ease-2: cubic-bezier(0.25, 0, 0.4, 1);
    --ease-3: cubic-bezier(0.25, 0, 0.3, 1);
    --ease-4: cubic-bezier(0.25, 0, 0.2, 1);
    --ease-5: cubic-bezier(0.25, 0, 0.1, 1);
    --ease-in-1: cubic-bezier(0.25, 0, 1, 1);
    --ease-in-2: cubic-bezier(0.5, 0, 1, 1);
    --ease-in-3: cubic-bezier(0.7, 0, 1, 1);
    --ease-in-4: cubic-bezier(0.9, 0, 1, 1);
    --ease-in-5: cubic-bezier(1, 0, 1, 1);
    --ease-out-1: cubic-bezier(0, 0, 0.75, 1);
    --ease-out-2: cubic-bezier(0, 0, 0.5, 1);
    --ease-out-3: cubic-bezier(0, 0, 0.3, 1);
    --ease-out-4: cubic-bezier(0, 0, 0.1, 1);
    --ease-out-5: cubic-bezier(0, 0, 0, 1);
    --ease-in-out-1: cubic-bezier(0.1, 0, 0.9, 1);
    --ease-in-out-2: cubic-bezier(0.3, 0, 0.7, 1);
    --ease-in-out-3: cubic-bezier(0.5, 0, 0.5, 1);
    --ease-in-out-4: cubic-bezier(0.7, 0, 0.3, 1);
    --ease-in-out-5: cubic-bezier(0.9, 0, 0.1, 1);
    --ease-elastic-out-1: cubic-bezier(0.5, 0.75, 0.75, 1.25);
    --ease-elastic-out-2: cubic-bezier(0.5, 1, 0.75, 1.25);
    --ease-elastic-out-3: cubic-bezier(0.5, 1.25, 0.75, 1.25);
    --ease-elastic-out-4: cubic-bezier(0.5, 1.5, 0.75, 1.25);
    --ease-elastic-out-5: cubic-bezier(0.5, 1.75, 0.75, 1.25);
    --ease-elastic-in-1: cubic-bezier(0.5, -0.25, 0.75, 1);
    --ease-elastic-in-2: cubic-bezier(0.5, -0.5, 0.75, 1);
    --ease-elastic-in-3: cubic-bezier(0.5, -0.75, 0.75, 1);
    --ease-elastic-in-4: cubic-bezier(0.5, -1, 0.75, 1);
    --ease-elastic-in-5: cubic-bezier(0.5, -1.25, 0.75, 1);
    --ease-elastic-in-out-1: cubic-bezier(0.5, -0.1, 0.1, 1.5);
    --ease-elastic-in-out-2: cubic-bezier(0.5, -0.3, 0.1, 1.5);
    --ease-elastic-in-out-3: cubic-bezier(0.5, -0.5, 0.1, 1.5);
    --ease-elastic-in-out-4: cubic-bezier(0.5, -0.7, 0.1, 1.5);
    --ease-elastic-in-out-5: cubic-bezier(0.5, -0.9, 0.1, 1.5);
    --ease-step-1: steps(2);
    --ease-step-2: steps(3);
    --ease-step-3: steps(4);
    --ease-step-4: steps(7);
    --ease-step-5: steps(10);
    --ease-elastic-1: var(--ease-elastic-out-1);
    --ease-elastic-2: var(--ease-elastic-out-2);
    --ease-elastic-3: var(--ease-elastic-out-3);
    --ease-elastic-4: var(--ease-elastic-out-4);
    --ease-elastic-5: var(--ease-elastic-out-5);
    --ease-squish-1: var(--ease-elastic-in-out-1);
    --ease-squish-2: var(--ease-elastic-in-out-2);
    --ease-squish-3: var(--ease-elastic-in-out-3);
    --ease-squish-4: var(--ease-elastic-in-out-4);
    --ease-squish-5: var(--ease-elastic-in-out-5);
    --ease-spring-1: linear( 0, 0.006, 0.025 2.8%, 0.101 6.1%, 0.539 18.9%, 0.721 25.3%, 0.849 31.5%, 0.937 38.1%, 0.968 41.8%, 0.991 45.7%, 1.006 50.1%, 1.015 55%, 1.017 63.9%, 1.001 );
    --ease-spring-2: linear( 0, 0.007, 0.029 2.2%, 0.118 4.7%, 0.625 14.4%, 0.826 19%, 0.902, 0.962, 1.008 26.1%, 1.041 28.7%, 1.064 32.1%, 1.07 36%, 1.061 40.5%, 1.015 53.4%, 0.999 61.6%, 0.995 71.2%, 1 );
    --ease-spring-3: linear( 0, 0.009, 0.035 2.1%, 0.141 4.4%, 0.723 12.9%, 0.938 16.7%, 1.017, 1.077, 1.121, 1.149 24.3%, 1.159, 1.163, 1.161, 1.154 29.9%, 1.129 32.8%, 1.051 39.6%, 1.017 43.1%, 0.991, 0.977 51%, 0.974 53.8%, 0.975 57.1%, 0.997 69.8%, 1.003 76.9%, 1 );
    --ease-spring-4: linear( 0, 0.009, 0.037 1.7%, 0.153 3.6%, 0.776 10.3%, 1.001, 1.142 16%, 1.185, 1.209 19%, 1.215 19.9% 20.8%, 1.199, 1.165 25%, 1.056 30.3%, 1.008 33%, 0.973, 0.955 39.2%, 0.953 41.1%, 0.957 43.3%, 0.998 53.3%, 1.009 59.1% 63.7%, 0.998 78.9%, 1 );
    --ease-spring-5: linear( 0, 0.01, 0.04 1.6%, 0.161 3.3%, 0.816 9.4%, 1.046, 1.189 14.4%, 1.231, 1.254 17%, 1.259, 1.257 18.6%, 1.236, 1.194 22.3%, 1.057 27%, 0.999 29.4%, 0.955 32.1%, 0.942, 0.935 34.9%, 0.933, 0.939 38.4%, 1 47.3%, 1.011, 1.017 52.6%, 1.016 56.4%, 1 65.2%, 0.996 70.2%, 1.001 87.2%, 1 );
    --ease-bounce-1: linear( 0, 0.004, 0.016, 0.035, 0.063, 0.098, 0.141, 0.191, 0.25, 0.316, 0.391 36.8%, 0.563, 0.766, 1 58.8%, 0.946, 0.908 69.1%, 0.895, 0.885, 0.879, 0.878, 0.879, 0.885, 0.895, 0.908 89.7%, 0.946, 1 );
    --ease-bounce-2: linear( 0, 0.004, 0.016, 0.035, 0.063, 0.098, 0.141 15.1%, 0.25, 0.391, 0.562, 0.765, 1, 0.892 45.2%, 0.849, 0.815, 0.788, 0.769, 0.757, 0.753, 0.757, 0.769, 0.788, 0.815, 0.85, 0.892 75.2%, 1 80.2%, 0.973, 0.954, 0.943, 0.939, 0.943, 0.954, 0.973, 1 );
    --ease-bounce-3: linear( 0, 0.004, 0.016, 0.035, 0.062, 0.098, 0.141 11.4%, 0.25, 0.39, 0.562, 0.764, 1 30.3%, 0.847 34.8%, 0.787, 0.737, 0.699, 0.672, 0.655, 0.65, 0.656, 0.672, 0.699, 0.738, 0.787, 0.847 61.7%, 1 66.2%, 0.946, 0.908, 0.885 74.2%, 0.879, 0.878, 0.879, 0.885 79.5%, 0.908, 0.946, 1 87.4%, 0.981, 0.968, 0.96, 0.957, 0.96, 0.968, 0.981, 1 );
    --ease-bounce-4: linear( 0, 0.004, 0.016 3%, 0.062, 0.141, 0.25, 0.391, 0.562 18.2%, 1 24.3%, 0.81, 0.676 32.3%, 0.629, 0.595, 0.575, 0.568, 0.575, 0.595, 0.629, 0.676 48.2%, 0.811, 1 56.2%, 0.918, 0.86, 0.825, 0.814, 0.825, 0.86, 0.918, 1 77.2%, 0.94 80.6%, 0.925, 0.92, 0.925, 0.94 87.5%, 1 90.9%, 0.974, 0.965, 0.974, 1 );
    --ease-bounce-5: linear( 0, 0.004, 0.016 2.5%, 0.063, 0.141, 0.25 10.1%, 0.562, 1 20.2%, 0.783, 0.627, 0.534 30.9%, 0.511, 0.503, 0.511, 0.534 38%, 0.627, 0.782, 1 48.7%, 0.892, 0.815, 0.769 56.3%, 0.757, 0.753, 0.757, 0.769 61.3%, 0.815, 0.892, 1 68.8%, 0.908 72.4%, 0.885, 0.878, 0.885, 0.908 79.4%, 1 83%, 0.954 85.5%, 0.943, 0.939, 0.943, 0.954 90.5%, 1 93%, 0.977, 0.97, 0.977, 1 );
  }
}

/* assets/css/base/focus.css */
@layer base {
  :root {
    --focus-outline-color: currentColor;
    --focus-outline-offset: 0.4rem;
    --focus-outline-style: solid;
    --focus-outline-width: 0.4rem;
  }
  *:focus-visible {
    outline-color: var(--focus-outline-color);
    outline-offset: var(--focus-outline-offset);
    outline-style: var(--focus-outline-style);
    outline-width: var(--focus-outline-width);
  }
}

/* assets/css/base/fonts.css */
@layer base {
  @font-face {
    font-family: "Bull";
    src: url(../fonts/Bull-5-Regular.woff2) format("woff2"), url(../fonts/Bull-5-Regular.woff) format("woff");
  }
  @font-face {
    font-family: "Bull";
    font-weight: bold;
    src: url(../fonts/Bull-5NormalTest-Bold.woff2) format("woff2");
  }
}

/* assets/css/base/layout.css */
@layer base {
  .wrap {
    padding-inline: var(--spacing-inline);
  }
  .inner {
    width: 100%;
    max-width: var(--width-max);
    margin: 0 auto;
  }
  .grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: var(--spacing-s-l);
  }
  hr {
    margin-block: var(--spacing-l);
    height: 1px;
    border: none;
    background-color: currentColor;
    opacity: 0.25;
  }
}

/* assets/css/base/rich-text.css */
@layer base {
  .rich-text {
    line-height: 1.4;
    text-wrap: pretty;
    > *:first-child {
      margin-block-start: 0;
    }
    > *:last-child {
      margin-block-end: 0;
    }
  }
  .rich-text a {
    text-decoration: underline;
    text-decoration-thickness: 0.075em;
    text-underline-offset: 0.15em;
    word-break: break-word;
    &[data-external]::after {
      content: "\a0\2197";
    }
  }
  .rich-text :is(h1, h2, h3, h4, h5, h6) {
    margin-block-start: 1em;
    margin-block-end: var(--spacing-s);
    text-wrap: balance;
    &:first-child {
      margin-block-start: 0;
    }
    &:last-child {
      margin-block-end: 0;
    }
  }
  .rich-text :is(h4, h5, h6) {
    font-weight: bold;
    text-wrap: pretty;
    line-height: 1.1;
    font-size: var(--font-size-base);
    hyphens: auto;
    hyphenate-limit-chars: 10 4 4;
  }
  .rich-text :is(h4, h4, h6) {
    line-height: inherit;
  }
  .rich-text p {
    margin-block: var(--spacing-s);
  }
  .rich-text blockquote {
    display: flex;
    margin-block: var(--spacing-xl);
    font-size: var(--font-size-s);
    margin-inline-start: calc(var(--spacing-inline) * -1);
    @media (min-width: 768px) {
      margin-inline-start: 0;
    }
  }
  .blockquote__decoration {
    flex-shrink: 0;
    width: 1.875rem;
    display: flex;
    flex-direction: column;
    &::after {
      content: "";
      flex: 1;
      background-color: currentColor;
    }
  }
  .blockquote__cap {
    display: block;
    width: 100%;
    height: auto;
    flex-shrink: 0;
  }
  .blockquote__body {
    padding-block: var(--spacing-3xs-2xs);
    line-height: 1.8;
    text-wrap: pretty;
    padding-inline-start: var(--spacing-s);
    @media (min-width: 768px) {
      padding-inline-end: var(--spacing-m);
    }
    > *:first-child {
      margin-block-start: 0;
    }
    > *:last-child {
      margin-block-end: 0;
    }
  }
  .rich-text figure {
    margin-block: var(--spacing-l);
    figcaption {
      margin-block-start: var(--spacing-s);
      font-size: var(--font-size-s);
    }
  }
  .rich-text strong {
    font-weight: bold;
  }
  .rich-text em {
    font-style: italic;
  }
  .rich-text :is(ul, ol) {
    margin-block: var(--spacing-s);
  }
  .rich-text ul {
    --bullet-size: 0.6em;
    --bullet-gap: 0.5em;
    list-style: none;
    padding-inline-start: 0;
    > li {
      display: flex;
      gap: var(--bullet-gap);
      &::before {
        content: "";
        flex-shrink: 0;
        align-self: start;
        inline-size: var(--bullet-size);
        block-size: var(--bullet-size);
        border-radius: 50%;
        background-color: currentColor;
        margin-block-start: calc((1lh - var(--bullet-size)) / 2);
      }
    }
  }
  .rich-text ol {
    list-style-type: decimal;
    padding-inline-start: 1.5em;
  }
}

/* assets/css/base/typography.css */
@layer base {
  :root {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
  :root {
    --font-family: "Bull", sans-serif;
  }
  :root {
    --font-size-s: var(--step--1);
    --font-size-base: var(--step-0);
    --font-size-m: var(--step-1);
    --font-size-l: var(--step-2);
  }
  .h1,
  .h2,
  .h3,
  .rich-text :is(h1, h2, h3) {
    font-weight: bold;
    text-wrap: pretty;
    line-height: 1.1;
    font-size: var(--font-size-l);
    hyphens: auto;
    hyphenate-limit-chars: 10 4 4;
  }
  .h3,
  .rich-text h3 {
    font-weight: normal;
  }
  .kicker {
    font-size: var(--font-size-s);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: bold;
  }
}

/* assets/css/base/utopia.css */
@layer base {
  :root {
    --step--1: clamp(0.7874rem, 0.6177rem + 0.8483vw, 1.3812rem);
    --step-0: clamp(1rem, 0.7857rem + 1.0714vw, 1.75rem);
    --step-1: clamp(1.27rem, 0.9994rem + 1.3532vw, 2.2173rem);
    --step-2: clamp(1.6129rem, 1.2711rem + 1.709vw, 2.8093rem);
  }
  :root {
    --spacing-4xs: clamp(0.3125rem, 0.2589rem + 0.2679vw, 0.5rem);
    --spacing-3xs: clamp(0.3125rem, 0.2589rem + 0.2679vw, 0.5rem);
    --spacing-2xs: clamp(0.5rem, 0.3929rem + 0.5357vw, 0.875rem);
    --spacing-xs: clamp(0.75rem, 0.5893rem + 0.8036vw, 1.3125rem);
    --spacing-s: clamp(1rem, 0.7857rem + 1.0714vw, 1.75rem);
    --spacing-m: clamp(1.25rem, 0.9821rem + 1.3393vw, 2.1875rem);
    --spacing-l: clamp(1.5rem, 1.1786rem + 1.6071vw, 2.625rem);
    --spacing-xl: clamp(1.75rem, 1.375rem + 1.875vw, 3.0625rem);
    --spacing-2xl: clamp(2rem, 1.5714rem + 2.1429vw, 3.5rem);
    --spacing-3xl: clamp(2.5rem, 1.9643rem + 2.6786vw, 4.375rem);
    --spacing-4xl: clamp(3rem, 2.3571rem + 3.2143vw, 5.25rem);
    --spacing-5xl: clamp(4rem, 3.1429rem + 4.2857vw, 7rem);
    --spacing-4xs-3xs: clamp(0.3125rem, 0.2589rem + 0.2679vw, 0.5rem);
    --spacing-3xs-2xs: clamp(0.3125rem, 0.1518rem + 0.8036vw, 0.875rem);
    --spacing-2xs-xs: clamp(0.5rem, 0.2679rem + 1.1607vw, 1.3125rem);
    --spacing-xs-s: clamp(0.75rem, 0.4643rem + 1.4286vw, 1.75rem);
    --spacing-s-m: clamp(1rem, 0.6607rem + 1.6964vw, 2.1875rem);
    --spacing-m-l: clamp(1.25rem, 0.8571rem + 1.9643vw, 2.625rem);
    --spacing-l-xl: clamp(1.5rem, 1.0536rem + 2.2321vw, 3.0625rem);
    --spacing-xl-2xl: clamp(1.75rem, 1.25rem + 2.5vw, 3.5rem);
    --spacing-2xl-3xl: clamp(2rem, 1.3214rem + 3.3929vw, 4.375rem);
    --spacing-3xl-4xl: clamp(2.5rem, 1.7143rem + 3.9286vw, 5.25rem);
    --spacing-4xl-5xl: clamp(3rem, 1.8571rem + 5.7143vw, 7rem);
    --spacing-s-l: clamp(1rem, 0.5357rem + 2.3214vw, 2.625rem);
    --spacing-xl-2xl: clamp(1.75rem, 1.25rem + 2.5vw, 3.5rem);
  }
}

/* assets/css/base/variables.css */
@layer base {
  :root {
    --color-text-base: black;
    --color-background-base: white;
    --color-text: var(--color-text-base);
    --color-background: var(--color-background-base);
  }
  [data-inverted] {
    --color-text: var(--color-background-base);
    --color-background: var(--color-text-base);
  }
  ::selection {
    background-color: var(--color-text);
    color: var(--color-background);
  }
  :root {
    --spacing-inline: var(--spacing-m-l);
  }
  :root {
    --width-max: 67.5rem;
    --width-max-wide: 90rem;
    --width-logo: var(--spacing-3xl);
    --height-header: clamp(5rem, 3.75rem + 6.25vw, 9.375rem);
  }
}

/* assets/css/base/base.css */
@layer base;

/* assets/css/components/button.css */
@layer components {
  .buttons {
    display: flex;
    align-items: start;
    flex-direction: column;
    gap: var(--spacing-xs);
  }
  .button {
    font-weight: bold;
    text-decoration: underline;
    text-decoration-thickness: 0.2em;
    text-underline-offset: 0.2em;
    text-decoration-skip-ink: none;
    color: inherit;
    &[data-external]::after {
      content: "\a0\2197";
    }
  }
}

/* assets/css/components/guides.css */
@layer components {
  .guides {
    position: fixed;
    inset: 0;
    z-index: calc(infinity);
    pointer-events: none;
    visibility: hidden;
    --guide-color: #84ffff;
  }
  .guides::after {
    content: attr(data-window-width);
    color: var(--guide-color);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: var(--font-size-l);
  }
  .guides__inner {
    height: 100%;
  }
  .guides__guide {
    outline: 1px solid var(--guide-color);
    background-color: color-mix(in srgb, var(--guide-color), transparent 75%);
  }
}

/* assets/css/components/headings.css */
@layer components {
  .headings {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-m);
  }
}

/* assets/css/components/icon-button.css */
@layer components {
  .icon-button {
    color: currentColor;
    width: auto;
    height: var(--spacing-l);
  }
  .icon-button__icon {
    display: block;
    width: 100%;
    height: 100%;
  }
}

/* assets/css/components/image.css */
@layer components {
  .image-wrap {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
  }
  .image-wrap__image {
    background-size: cover;
  }
  .image-wrap__caption {
    font-size: var(--font-size-s);
  }
}

/* assets/css/components/logo.css */
@layer components {
  .logo {
  }
  .logo__graphic {
    width: var(--width-logo);
    height: auto;
  }
}

/* assets/css/components/menu.css */
@layer components {
  .menu {
    position: fixed;
    inset: 0;
    margin: 0;
    padding: 0;
    border: none;
    max-width: none;
    max-height: none;
    width: 100%;
    height: 100%;
    overflow: clip;
    background: transparent;
    color: var(--color-text);
    &::backdrop {
      background: transparent;
    }
  }
  .menu__backdrop {
    position: absolute;
    inset: 0;
    backdrop-filter: blur(1.5px) brightness(90%);
    opacity: 0;
  }
  .menu__panel {
    position: absolute;
    inset-block: 0;
    inset-inline-end: calc(-1 * var(--spacing-m));
    padding-inline-start: var(--spacing-l);
    padding-inline-end: calc(var(--spacing-l) + var(--spacing-m));
    padding-block-end: var(--spacing-2xl);
    width: 100%;
    max-width: calc(30rem + var(--spacing-m));
    background-color: var(--color-background);
    transform: translateX(100%);
    will-change: transform;
  }
  .menu__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: var(--height-header);
  }
  .menu__home {
    width: var(--spacing-m);
  }
  .menu__list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-s);
  }
  .menu__item {
  }
}

/* assets/css/components/name.css */
@layer components {
  .name {
    font-size: var(--font-size-l);
    font-weight: bold;
    margin-inline: auto;
    display: flex;
    gap: 0.5ch;
    position: relative;
  }
  .name__word {
    will-change: transform;
  }
  .name__word--1 {
    view-transition-name: name-word-1;
  }
  .name__word--2 {
    view-transition-name: name-word-2;
    @media (max-width: 500px) {
      opacity: 0;
      position: absolute;
      left: 100%;
      top: 0;
      margin-inline-start: 0.5ch;
    }
    :root:not([data-template=home]) & {
      opacity: 0;
      position: absolute;
      left: 100%;
      top: 0;
      margin-inline-start: 0.5ch;
    }
  }
  @media (prefers-reduced-motion: no-preference) {
    ::view-transition-group(name-word-1),
    ::view-transition-group(name-word-2) {
      animation-duration: 0.5s;
      animation-timing-function: var(--ease-spring-1);
    }
  }
}

/* assets/css/components/components.css */
@layer components;

/* assets/css/modules/base-module.css */
@layer modules {
  .module {
  }
}

/* assets/css/modules/text-module.css */
@layer modules {
  .text-module {
  }
  .text-module__inner {
    row-gap: var(--spacing-l);
  }
  .text-module__header {
    grid-column: 1 / -1;
    @media (min-width: 768px) {
      grid-column: 2 / -2;
    }
  }
  .text-module__text {
    grid-column: 1 / -1;
    @media (min-width: 768px) {
      grid-column: 2 / -2;
    }
  }
  .text-module__buttons {
    grid-column: 1 / -1;
    @media (min-width: 768px) {
      grid-column: 2 / -2;
    }
  }
}

/* assets/css/modules/modules.css */
@layer modules;

/* assets/css/sections/footer.css */
@layer sections {
  .footer {
    margin-block-start: auto;
    background-color: var(--color-background);
    color: var(--color-text);
    padding-block: var(--spacing-4xl);
  }
  .footer__inner {
  }
  .footer__bottom {
    grid-column: 2 / -2;
  }
}

/* assets/css/sections/header.css */
@layer sections {
  .header {
    pointer-events: none;
    @media (min-width: 768px) {
      position: sticky;
      top: 0;
      z-index: 10;
    }
  }
  .header__inner {
    display: flex;
    height: var(--height-header);
    align-items: center;
    max-width: var(--width-max-wide);
    > * {
      pointer-events: initial;
    }
  }
  .header__name {
    @media (min-width: 1000px) {
      @media (prefers-reduced-motion: no-preference) {
        will-change: transform;
        transition: all 0.25s var(--ease-spring-1);
        transition-property:
          opacity,
          translate,
          visibility;
      }
      :root.is-scrolled & {
        opacity: 0;
        visibility: hidden;
        translate: 0 -100%;
      }
    }
  }
}

/* assets/css/sections/modules.css */
@layer sections {
  .modules {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3xl);
    margin-block: var(--spacing-3xl);
    margin-block-end: calc(var(--spacing-3xl) * 2);
    position: relative;
    z-index: 1;
  }
}

/* assets/css/sections/sections.css */
@layer sections;

/* assets/css/base/utility.css */
@layer utility {
  .visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
}

/* assets/css/style.css */
/*# sourceMappingURL=style.min.css.map */
