@charset "UTF-8";
:root {
  --color-txt: #272727;
  --color-reversal: #fff;
  --color-prime: #f80;
  --color-second: #06f;
  --color-third: #f5b400;
  --color-body: #fff;
  --color-gray: #f9f7f6;
  --font-size-h1: min(10.6666666667vw, 5rem);
  --font-size-h2: min(7.4666666667vw, 3.5rem);
  --font-size-h3: min(7.4666666667vw, 3.5rem);
  --font-size-h4: min(6.4vw, 3rem);
  --font-size-h5: min(5.3333333333vw, 2.5rem);
  --font-size-xl: min(4vw, 1.875rem);
  --font-size-lg: min(4.2666666667vw, 2rem);
  --font-size-base: min(4vw, 1.875rem);
  --font-size-sm: min(3.7333333333vw, 1.75rem);
  --font-size-xs: min(3.2vw, 1.5rem);
}
@media (width >= 48em) {
  :root {
    --font-size-h1: 4rem;
    --font-size-h2: 2.5rem;
    --font-size-h3: 2rem;
    --font-size-h4: 1.75rem;
    --font-size-h5: 1.5rem;
    --font-size-xl: 1.25rem;
    --font-size-lg: 1.125rem;
    --font-size-base: 1rem;
    --font-size-sm: 0.875rem;
    --font-size-xs: 0.75rem;
  }
}

/* svgアイコン */
/* 継承要素 */
@keyframes fade {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.scrollIn,
.loadIn {
  opacity: 0;
  transition: transform 1s ease-out, opacity 1s ease-out;
}
.scrollIn.-up,
.loadIn.-up {
  transform: translate(0, 3.125rem);
}
.scrollIn.-down,
.loadIn.-down {
  transform: translate(0, -3.125rem);
}
.scrollIn.-right,
.loadIn.-right {
  transform: translate(3.125rem, 0);
}
.scrollIn.-left,
.loadIn.-left {
  transform: translate(-3.125rem, 0);
}
.scrollIn.-scale,
.loadIn.-scale {
  transform: scale(0);
}
.scrollIn.-active,
.loadIn.-active {
  opacity: 1;
  transform: none;
  transition: transform 1s ease-out, opacity 1s ease-out;
}
.scrollIn.-active.-each ~ .-each:nth-of-type(2),
.loadIn.-active.-each ~ .-each:nth-of-type(2) {
  animation-delay: 1600ms;
}
.scrollIn.-active.-each ~ .-each:nth-of-type(3),
.loadIn.-active.-each ~ .-each:nth-of-type(3) {
  animation-delay: 2400ms;
}
.scrollIn.-active.-each ~ .-each:nth-of-type(4),
.loadIn.-active.-each ~ .-each:nth-of-type(4) {
  animation-delay: 3200ms;
}
.scrollIn.-active.-each ~ .-each:nth-of-type(5),
.loadIn.-active.-each ~ .-each:nth-of-type(5) {
  animation-delay: 4000ms;
}
.scrollIn.-active.-each ~ .-each:nth-of-type(6),
.loadIn.-active.-each ~ .-each:nth-of-type(6) {
  animation-delay: 4800ms;
}
.scrollIn.-active.-each ~ .-each:nth-of-type(7),
.loadIn.-active.-each ~ .-each:nth-of-type(7) {
  animation-delay: 5600ms;
}
.scrollIn.-active.-each ~ .-each:nth-of-type(8),
.loadIn.-active.-each ~ .-each:nth-of-type(8) {
  animation-delay: 6400ms;
}
.scrollIn.-active.-each ~ .-each:nth-of-type(9),
.loadIn.-active.-each ~ .-each:nth-of-type(9) {
  animation-delay: 7200ms;
}
.scrollIn.-active.-each ~ .-each:nth-of-type(10),
.loadIn.-active.-each ~ .-each:nth-of-type(10) {
  animation-delay: 8000ms;
}

.loopImg {
  position: absolute;
  inset: auto 0 0;
  z-index: 1;
  width: 100vw;
  margin: 0 calc(50% - 50vw);
  overflow: hidden;
}
.loopImg span {
  display: block;
  line-height: 1;
  white-space: nowrap;
}
.loopImg .loop {
  width: fit-content;
  padding-left: 0.3em;
  animation: loop 50s linear infinite;
}
.loopImg .loop2 {
  position: absolute;
  top: 0;
  left: 0;
  padding-left: 0.3em;
  animation: loop 50s -25s linear infinite;
}
@keyframes loop {
  0% {
    translate: 100% 0;
  }
  100% {
    translate: -100% 0;
  }
}

.reveal-char {
  display: inline-block;
  overflow: hidden;
  vertical-align: bottom;
}
.reveal-char span {
  display: inline-block;
  color: #e9e9e9;
  transform: translateY(110%);
  transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1), color 0.6s ease;
  will-change: transform;
}

