*,
::before,
::after {
  box-sizing: border-box;
  min-inline-size: 0;
  border-width: 0;
  border-style: solid;
}

:where(:root, body) {
  overflow-inline: clip;

  @supports not (overflow-inline: clip) {
    overflow-x: clip;
  }
}

:where(:root) {
  font-family: "Helvetica Neue", arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans",
    "BIZ UDPGothic", meiryo, sans-serif;
  font-style: unset;
  font-weight: 400;
  line-height: 1.5;
  text-align: start;
  text-spacing-trim: trim-start;
  word-break: initial;
  line-break: strict;
  overflow-wrap: anywhere;
  hyphens: auto;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scrollbar-gutter: stable;
  interpolate-size: allow-keywords;
  -webkit-tap-highlight-color: transparent;

  &:has(:where(:modal)) {
    overflow: hidden;
  }
}

:where(body) {
  min-block-size: 100svb;
  margin: unset;
}

@property --background-current {
  syntax: "currentColor | CanvasText";
  inherits: true;
  initial-value: currentColor;
}

:where(:root) {
  @media (forced-colors: active) {
    --background-current: CanvasText;
  }
}

@property --ease-in-sine {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.47, 0, 0.745, 0.715);
}

@property --ease-out-sine {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.39, 0.575, 0.565, 1);
}

@property --ease-in-out-sine {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.445, 0.05, 0.55, 0.95);
}

@property --ease-in-quad {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.55, 0.085, 0.68, 0.53);
}

@property --ease-out-quad {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

@property --ease-in-out-quad {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.455, 0.03, 0.515, 0.955);
}

@property --ease-in-cubic {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.55, 0.055, 0.675, 0.19);
}

@property --ease-out-cubic {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.215, 0.61, 0.355, 1);
}

@property --ease-in-out-cubic {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.645, 0.045, 0.355, 1);
}

@property --ease-in-quart {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.895, 0.03, 0.685, 0.22);
}

@property --ease-out-quart {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.165, 0.84, 0.44, 1);
}

@property --ease-in-out-quart {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.77, 0, 0.175, 1);
}

@property --ease-in-quint {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.755, 0.05, 0.855, 0.06);
}

@property --ease-out-quint {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.23, 1, 0.32, 1);
}

@property --ease-in-out-quint {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.86, 0, 0.07, 1);
}

@property --ease-in-expo {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.95, 0.05, 0.795, 0.035);
}

@property --ease-out-expo {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.19, 1, 0.22, 1);
}

@property --ease-in-out-expo {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(1, 0, 0, 1);
}

@property --ease-in-circ {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.6, 0.04, 0.98, 0.335);
}

@property --ease-out-circ {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.075, 0.82, 0.165, 1);
}

@property --ease-in-out-circ {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.785, 0.135, 0.15, 0.86);
}

@property --ease-in-back {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.6, -0.28, 0.735, 0.045);
}

