.flex {
    display: flex;
}

.row {
    flex-direction: row;
}

.row-rev {
    flex-direction: row-reverse;
}

.col {
    flex-direction: column;
}

.col-rev {
    flex-direction: column-reverse;
}

.align-center {
    align-items: center;
}

.justify-center {
    justify-content: center;
}

.align-start {
    align-items: flex-start;
}

.align-between {
    align-items: space-between;
}

.align-evenly {
    align-items: space-evenly;
}

.justify-start {
    justify-content: flex-start;
}

.align-end {
    align-items: flex-end;
}

.justify-end {
    justify-content: flex-end;
}

.justify-between {
    justify-content: space-between;
}

.justify-evenly {
    justify-content: space-evenly;
}

.overflow-hidden {
    overflow: hidden;
}

.text-ellipsis {
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gap-1 {
    gap: 1px;
}

.gap-2 {
    gap: 2px;
}

.gap-4 {
    gap: 4px;
}

.gap-8 {
    gap: 8px;
}

.gap-12 {
    gap: 12px;
}

.gap-16 {
    gap: 16px;
}

.gap-24 {
    gap: 24px;
}

.gap-32 {
    gap: 32px;
}

.gap-48 {
    gap: 48px;
}

.gap-64 {
    gap: 64px;
}

.flex-grow {
    flex-grow: 1;
}

.flex-wrap {
    flex-wrap: wrap;
}

.flex-no-shrink {
    flex-shrink: 0;
}

/* Position utilities */
.p-relative {
    position: relative;
}

.p-absolute {
    position: absolute;
}

.p-sticky {
    position: sticky;
}

.left-0 {
    left: 0;
}

.right-0 {
    right: 0;
}

.top-0 {
    top: 0;
}

.bottom-0 {
    bottom: 0;
}

/* Border radius utilities */
.rounded-0 {
    border-radius: 0;
}

.rounded-2 {
    border-radius: 2px;
}

.rounded-4 {
    border-radius: 4px;
}

.rounded-8 {
    border-radius: 8px;
}

.rounded-12 {
    border-radius: 12px;
}

.rounded-16 {
    border-radius: 16px;
}

.rounded-24 {
    border-radius: 24px;
}

/* Size utilities */
.w-full {
    width: 100%;
}

.h-full {
    height: 100%;
}

.object-cover {
    object-fit: cover;
}

/* Text utilities */
.nowrap {
    white-space: nowrap;
}

.text-center {
    text-align: center;
}

.text-right {
    text-align: right;
}

.text-left {
    text-align: left;
}

.text-12 {
    font-size: 12px;
}

.text-14 {
    font-size: 14px;
}

.text-15 {
    font-size: 15px;
}

.text-16 {
    font-size: 16px;
}

.text-18 {
    font-size: 18px;
}

.text-20 {
    font-size: 20px;
}

.text-24 {
    font-size: 24px;
}

.text-28 {
    font-size: 28px;
}

.text-32 {
    font-size: 32px;
}

.text-36 {
    font-size: 36px;
}

.text-42 {
    font-size: 42px;
}

.text-48 {
    font-size: 48px;
}

.text-54 {
    font-size: 54px;
}

.text-64 {
    font-size: 64px;
}

.text-72 {
    font-size: 72px;
}

.text-96 {
    font-size: 96px;
}

.text-thin {
    font-weight: 200;
}

.text-light {
    font-weight: 300;
}

.text-regular {
    font-weight: 400;
}

.text-medium {
    font-weight: 500;
}

.text-semibold {
    font-weight: 600;
}

.text-bold {
    font-weight: 700;
}

.text-extrabold {
    font-weight: 800;
}

.text-black {
    font-weight: 900;
}

.ease-100 {
    transition: 0.1s ease-in-out;
}

.ease-200 {
    transition: 0.2s ease-in-out;
}

.grid-400 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    gap: 8px 16px;
}

.no-margin {
    margin: 0px !important;
}

.no-padding {
    padding: 0px !important;
}

.no-select {
    user-select: none;
}

.no-events {
    pointer-events: none;
}