:root {
  --ink: #060c0f;
  --surface: #1a1d20;
  --green: #84d134;
  --green-soft: #dbffc5;
  --white: #fff;
  --muted: #d1d5db;
  --font: 'Noto Sans SC', 'Noto Sans', Arial, sans-serif;
  --display: 'Noto Sans', 'Noto Sans SC', Arial, sans-serif;
  --pc: min(1px, calc(100vw / 1920));
  --pc-frame-gutter: max(0px, calc((100vw - 1920px) / 2));
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body { margin: 0; overflow-x: hidden; background: var(--ink); color: var(--white); font-family: var(--font); -webkit-font-smoothing: antialiased; }
html.i18n-pending body { visibility: hidden; }
a { color: inherit; text-decoration: none; }
button { border: 0; color: inherit; font: inherit; cursor: pointer; }
img { display: block; max-width: 100%; }
.responsive-image--h5 { display: none !important; }
h1, h2, h3, p { margin: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.site-page { position: relative; width: 100%; margin: 0; overflow: hidden; background: var(--ink); }
.accent, .section-title em { color: var(--green); font-style: normal; }
.section-title { margin: 0; font-family: var(--display); font-weight: 700; letter-spacing: calc(-0.82 * var(--pc)); }
.section-title--light { color: var(--white); }
.section-title--dark { color: #000; }
.eyebrow { display: flex; align-items: center; gap: calc(10 * var(--pc)); font-size: calc(16 * var(--pc)); font-weight: 900; letter-spacing: calc(1.28 * var(--pc)); }
.eyebrow > span:first-child { width: calc(12 * var(--pc)); height: calc(12 * var(--pc)); border-radius: 50%; background: currentColor; flex: none; }
.eyebrow--light { color: var(--white); }
.eyebrow--dark { color: #000; }

.button { display: inline-flex; align-items: center; justify-content: center; width: calc(180 * var(--pc)); height: calc(60 * var(--pc)); border-radius: calc(60 * var(--pc)); font-size: calc(20 * var(--pc)); font-weight: 500; line-height: 1; text-decoration: none; transition: transform .25s ease, background .25s ease, color .25s ease; }
.button:hover { transform: translateY(calc(-2 * var(--pc))); }
.button--light { background: var(--white); color: #000; }
.button--outline { border: calc(2 * var(--pc)) solid var(--white); color: var(--white); }
.button--green-outline { border: calc(2 * var(--pc)) solid var(--green); color: var(--white); }

[data-reveal] { transition: opacity .8s cubic-bezier(.22, 1, .36, 1), transform .8s cubic-bezier(.22, 1, .36, 1); }
.has-js [data-reveal]:not(.is-visible) { opacity: 0; transform: translateY(calc(28 * var(--pc))); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  [data-reveal] { transition: none; }
  .has-js [data-reveal]:not(.is-visible) { opacity: 1; transform: none; }
}

@media (min-width: 769px) {
  html,
  body {
    scrollbar-width: none;
    -ms-overflow-style: none;
  }

  html::-webkit-scrollbar,
  body::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
  }

  .site-page .header,
  .site-page .footer {
    padding-left: calc(var(--pc-frame-gutter) + calc(180 * var(--pc)));
    padding-right: calc(var(--pc-frame-gutter) + calc(180 * var(--pc)));
  }
}

@media (max-width: 768px) {
  :root { --m: calc(100vw / 390); }
  * { -webkit-tap-highlight-color: transparent; }
  a, button, img { -webkit-touch-callout: none; }
  a, button { -webkit-user-select: none; user-select: none; }
  img { -webkit-user-drag: none; -webkit-user-select: none; user-select: none; }
  a:focus, button:focus { outline: none; }
  .responsive-image--pc { display: none !important; }
  .responsive-image--h5 { display: block !important; }
  .site-page { width: 100%; }
  .section-title { letter-spacing: calc(-0.4 * var(--m)); }
  .eyebrow { gap: calc(10 * var(--m)); font-size: calc(14 * var(--m)); letter-spacing: calc(1.12 * var(--m)); }
  .eyebrow > span:first-child { width: calc(12 * var(--m)); height: calc(12 * var(--m)); }
  .button { width: calc(164 * var(--m)); height: calc(60 * var(--m)); border-radius: calc(60 * var(--m)); font-size: calc(20 * var(--m)); }
  .button--outline, .button--green-outline { border-width: calc(2 * var(--m)); }
  .has-js [data-reveal]:not(.is-visible) { transform: translateY(calc(22 * var(--m))); }
}