.is-active .reveal-char span {
  color: #272727;
  transform: translateY(0);
}

.top_scene .reveal-char span,
.top_scene .c_ttl_top-en {
  color: #fff;
}

.top_scene.is-active .reveal-char span,
.top_scene .is-active .c_ttl_top-en,
.top_scene.is-active .c_ttl_top-en {
  color: #fff;
}

.c_ttl_top-en {
  color: #e9e9e9;
  opacity: 0;
  transform: translateY(1.25rem);
  transition: opacity 1s ease, transform 1s cubic-bezier(0.22, 1, 0.36, 1), color 0.6s ease;
}

.is-active .c_ttl_top-en {
  color: #272727;
  opacity: 1;
  transform: translateY(0);
}

.c_ttl_top-jp svg,
.c_ttl_top-jp img {
  opacity: 0;
  transition: opacity 1s ease;
  transition-delay: 0.2s;
}

.is-active .c_ttl_top-jp svg,
.is-active .c_ttl_top-jp img {
  opacity: 1;
}

.c_ttl_top-jp {
  font-feature-settings: "palt";
}

.c_link .hasIcon,
a.c_link .hasIcon {
  overflow: visible;
  clip-path: circle(57%);
}

.c_link .hasIcon::before,
a.c_link .hasIcon::before {
  transition: background-color 0.4s ease-out, border-color 0.4s ease-out;
}

.c_link:hover .hasIcon::before,
.c_link:focus-visible .hasIcon::before,
.c_link:active .hasIcon::before,
a.c_link:hover .hasIcon::before,
a.c_link:focus-visible .hasIcon::before,
a.c_link:active .hasIcon::before {
  background-color: #f80;
  border-color: #f80;
}

.c_link .hasIcon::after,
a.c_link .hasIcon::after {
  background-color: currentcolor;
  transition: background-color 0.3s ease-out;
}

