html {
  font-size: var(--font-size, 15px);
}

@font-face {
  font-display: swap;
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 400;
  src: url(/fonts/DM-mono-v10.ttf) format('truetype');
}
@font-face {
  font-display: swap;
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  src: url(/fonts/DM-sans-v11.ttf) format('truetype');
}
@font-face {
  font-display: swap;
  font-family: 'DM Serif Display';
  font-style: normal;
  font-weight: 400;
  src: url(/fonts/DM-serif-display-v10.ttf) format('truetype');
}
@font-face {
  font-display: swap;
  font-family: 'Homemade Apple';
  font-style: normal;
  font-weight: 400;
  src: url(/fonts/homemade-apple-v18.ttf) format('truetype');
}
@font-face {
  font-display: swap;
  font-family: 'EmojiMart';
  src: url('/fonts/seguiemj.ttf') format('truetype');
}

* {
  scrollbar-color: #8885 var(--c-border);
}

::-webkit-scrollbar {
  width: 10px;
}

::-webkit-scrollbar:horizontal {
  height: 10px;
}

::-webkit-scrollbar-track {
  background: var(--c-border);
  border-radius: 1px;
}

::-webkit-scrollbar-thumb {
  background: #8885;
  border-radius: 1px;
}

::-webkit-scrollbar-thumb:hover {
  background: #8886;
}

::-moz-selection {
  background: var(--c-bg-selection);
}

::selection {
  background: var(--c-bg-selection);
}

/* Force vertical scrollbar to be always visible to avoid layout shift while loading the content */
body {
  overflow-y: scroll;
  -webkit-tap-highlight-color: transparent;
}

.zen .zen-hide {
  --at-apply: 'op0 hover:op100 transition duration-600';
}

.custom-emoji {
  display: inline-block;
  overflow: hidden;
  max-height: 1.3em;
  max-width: 1.3em;
  vertical-align: text-bottom;
}

.content-rich {
  line-height: calc(4 / 3 * 1em);
  overflow-wrap: break-word;

  a {
    --at-apply: 'text-primary hover:underline hover:text-primary-active';
    .invisible {
      --at-apply: 'hidden';
    }
    .ellipsis {
      --at-apply: 'line-clamp-1 ws-pre-wrap break-all inline';
      &::after {
        content: '…';
      }
    }
  }
  b,
  strong {
    --at-apply: font-bold;
  }
  p {
    --at-apply: my-1;
  }
  code {
    --at-apply: bg-code text-code px1 py0.5 rounded text-0.9em leading-0.8em;
  }
  pre code {
    --at-apply: bg-transparent px0 py0 rounded-none leading-1.6em;
  }

  .code-block {
    --at-apply: font-mono bg-code text-base p3 mt-2 rounded overflow-auto
      leading-1.6em;

    .shiki {
      background: transparent !important;
    }
  }
}

.content-editor {
  --at-apply: outline-none flex-1;
  max-width: 100%;

  .custom-emoji {
    margin: 0 0.2em;
  }
}

.skeleton-loading-bg {
  background: linear-gradient(
    90deg,
    rgba(190, 190, 190, 0.2) 25%,
    rgba(129, 129, 129, 0.24) 37%,
    rgba(190, 190, 190, 0.2) 63%
  );
  background-size: 400% 100%;
  animation: skeleton-loading 1.4s ease infinite;
}

@keyframes skeleton-loading {
  0% {
    background-position: 100% 50%;
  }
  to {
    background-position: 0 50%;
  }
}

html,
body,
#__nuxt {
  height: 100vh;
  margin: 0;
  padding: 0;
}

html.dark {
  color-scheme: dark;
}

html {
  --at-apply: bg-base text-base;
}

body {
  /* Prevent arbitrary zooming on mobile devices */
  touch-action: pan-x pan-y;
}

.sparkline--fill {
  fill: var(--c-primary-active);
  opacity: 0.2;
}

.sparkline--line {
  stroke: var(--c-primary);
  stroke-width: 2;
}

html[dir="rtl"] .rtl-flip {
  transform: scale(-1, 1)
}

em-emoji-picker {
  --border-radius: 0;
}
em-emoji {
  font-size: 1.2em;
  line-height: 1em;
}

footer {
  a {
    --at-apply: 'hover:underline';
  }
}
