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

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-text-size-adjust: 100%;
  tab-size: 4;
  -webkit-tap-highlight-color: transparent;
  background-color: var(--white-01);
}

html, dialog {
  color: var(--dark-01);
}

body.lock {
  overflow: hidden;
}

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

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

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

b, strong {
  font-weight: bolder;
}

:-moz-focusring {
  outline: auto;
}

summary {
  display: list-item;
}

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

img, svg, video, canvas, audio, iframe, embed, object {
  display: block;
  vertical-align: middle;
}
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;
  border-radius: 0;
  background-color: transparent;
  opacity: 1;
}
button {
  cursor: pointer;
}
button:disabled,
a:not([href]) {
  cursor: not-allowed;
}

:is(a, button, summary):not([class]), .link {
  cursor: pointer;
  color: var(--grey-02);
  transition: color 500ms ease-out;

  &:hover {
    color: inherit;
  }
}

::placeholder {
  opacity: 1;
}
@supports (not (-webkit-appearance: -apple-pay-button)) /* Not Safari */ or (contain-intrinsic-size: 1px) /* Safari 17+ */ {
  ::placeholder {
    color: var(--grey-02);
  }
}

textarea {
  resize: vertical;
}

details > summary {
  list-style: none;
}
details > summary::marker,
details > summary::-webkit-details-marker {
  display: none;
}
details > summary::before {
  content: "+";
  display: inline-block;
  margin-inline-end: 0.25em;
  transition: transform 400ms ease-out;
  transform-origin: center;
}
details[open] > summary::before {
  transform: rotate(45deg);
}

@view-transition {
  navigation: auto;
}

::view-transition-group(root) {
  animation-duration: 0.5s;
}

@keyframes panelFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

tab-container [role="tabpanel"] {
  animation: panelFadeIn 500ms ease-out;
}
