.item-list {
  transform-style: preserve-3d;
  transform: perspective(1000px);
}

.item-list .item-row {
  z-index: 1;
  position: relative;
  transition: .4s;
  transition-timing-function: ease-out;
}

.item-list.item-row {
  z-index: 1000;
}

.item-list .item-row:hover {
  transform: translateZ(15px)
}

.item-list .item-row-stay-hover {
  transform: translateZ(15px) !important
}

.item-list .item-row-swiped {
  transform: translateX(-100vw) !important
}

.item-list .item-row:hover+* {
  transform: translateZ(10px) rotateX(-10deg);
}

.item-list .item-row:hover+*+* {
  transform: translateZ(5px) rotateX(-5deg);
}

.item-list .item-row:hover+*+*+* {
  transform: translateZ(2px) rotateX(-2deg);
}

.item-list .item-row:has(+*:hover) {
  transform: translateZ(10px) rotateX(10deg);
}

.item-list .item-row:has(+*+*:hover) {
  transform: translateZ(5px) rotateX(5deg);
}

.item-list .item-row:has(+*+*+*:hover) {
  transform: translateZ(2px) rotateX(2deg);
}

.logo-container {
  transform-style: preserve-3d;
  transform: perspective(1000px);
  width: 100%;
  height: 100%;
}

.logo-container .logo {
  transition: .1s;
}

:root {
  --x: 0.5;
  --y: 0.5;
}

.logo-container .logo {
  transform: rotateX(calc(-15deg* (var(--y) - 0.5))) rotateY(calc(15deg* (var(--x) - 0.5)));
}



.task-card-container {
  perspective: 1000px;
}
  .task-card-inner {
    position: relative;
    width: 100%;
    height: 100%;
    transition: transform 0.5s;
    transform-style: preserve-3d;
  }
  .task-card-inner.flipped {
    transform: rotateY(180deg);
  }
  .task-card-front,
  .task-card-back {
    position: absolute;
    inset: 0;
    backface-visibility: hidden;
  }
  .task-card-back {
    transform: rotateY(180deg);
  }
@keyframes shrinkX {
  from { transform: scaleX(1); }
  to { transform: scaleX(0); }
}

.my-indicator {
    display: none;
}

.htmx-request .my-indicator,
.htmx-request.my-indicator {
    display: flex;
}

.htmx-indicator{
  display:none;
        opacity:0;
        transition: opacity 500ms ease-in;
}
.htmx-request .htmx-indicator{
  display:flex;
        opacity:1;
}
.htmx-request.htmx-indicator{
  display:flex;
        opacity:1;
}

		@keyframes bounce-balls {
			0%, 80%, 100% { transform: translateY(0); }
			40% { transform: translateY(-20px); }
		}
		.animate-bounce-balls {
			display: inline-block;
			animation: bounce-balls 1.2s infinite both;
		}