@property --ease-out-back {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

@property --ease-in-out-back {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

@property --shape-triangle-top {
  syntax: "*";
  inherits: false;
  initial-value: polygon(50% 0, 100% 100%, 0 100%);
}

@property --shape-triangle-bottom {
  syntax: "*";
  inherits: false;
  initial-value: polygon(0 0, 100% 0, 50% 100%);
}

@property --shape-triangle-right {
  syntax: "*";
  inherits: false;
  initial-value: polygon(0 0, 100% 50%, 0 100%);
}

@property --shape-triangle-left {
  syntax: "*";
  inherits: false;
  initial-value: polygon(0 50%, 100% 0, 100% 100%);
}

@property --shape-triangle-lower-left {
  syntax: "*";
  inherits: false;
  initial-value: polygon(0 0, 100% 100%, 0 100%);
}

@property --shape-triangle-upper-left {
  syntax: "*";
  inherits: false;
  initial-value: polygon(0 0, 100% 0, 0 100%);
}

@property --shape-triangle-lower-right {
  syntax: "*";
  inherits: false;
  initial-value: polygon(100% 0, 100% 100%, 0 100%);
}

@property --shape-triangle-upper-right {
  syntax: "*";
  inherits: false;
  initial-value: polygon(0 0, 100% 0, 100% 100%);
}

@property --icon-chevron-up {
  syntax: "<url>";
  inherits: false;
  initial-value: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="m4 16 8-8 8 8" /></svg>');
}

@property --icon-chevron-right {
  syntax: "<url>";
  inherits: false;
  initial-value: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M8 4L16 12L8 20" /></svg>');
}

@property --icon-chevron-down {
  syntax: "<url>";
  inherits: false;
  initial-value: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M4 8L12 16L20 8" /></svg>');
}

@property --icon-chevron-left {
  syntax: "<url>";
  inherits: false;
  initial-value: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M16 4L8 12L16 20" /></svg>');
}

@property --icon-chevrons-up {
  syntax: "<url>";
  inherits: false;
  initial-value: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M17 18L12 13L7 18M17 11L12 6L7 11" /></svg>');
}

@property --icon-chevrons-right {
  syntax: "<url>";
  inherits: false;
  initial-value: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M6 7L11 12L6 17M13 7L18 12L13 17" /></svg>');
}

@property --icon-chevrons-down {
  syntax: "<url>";
  inherits: false;
  initial-value: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M17 6L12 11L7 6M17 13L12 18L7 13" /></svg>');
}

@property --icon-chevrons-left {
  syntax: "<url>";
  inherits: false;
  initial-value: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M18 7L13 12L18 17M11 7L6 12L11 17" /></svg>');
}

@property --icon-launch-link {
  syntax: "<url>";
  inherits: false;
  initial-value: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M17 2H22V7" /><path d="M21 13V19C21 20.1046 20.1046 21 19 21H5C3.89543 21 3 20.1046 3 19V5C3 3.89543 3.89543 3 5 3H11" /><path d="M13 11L21.5 2.5" /></svg>');
}

@property --leading-trim {
  syntax: "*";
  inherits: false;
  initial-value: calc((1em - 1lh) / 2);
}

:where(:lang(en)) {
  --leading-trim: calc((1cap - 1lh) / 2);
}

@property --spacing-xs {
  syntax: "*";
  inherits: false;
  initial-value: 0.25rem;
}

@property --spacing-sm {
  syntax: "*";
  inherits: false;
  initial-value: 0.5rem;
}

@property --spacing-md {
  syntax: "*";
  inherits: false;
  initial-value: 1rem;
}

@property --spacing-lg {
  syntax: "*";
  inherits: false;
  initial-value: 1.5rem;
}

@property --spacing-xl {
  syntax: "*";
  inherits: false;
  initial-value: 2rem;
}

@property --spacing-2xl {
  syntax: "*";
  inherits: false;
  initial-value: 2.5rem;
}

@property --spacing-3xl {
  syntax: "*";
  inherits: false;
  initial-value: 3rem;
}

@property --spacing-4xl {
  syntax: "*";
  inherits: false;
  initial-value: 3.5rem;
}

@property --spacing-5xl {
  syntax: "*";
  inherits: false;
  initial-value: 4rem;
}

@property --spacing-6xl {
  syntax: "*";
  inherits: false;
  initial-value: 4.5rem;
}

@property --spacing-7xl {
  syntax: "*";
  inherits: false;
  initial-value: 5rem;
}

@property --spacing-8xl {
  syntax: "*";
  inherits: false;
  initial-value: 5.5rem;
}

@property --spacing-9xl {
  syntax: "*";
  inherits: false;
  initial-value: 6rem;
}

@property --spacing-10xl {
  syntax: "*";
  inherits: false;
  initial-value: 6.5rem;
}

@property --spacing-11xl {
  syntax: "*";
  inherits: false;
  initial-value: 7rem;
}

@property --spacing-12xl {
  syntax: "*";
  inherits: false;
  initial-value: 7.5rem;
}

@property --spacing-13xl {
  syntax: "*";
  inherits: false;
  initial-value: 8rem;
}

@property --duration-default {
  syntax: "<time>";
  inherits: false;
  initial-value: 0.3s;
}

:where(:any-link, :enabled, summary) {
  --is-hover-true: ;
  --is-hover-false: initial;

  @media (any-hover: hover) {
    &:where(:hover) {
      --is-hover-true: initial;
      --is-hover-false: ;
    }
  }

  &:where(:focus-visible) {
    --is-hover-true: initial;
    --is-hover-false: ;
  }
}

:where(h1, h2, h3, h4, h5, h6) {
  margin-block: unset;
  text-wrap: pretty;
  font-size: unset;
}

:where(search) {
  display: block flow;
}

:where(p, blockquote, figure, pre, address, ul, ol, dl) {
  margin-block: unset;
}

:where(blockquote, figure) {
  margin-inline: unset;
}

:where(address):where(:lang(ja)) {
  font-style: unset;
}

:where(ul, ol) {
  padding-inline-start: unset;
  list-style-type: "";
}

:where(dt) {
  font-weight: 700;
}

:where(dd) {
  margin-inline-start: unset;
}

:where(hr) {
  border-block-start-width: 1px;
}

:where(pre) {
  tab-size: 2;

  @media print {
    white-space: pre-wrap;
  }
}

:where(b, strong) {
  font-weight: 700;
}

:where(em):where(:lang(ja)) {
  font-weight: 700;
}

:where(i, cite, em, dfn, var):where(:lang(ja)) {
  font-style: unset;
}

:where(small) {
  font-size: 1em;
  font-weight: 400;
}

:where(code, kbd, samp) {
  font-family: ui-monospace, sfmono-regular, menlo, monaco, consolas, "Liberation Mono",
    "Courier New", serif;
  font-size: unset;
}

:where(cite, dfn) {
  --_quotation-start: "“";
  --_quotation-end: "”";

  &::before {
    content: var(--_quotation-start);
  }

  &::after {
    content: var(--_quotation-end);
  }

  &:where(:lang(ja)) {
    --_quotation-start: "「";
    --_quotation-end: "」";
  }
}

:where(var) {
  font-family: serif;

  &:where(:lang(ja)) {
    font-family: unset;
  }
}

:where(:any-link) {
  background-color: unset;
  color: unset;
  text-decoration-line: none;

  text-decoration-thickness: from-font;
  text-underline-offset: 0.25em;
  text-decoration-skip-ink: auto;
}

:where(ins):not(:where(.adsbygoogle)) {
  text-decoration-style: dashed;

  text-underline-offset: 0.4em;

  text-decoration-skip-ink: auto;
}

:where(del) {
  text-decoration-style: double;
}

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

  max-inline-size: 100%;

  block-size: auto;
}

:where(table) {
  border-collapse: collapse;
}

:where(caption) {
  text-align: start;
}

:where(td, th) {
  padding: unset;

  vertical-align: top;
}

:where(th) {
  font-weight: 700;

  text-align: start;
}

:where(button, input, select, textarea),
::file-selector-button {
  padding: unset;

  border: 1px solid transparent;

  border-radius: unset;

  background-color: unset;

  color: unset;

  font: unset;

  vertical-align: middle;

  letter-spacing: unset;

  text-align: unset;

  text-transform: unset;
}

:where([type="radio" i], [type="checkbox" i]) {
  margin: unset;
}

:where([type="file" i]) {
  cursor: unset;
}

:where(textarea) {
  margin-block: unset;

  resize: block;
}

:where(button),
::file-selector-button {
  inline-size: fit-content;

  touch-action: manipulation;
}

:where(button)::-moz-focus-inner {
  padding: unset;
}

:where(button, label[for], select, [role="tab"], [role="button"], [role="option"]),
::file-selector-button {
  cursor: pointer;
}

:where(select):where(:disabled) {
  opacity: inherit;
}

:where(fieldset) {
  margin-inline: unset;

  padding: unset;
}

:where(legend) {
  padding-inline: unset;
}

:where(optgroup) {
  font: unset;
}

::placeholder {
  opacity: unset;
}

::picker(select) {
  display: block flow;

  padding: unset;
}

:where(summary) {
  display: block flow;

  cursor: pointer;
}

::-webkit-details-marker {
  display: none;
}

:where(dialog, [popover]) {
  overflow: unset;

  inline-size: unset;

  width: unset;

  block-size: unset;

  height: unset;

  max-inline-size: unset;

  max-width: unset;

  max-block-size: unset;

  max-height: unset;

  padding: unset;

  margin: unset;

  background-color: unset;

  color: unset;
}

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

::backdrop {
  background-color: unset;
}

:root:has(:modal) {
  overflow: hidden;
}

:where(:-moz-focusring) {
  outline: auto;
}

:where(:focus-visible) {
  outline-offset: 2px;
}

:where(:focus):not(:where(:focus-visible)) {
  outline: none;
}

[tabindex="-1"]:focus-visible {
  outline: none !important;
}

:where(:disabled, [aria-disabled="true"]) {
  cursor: default;
}

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

:not([data-safe-animation]) {
  &,
  &::before,
  &::after,
  &::backdrop {
    @media (prefers-reduced-motion: reduce) {
      background-attachment: unset !important;
      scroll-behavior: unset !important;
      transition-delay: unset !important;
      transition-duration: 1ms !important;
      animation-duration: 1ms !important;
      animation-delay: unset !important;
      animation-iteration-count: unset !important;
      view-transition-name: none !important;
    }
  }
}

.leading-trim {
  &::before,
  &::after {
    content: "";
    display: block flow;
    inline-size: 0;
    block-size: 1px;
  }

  &::before {
    margin-block-end: var(--leading-trim);
  }

  &::after {
    margin-block-start: var(--leading-trim);
  }
}

.visually-hidden {
  position: fixed !important;
  inset: 0 !important;
  contain: strict !important;
  visibility: initial !important;
  inline-size: 4px !important;
  block-size: 4px !important;
  margin: unset !important;
  padding: unset !important;
  border: none !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
