@font-face {
  font-family: "Inter";
  src: url("/assets/fonts/font_inter.woff2") format("woff2");
  font-weight: 400 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Inter";
  src: url("/assets/fonts/font_inter_ext.woff2") format("woff2");
  font-weight: 400 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Share Tech Mono";
  src: url("/assets/fonts/font_sharetechmono.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root {
  --alq-font-primary: "Inter", "Helvetica Neue", Arial, sans-serif;
  --alq-font-mono: "Share Tech Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  --alq-color-fg: #000000;
  --alq-color-bg: #ffffff;
  --alq-color-muted: #8f8f8f;
  --alq-color-inactive: #cccccc;
  --alq-color-inactive-strong: #d9d9d9;

  --alq-rule-soft: rgba(0, 0, 0, 0.08);
  --alq-rule-strong: rgba(0, 0, 0, 0.14);

  --alq-type-mono-family: var(--alq-font-mono);
  --alq-type-mono-size: 0.7rem;
  --alq-type-mono-weight: 500;
  --alq-type-mono-line-height: 1.2;
  --alq-type-mono-letter-spacing: 0.02em;
  --alq-type-legal-size: 0.625rem;

  --alq-type-content-family: var(--alq-font-primary);
  --alq-type-content-weight: 700;
  --alq-type-content-size: clamp(1.125rem, 1.7vw, 1.375rem);
  --alq-type-content-size-mobile: clamp(1.125rem, 5vw, 1.375rem);
  --alq-type-content-letter-spacing: -0.05em;
  --alq-type-content-letter-spacing-mobile: -0.045em;
  --alq-type-content-line-height-tight: 1.05;
  --alq-type-content-line-height-tight-mobile: 1.08;
  --alq-type-content-line-height-flow: 1.18;

  --alq-header-h: 40px;
  --alq-header-offset-y: 14px;
  --alq-page-x: clamp(3rem, 10vw, 9.375rem);
}

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

html:has(.alq-site-header) {
  scroll-padding-top: calc(var(--alq-header-h) + var(--alq-header-offset-y, 14px));
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

body {
  margin: 0;
  background: var(--alq-color-bg);
  color: var(--alq-color-fg);
  font-family: var(--alq-font-primary);
  -webkit-font-smoothing: antialiased;
}

img,
svg {
  max-width: 100%;
}

.alq-no-break {
  white-space: nowrap;
}

.alq-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;
}

input,
textarea,
select {
  font-family: var(--alq-font-primary) !important;
}

form label,
form legend,
form p,
form small,
form a,
form span:not(button span) {
  font-family: var(--alq-font-primary) !important;
}

.alq-site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  min-height: var(--alq-header-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding-top: var(--alq-header-offset-y, 14px);
  padding-inline: var(--alq-page-x);
  background: var(--alq-color-bg);
}

.alq-site-header *,
.alq-site-footer * {
  box-sizing: border-box;
}

.alq-site-header ~ main:not(.alq-home) {
  display: block;
  padding-top: calc(var(--alq-header-h) + var(--alq-header-offset-y, 14px));
}

.alq-header-back-top,
.alq-site-header__logo {
  display: inline-flex;
  align-items: center;
}

.alq-header-back-top img,
.alq-site-header__logo img {
  display: block;
  width: clamp(72px, 9vw, 104px);
  height: auto;
}

.alq-site-nav {
  display: flex;
  align-items: center;
  gap: clamp(1.25rem, 2.4vw, 2.5rem);
}

.alq-site-nav a,
.alq-site-nav a:visited {
  color: var(--alq-color-fg);
  font-family: var(--alq-type-mono-family);
  font-size: var(--alq-type-mono-size);
  font-weight: var(--alq-type-mono-weight);
  line-height: var(--alq-type-mono-line-height);
  letter-spacing: var(--alq-type-mono-letter-spacing);
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.3s ease;
}

.alq-site-nav a:hover,
.alq-site-nav a:focus-visible {
  color: var(--alq-color-muted);
}

.alq-nav-toggle {
  display: none;
  align-items: center;
  gap: 8px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--alq-color-fg);
  font-family: var(--alq-type-mono-family);
  font-size: var(--alq-type-mono-size);
  font-weight: var(--alq-type-mono-weight);
  line-height: var(--alq-type-mono-line-height);
  letter-spacing: var(--alq-type-mono-letter-spacing);
  text-transform: uppercase;
  cursor: pointer;
}

.alq-nav-toggle-bars {
  position: relative;
  display: block;
  width: 20px;
  height: 12px;
}

.alq-nav-toggle-bars::before,
.alq-nav-toggle-bars::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 1px;
  background: currentColor;
  transition: transform 0.3s ease, top 0.3s ease;
}

.alq-nav-toggle-bars::before {
  top: 3px;
}

.alq-nav-toggle-bars::after {
  top: 9px;
}

.alq-nav-toggle[aria-expanded="true"] .alq-nav-toggle-bars::before {
  top: 6px;
  transform: rotate(45deg);
}

.alq-nav-toggle[aria-expanded="true"] .alq-nav-toggle-bars::after {
  top: 6px;
  transform: rotate(-45deg);
}