@keyframes ev-arrow-slide {
  0% {
    opacity: 1;
    transform: translateX(0);
  }
  44% {
    opacity: 0;
    transform: translateX(150%);
  }
  45% {
    opacity: 0;
    transform: translateX(-150%);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}
.c_link:hover .hasIcon::after,
.c_link:focus-visible .hasIcon::after,
.c_link:active .hasIcon::after,
a.c_link:hover .hasIcon::after,
a.c_link:focus-visible .hasIcon::after,
a.c_link:active .hasIcon::after {
  background-color: #fff;
  animation: ev-arrow-slide 0.5s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.c_link:hover,
.c_link:focus-visible,
.c_link:active,
a.c_link:hover,
a.c_link:focus-visible,
a.c_link:active {
  color: #f80;
}

.c_card_img img {
  transition: scale 1.1s cubic-bezier(0.16, 1, 0.3, 1);
}

.c_card {
  transition: border-color 0.4s ease-out;
}

.c_card.is-hovered {
  border-color: #f80;
}

.c_card .hasIcon::before {
  transition: background-color 0.4s ease-out, border-color 0.4s ease-out;
}

.c_card .hasIcon::after {
  background-color: currentcolor;
}

.c_card.is-hovered .hasIcon::before {
  background-color: #f80;
  border-color: #f80;
}

@keyframes ev-arrow-mask-slide {
  0% {
    background-color: currentcolor;
    mask-position: center;
  }
  40% {
    background-color: #fff;
    mask-position: 250%;
  }
  41% {
    background-color: #fff;
    mask-position: -150%;
  }
  100% {
    background-color: #fff;
    mask-position: center;
  }
}
.c_card.is-hovered .hasIcon::after {
  animation: ev-arrow-mask-slide 0.5s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.c_card.-horizon {
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.c_card.-horizon.is-hovered {
  transform: translateX(1rem);
}

.top_information .informationLink {
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.top_information .informationLink::before {
  opacity: 0 !important;
}

.top_information .informationLink:hover,
.top_information .informationLink:focus-visible,
.top_information .informationLink:active {
  transform: translateX(1rem);
}

.top_information .informationLink {
  border-bottom: none !important;
}

.top_information .informationList-item {
  border-bottom: 0.0625rem solid #c0c6d0;
}

.top_bgContainer,
.top_about,
.top_information,
.top_contact {
  --parallax-y: 0px;
}

.top_bgContainer::before,
.top_about::before,
.top_information::before,
.top_contact::before,
.top_contact::after {
  transform: translateY(var(--parallax-y));
  will-change: transform;
}

.top_contact_button:hover,
.top_contact_button:focus-visible,
.top_contact_button:active {
  opacity: 1 !important;
}

.top_contact_button .hasIcon::before {
  transition: background-color 0.4s ease-out, border-color 0.4s ease-out;
}

.top_contact_button .hasIcon::after {
  background-color: #fff;
}

.top_contact_button.is-hovered .hasIcon::before {
  background-color: #fff;
  border-color: #fff;
}

@keyframes ev-arrow-contact-blue {
  0% {
    background-color: #fff;
    mask-position: center;
  }
  40% {
    background-color: #06f;
    mask-position: 250%;
  }
  41% {
    background-color: #06f;
    mask-position: -150%;
  }
  100% {
    background-color: #06f;
    mask-position: center;
  }
}
@keyframes ev-arrow-contact-red {
  0% {
    background-color: #fff;
    mask-position: center;
  }
  40% {
    background-color: #eb4000;
    mask-position: 250%;
  }
  41% {
    background-color: #eb4000;
    mask-position: -150%;
  }
  100% {
    background-color: #eb4000;
    mask-position: center;
  }
}
.top_contact_button.-contact.is-hovered .hasIcon::after {
  animation: ev-arrow-contact-blue 0.5s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.top_contact_button.-download.is-hovered .hasIcon::after {
  animation: ev-arrow-contact-red 0.5s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.scene_item_list-item a::before {
  opacity: 0 !important;
}

.scene_item_list-item a .hasIcon::before {
  transition: background-color 0.4s ease-out, border-color 0.4s ease-out;
}

.scene_item_list-item a .hasIcon::after {
  background-color: currentcolor;
  transition: background-color 0.3s ease-out;
}

.scene_item_list-item a:hover .hasIcon::before,
.scene_item_list-item a:focus-visible .hasIcon::before,
.scene_item_list-item a:active .hasIcon::before {
  background-color: #f80;
  border-color: #f80;
}

.scene_item_list-item a:hover .hasIcon::after,
.scene_item_list-item a:focus-visible .hasIcon::after,
.scene_item_list-item a:active .hasIcon::after {
  background-color: #fff;
  animation: ev-arrow-slide 0.5s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}
:root {
  --color-txt: #272727;
  --color-reversal: #fff;
  --color-prime: #f80;
  --color-second: #06f;
  --color-third: #f5b400;
  --color-body: #fff;
  --color-gray: #f9f7f6;
  --font-size-h1: min(10.6666666667vw, 5rem);
  --font-size-h2: min(7.4666666667vw, 3.5rem);
  --font-size-h3: min(7.4666666667vw, 3.5rem);
  --font-size-h4: min(6.4vw, 3rem);
  --font-size-h5: min(5.3333333333vw, 2.5rem);
  --font-size-xl: min(4vw, 1.875rem);
  --font-size-lg: min(4.2666666667vw, 2rem);
  --font-size-base: min(4vw, 1.875rem);
  --font-size-sm: min(3.7333333333vw, 1.75rem);
  --font-size-xs: min(3.2vw, 1.5rem);
}
@media (width >= 48em) {
  :root {
    --font-size-h1: 4rem;
    --font-size-h2: 2.5rem;
    --font-size-h3: 2rem;
    --font-size-h4: 1.75rem;
    --font-size-h5: 1.5rem;
    --font-size-xl: 1.25rem;
    --font-size-lg: 1.125rem;
    --font-size-base: 1rem;
    --font-size-sm: 0.875rem;
    --font-size-xs: 0.75rem;
  }
}

/* svgアイコン */
a[target=_blank]::after {
  mask-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2210%22%20height%3D%228%22%20viewBox%3D%220%200%2010%208%22%20fill%3D%22none%22%3E%20%3Cpath%20d%3D%22M8%202V8H0V2H8ZM1%207H7V3H1V7Z%22%20fill%3D%22%23C0C6D0%22%2F%3E%20%3Cpath%20d%3D%22M10%200V6.5H8.5V5.5H9V1H2.5V1.5H1.5V0H10Z%22%20fill%3D%22%23C0C6D0%22%2F%3E%3C%2Fsvg%3E");
}

@layer base {
  * {
    box-sizing: border-box;
  }
  *::before, *::after {
    box-sizing: inherit;
  }
  @media (prefers-reduced-motion: reduce) {
    *,
    ::before,
    ::after {
      transition-duration: 1ms !important;
      animation-duration: 1ms !important;
      animation-iteration-count: 1 !important;
      scroll-behavior: auto !important;
    }
  }
  input::-moz-focus-inner {
    padding: 0;
    margin: 0;
    border: 0;
  }
  ul,
  ol,
  dd {
    padding: 0;
    margin: 0;
    list-style: none;
  }
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    margin: 0;
    font-size: inherit;
    font-weight: inherit;
    text-wrap: wrap;
  }
  cite {
    font-style: normal;
  }
  fieldset {
    padding: 0;
    margin: 0;
    border-width: 0;
  }
  button {
    padding: 0;
    color: inherit;
    appearance: none;
    cursor: pointer;
    background-color: transparent;
    border: none;
  }
  summary {
    display: block;
    list-style: none;
  }
  summary::-webkit-details-marker {
    display: none;
  }
  img {
    max-width: 100%;
    height: auto;
    max-height: 100%;
  }
  figure,
  picture {
    display: block;
    padding: 0;
    margin: 0;
    line-height: 1;
    text-align: center;
  }
  figure figcaption,
  picture figcaption {
    margin: auto;
    text-align: left;
  }
  html,
  body {
    text-size-adjust: 100%;
  }
  body {
    width: 100%;
    font-family: "Noto Sans JP", "NotoSansJP", "Noto Sans Japanese", sans-serif;
    font-size: var(--font-size-base);
    font-weight: 500;
    color: #272727;
    word-wrap: break-word;
    overflow-wrap: break-word;
    background-color: #fff;
    -webkit-font-smoothing: antialiased;
    backface-visibility: hidden;
  }
  ::selection {
    color: #fff;
    background-color: #f80;
  }
  a,
  button {
    color: inherit;
    text-decoration: none;
  }
  a:focus-visible,
  button:focus-visible {
    outline: solid 0.125rem #f80;
    outline-offset: 0.1875rem;
    box-shadow: none;
  }
  a[target=_blank]::after {
    display: inline-flex;
    height: 0.9em;
    aspect-ratio: 1;
    margin-left: 0.1em;
    content: "";
    background-color: currentColor;
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: 100%;
  }
  [tabindex="-1"]:focus-visible {
    outline: none !important;
    box-shadow: none;
  }
  @media screen and (width >= 48em) {
    a[href^="tel:"] {
      color: inherit !important;
      text-decoration: none !important;
      pointer-events: none;
    }
  }
}@layer base {
  *,
  *::before,
  *::after {
    box-sizing: border-box;
    padding: 0;
    margin: 0;
  }

  :where([hidden]:not([hidden="until-found"])) {
    display: none !important;
  }

  :where(html) {
    scrollbar-gutter: stable;
    line-height: 1.5;
    tab-size: 2;
    color-scheme: dark light;
    -webkit-text-size-adjust: none;
    interpolate-size: allow-keywords;
  }

  :where(html:has(dialog:modal[open])) {
    overflow: clip;
  }

  @media (prefers-reduced-motion: no-preference) {
    :where(html:focus-within) {
      scroll-behavior: smooth;
    }
  }

  :where(body) {
    font-family: system-ui, sans-serif;
    line-height: inherit;
    -webkit-font-smoothing: antialiased;
  }

  :where(button) {
    all: unset;
  }

  :where(input, button, textarea, select) {
    font: inherit;
    font-variation-settings: inherit;
    font-feature-settings: inherit;
    color: inherit;
    word-spacing: inherit;
    letter-spacing: inherit;
  }

  :where(textarea) {
    resize: vertical;
    resize: block;
  }

  :where(button, label, select, summary, [role="button"], [role="option"]) {
    cursor: pointer;
  }

  :where(:disabled, label:has(> :disabled, + disabled)) {
    cursor: not-allowed;
  }

  :where(a) {
    color: inherit;
    text-underline-offset: 0.2ex;
  }

  :where(ul, ol) {
    list-style: none;
  }

  :where(img, svg, video, canvas, audio, iframe, embed, object) {
    display: block;
  }

  :where(img, picture, svg, video) {
    max-inline-size: 100%;
    block-size: auto;
  }

  :where(p, h1, h2, h3, h4, h5, h6) {
    overflow-wrap: break-word;
  }

  :where(h1, h2, h3) {
    line-height: calc(1em + 0.5rem);
    text-wrap: balance;
  }

  :where(hr) {
    block-size: 0;
    overflow: visible;
    color: inherit;
    border: none;
    border-block-start: 1px solid;
  }

  :where(dialog, [popover]) {
    inset: unset;
    max-width: unset;
    max-height: unset;
    overflow: unset;
    color: inherit;
    background: none;
    border: none;
  }

  :where(dialog:not([open], [popover]), [popover]:not(:popover-open)) {
    display: none !important;
  }

  :where(:focus-visible) {
    outline: 3px solid CanvasText;
    outline-offset: 1px;
    box-shadow: 0 0 0 5px Canvas;
  }

  :where(:focus-visible, :target) {
    scroll-margin-block: 8vh;
  }

  :where(.visually-hidden:not(:focus-within, :active)) {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    user-select: none !important;
    border: 0 !important;
    clip-path: inset(50%) !important;
  }
}
/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
@layer properties {
  @supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color: rgb(from red r g b)))) {
    *, :before, :after, ::backdrop {
      --tw-rotate-x: initial;
      --tw-rotate-y: initial;
      --tw-rotate-z: initial;
      --tw-skew-x: initial;
      --tw-skew-y: initial;
      --tw-blur: initial;
      --tw-brightness: initial;
      --tw-contrast: initial;
      --tw-grayscale: initial;
      --tw-hue-rotate: initial;
      --tw-invert: initial;
      --tw-opacity: initial;
      --tw-saturate: initial;
      --tw-sepia: initial;
      --tw-drop-shadow: initial;
      --tw-drop-shadow-color: initial;
      --tw-drop-shadow-alpha: 100%;
      --tw-drop-shadow-size: initial;
    }
  }
}

@layer theme {
  :root, :host {
    --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    --spacing: .25rem;
    --text-base: var(--font-size-base);
    --text-base--line-height: calc(1.5 / 1);
    --default-transition-duration: .15s;
    --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);
    --default-font-family: var(--font-sans);
    --default-mono-font-family: var(--font-mono);
    --color-txt: var(--color-txt);
    --color-reversal: var(--color-reversal);
    --color-gray: var(--color-gray);
    --color-prime: var(--color-prime);
    --color-second: var(--color-second);
    --color-third: var(--color-third);
    --color-body: var(--color-body);
    --text-h1: var(--font-size-h1);
    --text-h2: var(--font-size-h2);
  }

  :root {
    --spacing: .1rem;
  }
}

@layer base {
  *, :after, :before, ::backdrop {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }

  ::file-selector-button {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }

  html, :host {
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    line-height: 1.5;
    font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
    font-feature-settings: var(--default-font-feature-settings, normal);
    font-variation-settings: var(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent;
  }

  hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
  }

  abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
  }

  h1, h2, h3, h4, h5, h6 {
    font-size: inherit;
    font-weight: inherit;
  }

  a {
    color: inherit;
    -webkit-text-decoration: inherit;
    -webkit-text-decoration: inherit;
    -webkit-text-decoration: inherit;
    text-decoration: inherit;
  }

  b, strong {
    font-weight: bolder;
  }

  code, kbd, samp, pre {
    font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
    font-feature-settings: var(--default-mono-font-feature-settings, normal);
    font-variation-settings: var(--default-mono-font-variation-settings, normal);
    font-size: 1em;
  }

  small {
    font-size: 80%;
  }

  sub, sup {
    vertical-align: baseline;
    font-size: 75%;
    line-height: 0;
    position: relative;
  }

  sub {
    bottom: -.25em;
  }

  sup {
    top: -.5em;
  }

  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
  }

  :-moz-focusring {
    outline: auto;
  }

  progress {
    vertical-align: baseline;
  }

  summary {
    display: list-item;
  }

  ol, ul, menu {
    list-style: none;
  }

  img, svg, video, canvas, audio, iframe, embed, object {
    vertical-align: middle;
    display: block;
  }

  img, video {
    max-width: 100%;
    height: auto;
  }

  button, input, select, optgroup, textarea {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }

  ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }

  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder;
  }

  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }

  ::file-selector-button {
    margin-inline-end: 4px;
  }

  ::placeholder {
    opacity: 1;
  }

  @supports (not ((-webkit-appearance: -apple-pay-button))) or (contain-intrinsic-size: 1px) {
    ::placeholder {
      color: currentColor;
    }

    @supports (color: color-mix(in lab, red, red)) {
      ::placeholder {
        color: color-mix(in oklab, currentcolor 50%, transparent);
      }
    }
  }

  textarea {
    resize: vertical;
  }

  ::-webkit-search-decoration {
    -webkit-appearance: none;
  }

  ::-webkit-date-and-time-value {
    min-height: 1lh;
    text-align: inherit;
  }

  ::-webkit-datetime-edit {
    display: inline-flex;
  }

  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
  }

  ::-webkit-datetime-edit {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-year-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-month-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-day-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-hour-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-minute-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-second-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-millisecond-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-meridiem-field {
    padding-block: 0;
  }

  ::-webkit-calendar-picker-indicator {
    line-height: 1;
  }

  :-moz-ui-invalid {
    box-shadow: none;
  }

  button, input:where([type="button"], [type="reset"], [type="submit"]) {
    appearance: button;
  }

  ::file-selector-button {
    appearance: button;
  }

  ::-webkit-inner-spin-button {
    height: auto;
  }

  ::-webkit-outer-spin-button {
    height: auto;
  }

  [hidden]:where(:not([hidden="until-found"])) {
    display: none !important;
  }
}

