main
  1article {
  2  code {
  3    font-family: var(--kp-font-mono), ui-monospace, monospace,
  4      var(--kp-font-emoji);
  5  }
  6
  7  code:not(:is(pre > code)) {
  8    font-size: 1rem;
  9    line-height: 1.5rem;
 10  }
 11
 12  div.hypraw {
 13    position: relative;
 14    font-size: 1rem;
 15    line-height: 1.5rem;
 16    margin-top: 1.25rem;
 17    margin-bottom: 1.25rem;
 18    border-top: 1px solid;
 19    border-bottom: 1px solid;
 20    border-color: color-mix(in oklab, var(--color-base-content) 60%,
 21      transparent);
 22
 23    pre {
 24      margin: 0;
 25      overflow-x: auto;
 26
 27      > code {
 28        display: block;
 29        padding: 0.5rem;
 30
 31        &[data-lang]::before {
 32          position: absolute;
 33          top: 0.5rem;
 34          right: 0.5rem;
 35          z-index: 1;
 36          padding-left: 0.25rem;
 37          padding-right: 0.25rem;
 38          border: 1px solid color-mix(in oklab, var(--color-base-content) 60%,
 39            transparent);
 40          border-radius: 0.25rem;
 41          opacity: 1;
 42          font-size: 0.875rem;
 43          line-height: 1.25rem;
 44          color: var(--color-base-content);
 45          background-color: var(--color-base-300);
 46          content: attr(data-lang);
 47          transition: opacity 0.2s;
 48        }
 49
 50        &:hover::before {
 51          opacity: 0;
 52        }
 53      }
 54
 55      &::-webkit-scrollbar,
 56      &::-webkit-scrollbar-track {
 57        background-color: inherit;
 58        border-bottom-left-radius: 0.25rem;
 59        border-bottom-right-radius: 0.25rem;
 60      }
 61
 62      &::-webkit-scrollbar-thumb {
 63        background-color: var(--color-base-300);
 64        border: 4px solid transparent;
 65        border-radius: 0.75rem;
 66        background-clip: content-box;
 67      }
 68
 69      &::-webkit-scrollbar-thumb:hover {
 70        background-color: var(--color-base-content);
 71      }
 72    }
 73
 74    &.has-line-numbers .ec-line {
 75      position: relative;
 76      display: grid;
 77      grid-template-columns: auto 1fr;
 78
 79      .code {
 80        position: relative;
 81        padding-left: 0.5rem;
 82      }
 83    }
 84
 85    .gutter {
 86      border-right: 1px solid color-mix(in oklab, var(--color-base-content) 40%,
 87        transparent);
 88      user-select: none;
 89      color: var(--color-base-content);
 90
 91      .ln {
 92        display: inline-flex;
 93        justify-content: flex-end;
 94        align-items: flex-start;
 95        min-width: 2em;
 96        padding-right: 0.5rem;
 97      }
 98    }
 99
100    .ec-line {
101      &.highlight {
102        background-color: color-mix(in oklab, var(--color-base-content) 10%,
103          transparent);
104      }
105
106      &.ins {
107        background-color: color-mix(in oklab, var(--color-success) 25%,
108          transparent);
109      }
110
111      &.del {
112        background-color: color-mix(in oklab, var(--color-error) 25%,
113          transparent);
114      }
115    }
116  }
117}