.post-graph-v2[data-variant="indirect"] {
  --pg-accent: var(--color--border-high-contrast);
  --pg-accent-min: var(--color--border-mid-contrast);

  /* [data-theme="dark"] & {
    --pg-accent: var(--pg-indirect-accent-dark, #ff63cb);
    --pg-accent-min: var(--pg-indirect-accent-min-dark, #822c82);
  } */
}

.post-graph-v2 {
  --pg-accent: #c700b2;
  --pg-accent-min: #ffacdc;
  --pg-cell-size: 6px;
  --pg-empty: var(--color--bg-3);
  --pg-empty-hover-scale: 3;
  --pg-empty-size: 3px;
  --pg-grow-duration: 44ms;
  --pg-hover-scale: 1.75;
  --pg-shrink-duration: 66ms;
  --pg-slot-size: 12px;
  /* --pg-grow-duration:     75ms;
      --pg-shrink-duration:   200ms; */
  [data-theme="dark"] & {
    --pg-accent: #ff63cb;
    --pg-accent-min: #822c82;
  }

  position: relative;
  display: flex;
  overflow: hidden;
  flex-direction: row;
  justify-content: flex-end;
  width: fit-content;
  max-width: 100%;
  &::before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
    width: calc(var(--pg-slot-size) * 0.5);
    background: linear-gradient(to right,
                                var(--color--bg-base) 0%,
                                transparent 100%);
    pointer-events: none;
    content: "";
  }

  & .col {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
  }

  &.post-graph-v2--row {
    --pg-row-bar-height: calc(var(--pg-cell-size) * 2);
    --pg-row-bar-radius: 2px;
    --pg-row-day-gap: 1px;
    --pg-row-hover-height: calc(var(--pg-row-bar-height) * var(--pg-empty-hover-scale));
    --pg-row-tick-width: 1px;

    flex: 0 0 auto;
    overflow: visible;
    gap: var(--pg-row-day-gap);

    &::before {
      display: none;
    }

    & .cell {
      height: calc(var(--pg-slot-size) * 2);
      width: calc(var(--pg-slot-size) * 0.5 - var(--pg-row-day-gap));
    }

    & .cell::after {
      width: 100%;
      height: var(--pg-row-bar-height);
      border-radius: var(--pg-row-bar-radius);
      transition: height var(--pg-shrink-duration) ease-in;
    }

    & .cell[data-level="0"]::after {
      width: var(--pg-row-tick-width);
      height: var(--pg-row-bar-height);
    }

    & .cell:hover::after,
    & .cell[data-level="0"]:hover::after {
      height: var(--pg-row-hover-height);
      transform: none;
      transition: height var(--pg-grow-duration) ease-out;
    }
  }

  & .cell {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: var(--pg-slot-size);
    height: var(--pg-slot-size);
    cursor: default;
    &::after {
      width: var(--pg-cell-size);
      height: var(--pg-cell-size);
      background-color: var(--pg-empty);
      border-radius: 50%;
      content: "";
      transition: transform var(--pg-shrink-duration) ease-in;
    }

    &:hover::after {
      transform: scale(var(--pg-hover-scale));
      transition: transform var(--pg-grow-duration) ease-out;
    }

    &[data-level="0"]::after {
      width: var(--pg-empty-size);
      height: var(--pg-empty-size);
    }

    &[data-level="0"]:hover::after { transform: scale(var(--pg-empty-hover-scale)); }

    &[data-level="1"]::after {
      background-color: color-mix(in srgb,
                                  var(--pg-accent) 0%,
                                  var(--pg-accent-min));
    }

    &[data-level="2"]::after {
      background-color: color-mix(in srgb,
                                  var(--pg-accent) 50%,
                                  var(--pg-accent-min));
    }

    &[data-level="3"]::after {
      background-color: color-mix(in srgb,
                                  var(--pg-accent) 100%,
                                  var(--pg-accent-min));
    }

    &[data-level="4"]::after { background-color: var(--pg-accent); }
  }

  & .post-graph-v2__tooltip[popover] {
    position: fixed;
    padding: 0.2rem 0.6rem;
    margin: 0;
    font-size: 0.75rem;
    line-height: 1.5;
    color: var(--color--aaa-text);
    white-space: nowrap;
    background: var(--color--bg-raised);
    border: none;
    border-radius: 999px;
    box-shadow: var(--card-shadow-and-border);
    pointer-events: none;
    [data-theme="dark"] & { color: var(--color--max-text); }
  }
}