@layer components;

@layer utilities {
  .visible {
    visibility: visible;
  }

  .absolute {
    position: absolute;
  }

  .container {
    width: 100%;
  }

  @media (min-width: 40rem) {
    .container {
      max-width: 40rem;
    }
  }

  @media (min-width: 48rem) {
    .container {
      max-width: 48rem;
    }
  }

  @media (min-width: 64rem) {
    .container {
      max-width: 64rem;
    }
  }

  @media (min-width: 80rem) {
    .container {
      max-width: 80rem;
    }
  }

  @media (min-width: 96rem) {
    .container {
      max-width: 96rem;
    }
  }

  .m-auto {
    margin: auto;
  }

  .my-20 {
    margin-block: calc(var(--spacing) * 20);
  }

  .mt-20 {
    margin-top: calc(var(--spacing) * 20);
  }

  .mb-16 {
    margin-bottom: calc(var(--spacing) * 16);
  }

  .mb-24 {
    margin-bottom: calc(var(--spacing) * 24);
  }

  .contents {
    display: contents;
  }

  .flex {
    display: flex;
  }

  .grid {
    display: grid;
  }

  .hidden {
    display: none;
  }

  .inline {
    display: inline;
  }

  .table {
    display: table;
  }

  .w-fit {
    width: fit-content;
  }

  .flex-shrink {
    flex-shrink: 1;
  }

  .transform {
    transform: var(--tw-rotate-x, ) var(--tw-rotate-y, ) var(--tw-rotate-z, ) var(--tw-skew-x, ) var(--tw-skew-y, );
  }

  .resize {
    resize: both;
  }

  .gap-12 {
    gap: calc(var(--spacing) * 12);
  }

  .gap-30 {
    gap: calc(var(--spacing) * 30);
  }

  .gap-40 {
    gap: calc(var(--spacing) * 40);
  }

  .bg-prime {
    background-color: var(--color-prime);
  }

  .py-60 {
    padding-block: calc(var(--spacing) * 60);
  }

  .text-base {
    font-size: var(--text-base);
    line-height: var(--tw-leading, var(--text-base--line-height));
  }

  .text-h1 {
    font-size: var(--text-h1);
  }

  .text-h2 {
    font-size: var(--text-h2);
  }

  .text-prime {
    color: var(--color-prime);
  }

  .blur {
    --tw-blur: blur(8px);
    filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
  }

  .transition {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }

  @media not all and (min-width: 48rem) {
    .max-md\:px-20 {
      padding-inline: calc(var(--spacing) * 20);
    }
  }

  @media (min-width: 48rem) {
    .md\:max-w-961 {
      max-width: calc(var(--spacing) * 961);
    }

    .md\:gap-34 {
      gap: calc(var(--spacing) * 34);
    }
  }
}

@property --tw-rotate-x {
  syntax: "*";
  inherits: false
}

@property --tw-rotate-y {
  syntax: "*";
  inherits: false
}

@property --tw-rotate-z {
  syntax: "*";
  inherits: false
}

@property --tw-skew-x {
  syntax: "*";
  inherits: false
}

@property --tw-skew-y {
  syntax: "*";
  inherits: false
}

@property --tw-blur {
  syntax: "*";
  inherits: false
}

@property --tw-brightness {
  syntax: "*";
  inherits: false
}

@property --tw-contrast {
  syntax: "*";
  inherits: false
}

@property --tw-grayscale {
  syntax: "*";
  inherits: false
}

@property --tw-hue-rotate {
  syntax: "*";
  inherits: false
}

@property --tw-invert {
  syntax: "*";
  inherits: false
}

@property --tw-opacity {
  syntax: "*";
  inherits: false
}

@property --tw-saturate {
  syntax: "*";
  inherits: false
}

@property --tw-sepia {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow-color {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}

@property --tw-drop-shadow-size {
  syntax: "*";
  inherits: false
}