@media (max-width: 1023px) {
  .alq-nav-toggle {
    display: inline-flex;
  }

  .alq-site-nav {
    position: fixed;
    top: calc(var(--alq-header-h) + var(--alq-header-offset-y, 14px));
    left: 0;
    right: 0;
    z-index: 99;
    flex-direction: column;
    align-items: flex-end;
    text-align: right;
    gap: 1.75rem;
    padding: 2.5rem var(--alq-page-x) 3rem;
    background: var(--alq-color-bg);
    border-top: 1px solid var(--alq-rule-soft);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);
    transition: opacity 0.3s ease, transform 0.3s ease, visibility 0s linear 0.3s;
  }

  .alq-site-nav.is-open {
    opacity: 1;
    visibility: visible;
    transform: none;
    transition: opacity 0.3s ease, transform 0.3s ease, visibility 0s linear 0s;
  }

  .alq-site-nav a {
    font-size: 0.8rem;
  }
}

@media (max-width: 780px) {
  :root {
    --alq-page-x: clamp(18px, 5vw, 24px);
  }
}

.alq-site-footer {
  --alq-site-footer-pad-y: clamp(2.25rem, 5svh, 3.25rem);
  --alq-site-footer-pad-x: var(--alq-page-x);
  --alq-site-footer-max-w: 50rem;
  --alq-site-footer-line-height: 1.2;
  --alq-site-footer-row-gap: 0.45rem;

  background: var(--alq-color-bg);
  color: var(--alq-color-fg);
}

.alq-site-footer__inner {
  padding: var(--alq-site-footer-pad-y) var(--alq-site-footer-pad-x);
  border-top: 1px solid var(--alq-rule-strong);
  border-bottom: 1px solid var(--alq-rule-strong);
}

.alq-site-footer__grid {
  display: grid;
  grid-template-columns: repeat(4, max-content);
  justify-content: space-between;
  column-gap: clamp(1.25rem, 2.4vw, 2.5rem);
  row-gap: clamp(1.25rem, 2.4vw, 2.5rem);
  align-items: stretch;
  max-width: var(--alq-site-footer-max-w);
  margin-inline: auto;
}

.alq-site-footer__col {
  display: flex;
  flex-direction: column;
  gap: var(--alq-site-footer-row-gap);
  min-width: 0;
}

.alq-site-footer__col span,
.alq-site-footer__col a,
.alq-site-footer__col a:visited {
  color: var(--alq-color-fg);
  font-family: var(--alq-type-mono-family);
  font-size: var(--alq-type-mono-size);
  font-weight: var(--alq-type-mono-weight);
  line-height: var(--alq-site-footer-line-height);
  letter-spacing: var(--alq-type-mono-letter-spacing);
  text-decoration: none;
}

.alq-site-footer__col a {
  transition: color 0.3s ease;
}

.alq-site-footer__col a:hover,
.alq-site-footer__col a:focus-visible {
  color: var(--alq-color-muted);
}

.alq-site-footer__col--brand {
  align-items: flex-end;
  justify-content: flex-start;
}

.alq-site-footer__logo {
  display: block;
  width: auto;
  height: calc(
    4 * (var(--alq-type-mono-size) * var(--alq-site-footer-line-height))
    + 3 * var(--alq-site-footer-row-gap)
  );
  aspect-ratio: 1 / 1;
  max-width: 100%;
}

.alq-site-footer__legal {
  margin: 0;
  padding: clamp(1.75rem, 4svh, 3rem) var(--alq-site-footer-pad-x) clamp(1rem, 2.4svh, 1.75rem);
  text-align: center;
  color: var(--alq-color-muted);
  font-family: var(--alq-type-mono-family);
  font-size: var(--alq-type-legal-size);
  font-weight: var(--alq-type-mono-weight);
  line-height: var(--alq-type-mono-line-height);
  letter-spacing: var(--alq-type-mono-letter-spacing);
  background: var(--alq-color-bg);
}

@media (max-width: 1023px) {
  .alq-site-footer__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 2.5rem;
  }

  .alq-site-footer__col--brand {
    grid-column: 1 / -1;
    align-items: flex-start;
  }
}

@media (max-width: 780px) {
  .alq-site-footer__grid {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }

  .alq-site-footer__col,
  .alq-site-footer__col--brand {
    align-items: center;
  }

  .alq-site-footer__legal {
    text-align: center;
  }

  .alq-site-footer__logo {
    height: auto;
    width: clamp(88px, 22vw, 120px);
  }
}

@media (orientation: landscape) and (pointer: coarse) and (max-height: 500px) {
  html.alq-home-active,
  html.alq-home-active body {
    overflow: hidden !important;
    height: 100%;
  }

  html.alq-home-active body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 2147483647;
    background-color: #ffffff;
    background-image: url("/assets/img/media_rotate_hint.svg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: clamp(200px, 28vw, 320px) auto;
    pointer-events: none;
  }

  html:has(.alq-mc-hero),
  html:has(.alq-mc-hero) body {
    overflow: hidden !important;
    height: 100%;
  }

  html:has(.alq-mc-hero) body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 2147483647;
    background-color: #ffffff;
    background-image: url("/assets/img/media_rotate_hint.svg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: clamp(200px, 28vw, 320px) auto;
    pointer-events: none;
  }
}
