/* Puppy Animation - Converted from SCSS */
/* Scoped to .pup-animation-container to avoid conflicts with dark theme */

.pup-animation-container {
	/* Animation-specific CSS variables */
	--light-brown: #f79568;
	--medium-brown: #d1585d;
	--dark-brown: #a53942;
	--red: #ff4a50;
	--yellow: #ffbd31;
	--blue: #39cede;
	--purple: #421163;
	--speed: 8s;
	
	/* Container-specific styles */
	position: relative;
	width: 100%;
	height: 280px;
	background: transparent;
	overflow: hidden;
	box-sizing: border-box;
}

.pup-animation-container *,
.pup-animation-container *:before,
.pup-animation-container *:after {
	box-sizing: inherit;
}

.pup-animation-container .container {
	position: relative;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) scale(0.55);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 600px;
	height: 420px;
	max-width: 100%;
}

.pup-animation-container .container * {
	position: absolute;
}

.pup-animation-container .container *:before,
.pup-animation-container .container *:after {
	content: "";
	position: absolute;
}

.pup-animation-container .box {
	background-color: var(--medium-brown);
	width: 300px;
	height: 45%;
	left: 50;
	bottom: 0;
	border-radius: 20px;
	transform-origin: center bottom;
	animation: bigBox var(--speed) linear infinite;
}

.pup-animation-container .box:before {
	background-color: var(--light-brown);
	width: 70%;
	height: 100%;
	bottom: 0;
	border-radius: 20px;
}

.pup-animation-container .box:after {
	background-color: var(--yellow);
	height: 100%;
	width: 11%;
	right: 10%;
}

.pup-animation-container .box .sign {
	width: 36px;
	height: 36px;
	border-radius: 6px;
	border: 3px solid var(--medium-brown);
	left: 150px;
	top: 10%;
}

.pup-animation-container .box .sign:after {
	width: 3px;
	height: 20px;
	left: 13px;
	top: 6px;
	background-color: var(--medium-brown);
}

.pup-animation-container .box .sign:before {
	width: 9px;
	height: 9px;
	left: 10px;
	top: 6px;
	border: 3px solid var(--medium-brown);
	border-left: 0;
	border-bottom: 0;
	transform: rotate(-45deg);
}

.pup-animation-container .dog {
	bottom: 45%;
	height: 45%;
	width: 300px;
	animation: dog-bounce var(--speed) linear infinite;
	transform-origin: center bottom;
}

.pup-animation-container .dog-group {
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	animation: dog-jump var(--speed) linear infinite;
	transform-origin: center bottom;
}

.pup-animation-container .body-group {
	z-index: 2;
	width: 52%;
	height: 38%;
	bottom: 0;
	left: 25%;
}

.pup-animation-container .body-group .dog-box {
	width: 100%;
	height: 100%;
	border-radius: 0px 7px 7px;
	overflow: hidden;
	z-index: 3;
	background: rgb(247, 149, 104);
	background: linear-gradient(90deg, rgba(247, 149, 104, 1) 0%, rgba(247, 149, 104, 1) 67%, rgba(209, 88, 93, 1) 67%, rgba(209, 88, 93, 1) 100%);
}

.pup-animation-container .body-group .dog-box .dog-box-sign {
	width: 30px;
	height: 30px;
	border-radius: 6px;
	border: 3px solid var(--medium-brown);
	left: 35%;
	top: 15%;
}

.pup-animation-container .body-group .dog-box .dog-box-sign:after {
	width: 70%;
	height: 3px;
	border-radius: 10px;
	background-color: var(--medium-brown);
	left: 15%;
	top: 5px;
	box-shadow: 0px 6px var(--medium-brown);
}

.pup-animation-container .body-group .dog-box .dog-box-sign:before {
	width: 45%;
	height: 3px;
	border-radius: 10px;
	background-color: var(--medium-brown);
	left: 39%;
	top: 17px;
}

.pup-animation-container .body-group .dog-box .bottom-shadow {
	width: 100%;
	height: 20px;
	background-color: var(--dark-brown);
	bottom: -13px;
	transform: rotate(-2deg);
	animation: shadows var(--speed) linear infinite;
}

.pup-animation-container .body-group .dog-box .top-left-shadow {
	height: 40px;
	width: 60px;
	background-color: var(--dark-brown);
	transform: rotate(-15deg);
	top: -32px;
	left: -10px;
	animation: shadows var(--speed) linear infinite;
}

.pup-animation-container .body-group .dog-shape {
	border-radius: 50%;
	background-color: var(--blue);
	width: 50px;
	height: 50px;
	right: 18%;
	top: -40%;
	z-index: 2;
	box-shadow: 6px 10px 0 var(--dark-brown);
	animation: blue-shape var(--speed) linear infinite;
	transform-origin: center bottom;
}

.pup-animation-container .body-group .tail-group {
	right: 0px;
	top: -65%;
	height: 70px;
	width: 24px;
	z-index: 1;
	transform: rotate(25deg);
	animation: tailGroup var(--speed) linear infinite;
	transform-origin: center;
}

.pup-animation-container .body-group .tail-group .tail {
	bottom: 0;
	background-color: var(--red);
	height: 22px;
	width: 22px;
	border-radius: 0 0 20px 20px;
	z-index: 1;
	animation: tail var(--speed) linear infinite;
	transform-origin: center center;
}

.pup-animation-container .body-group .tail-group .tail .tail {
	bottom: 40%;
}

.pup-animation-container .body-group .tail-group .tail.last {
	border-radius: 20px;
}

.pup-animation-container .head-group {
	bottom: 38%;
	width: 45%;
	height: 38%;
	left: 10%;
	animation: dog-head var(--speed) linear infinite;
	transform-origin: center bottom;
}

.pup-animation-container .head-group .head {
	width: 100%;
	height: 100%;
	border-radius: 0 0 3px 3px;
	overflow: hidden;
	background: rgb(247, 149, 104);
	background: linear-gradient(90deg, rgba(247, 149, 104, 1) 0%, rgba(247, 149, 104, 1) 67%, rgba(209, 88, 93, 1) 67%, rgba(209, 88, 93, 1) 100%);
}

.pup-animation-container .head-group .head:after {
	background-color: var(--dark-brown);
	width: 50px;
	height: 50px;
	border-radius: 50%;
	right: -25px;
	bottom: -25px;
}

.pup-animation-container .head-group .ear {
	height: 30px;
	width: 50%;
	bottom: 100%;
	transform: perspective(3000px);
}

.pup-animation-container .head-group .ear.right {
	right: -20px;
}

.pup-animation-container .head-group .ear .ear-container {
	width: 95%;
	height: 100%;
	left: -9px;
	transform-style: preserve-3d;
	transform-origin: center bottom;
	transform: rotateY(45deg);
}

.pup-animation-container .head-group .ear .ear-left,
.pup-animation-container .head-group .ear .ear-right {
	background-color: #ba4751;
	height: 100%;
	width: 100%;
	transform-style: preserve-3d;
	border-radius: 4px 4px 0 0;
	transform-origin: center bottom;
}

.pup-animation-container .head-group .ear .ear-left {
	transform: rotateX(50deg);
	animation: earLeft var(--speed) linear infinite;
}

.pup-animation-container .head-group .ear .ear-right {
	transform: rotateX(-50deg);
	animation: earRight var(--speed) linear infinite;
}

.pup-animation-container .head-group .face {
	width: 67%;
	height: 100%;
}

.pup-animation-container .head-group .face .muzzle {
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background-color: var(--medium-brown);
	left: 29%;
	bottom: 8%;
	z-index: 2;
}

.pup-animation-container .head-group .face .eyes {
	width: 100%;
	height: 50%;
	top: 17%;
	z-index: 1;
}

.pup-animation-container .head-group .face .eyes .eye-left,
.pup-animation-container .head-group .face .eyes .eye-right {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background-color: #fff;
	bottom: 0;
	transform-origin: center top;
	animation: eyeWink var(--speed) linear infinite;
}

.pup-animation-container .head-group .face .eyes .eye-left .pupil,
.pup-animation-container .head-group .face .eyes .eye-right .pupil {
	background-color: var(--purple);
	border-radius: 50%;
	width: 76%;
	height: 76%;
	top: 12%;
	left: 14%;
	animation: eyeMove var(--speed) linear infinite;
}

.pup-animation-container .head-group .face .eyes .eye-left .pupil:after,
.pup-animation-container .head-group .face .eyes .eye-right .pupil:after {
	background-color: #fff;
	border-radius: 50%;
	width: 10px;
	height: 10px;
	top: 3px;
	left: -1px;
	transform-origin: center bottom;
	animation: eyeWink2 var(--speed) linear infinite;
}

.pup-animation-container .head-group .face .eyes .eye-left {
	left: 4px;
}

.pup-animation-container .head-group .face .eyes .eye-right {
	right: 4px;
}

.pup-animation-container .head-group .face .nose {
	background-color: var(--purple);
	width: 12px;
	height: 8px;
	left: 9px;
	top: 6px;
	border-radius: 40%;
	animation: nose var(--speed) linear infinite;
}

.pup-animation-container .head-group .face .nose:after {
	width: 4px;
	height: 6px;
	background-color: var(--purple);
	left: 4px;
	top: 8px;
}

.pup-animation-container .head-group .face .mouth-close {
	width: 100%;
	height: 8px;
	top: 12px;
	animation: mouthClose var(--speed) linear infinite;
}

.pup-animation-container .head-group .face .mouth-close:after,
.pup-animation-container .head-group .face .mouth-close:before {
	width: 12px;
	height: 8px;
	border: 3px solid var(--purple);
	border-radius: 0 0 8px 8px;
	border-top: 0;
	top: 4px;
	left: 4px;
}

.pup-animation-container .head-group .face .mouth-close:before {
	left: 14px;
}

.pup-animation-container .head-group .face .mouth-barks {
	background-color: var(--purple);
	width: 20px;
	height: 20px;
	bottom: 2px;
	left: 6px;
	border-radius: 50%;
	overflow: hidden;
	opacity: 0;
	animation: mouthBarks var(--speed) linear infinite;
}

.pup-animation-container .head-group .face .mouth-barks:after {
	width: 80%;
	height: 80%;
	background-color: var(--red);
	left: 40%;
	top: 40%;
	border-radius: 50%;
}

.pup-animation-container .head-group .face .mouth-open {
	opacity: 0;
	background-color: var(--purple);
	width: 24px;
	height: 12px;
	bottom: 3px;
	left: 4px;
	border-radius: 0px 0px 22px 22px;
	animation: mouthOpen var(--speed) linear infinite;
}

.pup-animation-container .head-group .face .mouth-open .teeth {
	width: 0;
	height: 0;
	left: 3px;
	top: 0px;
	border-left: 3px solid transparent;
	border-right: 3px solid transparent;
	border-top: 5px solid #fff;
}

.pup-animation-container .head-group .face .mouth-open .teeth:after {
	width: 0;
	height: 0;
	left: 9px;
	top: -5px;
	border-left: 3px solid transparent;
	border-right: 3px solid transparent;
	border-top: 5px solid #fff;
}

.pup-animation-container .head-group .face .mouth-open .tongue-open {
	background-color: var(--red);
	width: 12px;
	height: 9px;
	left: 6px;
	top: 3px;
	border-radius: 40%;
	animation: tongue var(--speed) linear infinite;
	transform-origin: center top;
}

.pup-animation-container .tongue-open {
	z-index: 99;
	background-color: var(--red);
	width: 12px;
	height: 9px;
	left: 61px;
	top: 100px;
	border-radius: 40%;
	animation: tongue var(--speed) linear infinite;
	transform-origin: center top;
}

.pup-animation-container .plant-group {
	width: 32%;
	height: 45%;
	bottom: 0;
	right: 0;
}

.pup-animation-container .plant-group:before {
	background-color: var(--dark-brown);
	left: 13%;
	bottom: 30%;
	height: 60px;
	width: 16px;
}

.pup-animation-container .plant-group .pot {
	background-color: var(--dark-brown);
	left: 0%;
	bottom: 0;
	height: 60px;
	width: 60px;
	z-index: 2;
}

.pup-animation-container .plant-group .pot:after {
	background-color: var(--red);
	left: 0;
	bottom: 0;
	height: 100%;
	width: 200%;
	border-radius: 0 0 120px 120px;
}

.pup-animation-container .plant-group .plant {
	bottom: 60px;
	left: 0%;
	height: 50px;
	width: 120px;
}

.pup-animation-container .plant-group .plant .stem {
	width: 8px;
	height: 110%;
	background-color: var(--purple);
	left: 56px;
	top: -4px;
}

.pup-animation-container .plant-group .plant .leaf {
	background-color: var(--purple);
	width: 6px;
	height: 16px;
	left: -6px;
	border-radius: 50px;
}

.pup-animation-container .plant-group .plant .leaf:after {
	background-color: var(--blue);
	width: 20px;
	height: 38px;
	border-radius: 50%;
	left: -7px;
	bottom: 70%;
}

.pup-animation-container .plant-group .plant .leaf:nth-of-type(1),
.pup-animation-container .plant-group .plant .leaf:nth-of-type(2) {
	transform: rotate(-45deg);
}

.pup-animation-container .plant-group .plant .leaf:nth-of-type(4),
.pup-animation-container .plant-group .plant .leaf:nth-of-type(5) {
	transform: rotate(45deg);
	left: 8px;
}

.pup-animation-container .plant-group .plant .leaf:nth-of-type(1),
.pup-animation-container .plant-group .plant .leaf:nth-of-type(5) {
	bottom: -3px;
}

.pup-animation-container .plant-group .plant .leaf:nth-of-type(3) {
	top: -2px;
	left: 1px;
}

.pup-animation-container .plant-group .plant .leaf:nth-of-type(2),
.pup-animation-container .plant-group .plant .leaf:nth-of-type(4) {
	bottom: 25px;
}

/* Animations */
@keyframes bigBox {
	6.3%, 11.6%, 14.4%, 16%, 48%, 52.4%, 55.6%, 57.2%, 62.4%, 67.2%, 70.8%, 72.4% {
		transform: scaleX(1) scaleY(1);
	}
	8.8%, 50.4%, 65.6% {
		transform: scaleX(1.02) scaleY(0.98);
	}
	14.8%, 56%, 71.2% {
		transform: scaleX(1.05) scaleY(0.95);
	}
}

@keyframes dog-bounce {
	6.3%, 11.2%, 14.4%, 16%, 48%, 52.4%, 55.6%, 57.2%, 62.8%, 67.2%, 70.8%, 72.4% {
		transform: scaleX(1) scaleY(1);
	}
	8.8%, 50.4%, 65.6% {
		transform: scaleX(1.15) scaleY(0.85) translateY(5px);
	}
	14.8%, 56%, 71.2% {
		transform: scaleX(1.1) scaleY(0.9) translateY(10px);
	}
	16.4%, 72.8% {
		transform: scaleX(0.95) scaleY(1.05);
	}
	18.4%, 22%, 26%, 30%, 34%, 74.4%, 78.4%, 82.4%, 86.4%, 90.4% {
		transform: scaleX(1.04) scaleY(0.96);
	}
	20%, 24%, 28%, 32%, 36%, 40%, 76.4%, 80.4%, 84.4%, 88.4%, 92.4%, 96.4% {
		transform: scaleX(1) scaleY(1);
	}
	38%, 94.4% {
		transform: scaleX(1.08) scaleY(0.92);
	}
}

@keyframes dog-jump {
	10.4%, 71.2% {
		transform: translateX(0px) translateY(0px);
	}
	10.8%, 70.4% {
		transform: translateY(-15px);
	}
	11.2%, 69.6% {
		transform: translateX(-4px) translateY(-22px);
	}
	11.6%, 69.2% {
		transform: translateX(-8px) translateY(-28px);
	}
	12%, 68.8% {
		transform: translateX(-12px) translateY(-30px);
	}
	12.4%, 68.4% {
		transform: translateX(-16px) translateY(-28px);
	}
	12.8%, 68% {
		transform: translateX(-20px) translateY(-25px);
	}
	13.2%, 67.6% {
		transform: translateX(-24px) translateY(-20px);
	}
	13.6%, 67.2% {
		transform: translateX(-28px) translateY(-10px);
	}
	14.8%, 51.6%, 55.2%, 66.8% {
		transform: translateX(-32px) translateY(0px);
	}
	52%, 53.6% {
		transform: translateX(-32px) translateY(-10px);
	}
}

@keyframes dog-head {
	10.4%, 51.2%, 71.2% {
		transform: translateX(0px) translateY(0px);
	}
	11.6%, 13.6%, 70.4% {
		transform: translateY(-15px);
	}
	14.8%, 55.6%, 66.8% {
		transform: translateY(0px);
	}
	53.2%, 54.4% {
		transform: translateY(-15px);
	}
}

@keyframes blue-shape {
	10.4%, 14.8%, 38%, 51.2%, 55.6%, 66.8%, 71.2%, 94.4% {
		transform: translateX(0px) translateY(0px);
		box-shadow: 6px 10px 0 var(--dark-brown);
	}
	11.6%, 13.6%, 53.2%, 54.4%, 70.4% {
		transform: translateY(-15px);
		box-shadow: none;
	}
	18.8%, 37.6%, 75.2%, 94% {
		box-shadow: none;
	}
}

@keyframes eyeMove {
	0%, 10.4%, 14%, 18.4%, 25.2%, 30.4%, 37.6%, 51.2%, 57.2%, 66.8%, 71.2%, 74.8%, 81.6%, 86.8%, 96% {
		transform: translate(0px, 0px) rotate(0deg) scale(1);
	}
	10.8%, 13.6%, 67.2%, 70.4% {
		transform: translate(0px, -2px);
	}
	18.8%, 24.8%, 30.8%, 37%, 75.2%, 81.2%, 87.2%, 94% {
		transform: translate(2px, 0px) rotate(2deg);
	}
	51.6%, 56.8% {
		transform: scale(1.1);
	}
}

@keyframes eyeWink {
	0%, 8.4%, 10.8%, 13.2%, 16.4%, 36.4%, 42%, 52%, 56.4%, 64.4%, 67.2%, 69.2%, 72.8%, 93.2%, 98% {
		width: 32px;
		height: 32px;
		border-radius: 50%;
		background-color: #fff;
		bottom: 0;
	}
	8.8%, 9.6%, 14.8%, 15.2%, 36.7%, 40.4%, 53.2%, 54.8%, 65.2%, 66.2%, 71%, 72%, 94%, 96.8% {
		height: 3px;
		width: 27px;
		border-radius: 2px;
		background-color: var(--purple);
		bottom: 35%;
	}
}

@keyframes eyeWink2 {
	0%, 8%, 10.4%, 12.8%, 16%, 36%, 41.6%, 51.6%, 56%, 64%, 66.8%, 68.8%, 72.4%, 92.8%, 97.6% {
		opacity: 1;
	}
	8.4%, 9.6%, 14.4%, 15.2%, 36.7%, 40.4%, 53.2%, 54.8%, 65.2%, 66.2%, 71%, 72%, 94%, 96.8% {
		opacity: 0;
	}
}

@keyframes earLeft {
	10.8%, 17.2%, 20.8%, 24.4%, 25.2%, 28.4%, 29.2%, 32.4%, 33.2%, 36.4%, 52.4%, 58.4%, 59.2%, 62%, 67.6%, 73.6%, 76.8%, 77.2%, 80.8%, 81.2%, 84.8%, 85.2%, 88.8%, 89.2%, 92.8% {
		transform: rotateX(50deg);
	}
	14.4%, 54.4%, 55.6%, 68.8%, 70.8% {
		transform: rotateX(-20deg) scaleY(0.8);
	}
	14.8%, 15.6%, 56%, 56.8%, 71.2%, 72% {
		transform: rotateX(130deg);
	}
	18.8%, 22.8%, 26.8%, 30.8%, 34.8%, 60%, 75.2%, 79.2%, 83.2%, 87.2%, 91.2% {
		transform: rotateX(70deg);
	}
}

@keyframes earRight {
	10.8%, 17.2%, 20.8%, 24.4%, 25.2%, 28.4%, 29.2%, 32.4%, 33.2%, 36.4%, 52.4%, 58.4%, 59.2%, 62%, 67.6%, 73.6%, 76.8%, 77.2%, 80.8%, 81.2%, 84.8%, 85.2%, 88.8%, 89.2%, 92.8% {
		transform: rotateX(-50deg);
	}
	14.4%, 54.4%, 55.6%, 68.8%, 70.8% {
		transform: rotateX(20deg) scaleY(0.8);
	}
	14.8%, 15.6%, 56%, 56.8%, 71.2%, 72% {
		transform: rotateX(-130deg);
	}
	18.8%, 22.8%, 26.8%, 30.8%, 34.8%, 60%, 75.2%, 79.2%, 83.2%, 87.2%, 91.2% {
		transform: rotateX(-70deg);
	}
}

@keyframes shadows {
	10.4%, 14.8%, 51.6%, 55.6%, 66.8%, 71.2% {
		opacity: 1;
	}
	10.8%, 14.4%, 52%, 54.8%, 67.2%, 70.8% {
		opacity: 0;
	}
}

@keyframes mouthClose {
	17.2%, 37.2%, 50%, 56.2%, 73.6%, 93.6% {
		opacity: 1;
	}
	17.6%, 36.8%, 52.4%, 55.8%, 74%, 93.2% {
		opacity: 0;
	}
}

@keyframes mouthBarks {
	50%, 57.2% {
		opacity: 0;
	}
	50.4%, 56.8% {
		opacity: 1;
		transform: scale(0);
	}
	53%, 54.2% {
		opacity: 1;
		transform: scale(1.1);
	}
}

@keyframes nose {
	50%, 57.2% {
		transform: translateY(0px);
	}
	53% {
		transform: translateY(-4px);
	}
}

@keyframes mouthOpen {
	17.2%, 37.2%, 73.6%, 93.6% {
		opacity: 0;
	}
	17.6%, 36.8%, 74%, 93.2% {
		opacity: 1;
	}
}

@keyframes tongue {
	0%, 17.2%, 37.2%, 73.6%, 93.6%, 100% {
		opacity: 0;
	}
	17.6%, 36.8% {
		opacity: 1;
	}
	19.2%, 22%, 24%, 26.4%, 28.4%, 30.8%, 32.8%, 35.6%, 75.6%, 78.4%, 80.4%, 82.8%, 84.8%, 87.2%, 89.2%, 92% {
		transform: scaleY(2.7);
	}
	20.8%, 23.2%, 25.2%, 27.6%, 29.6%, 32%, 34%, 74.8%, 77.2%, 79.6%, 81.6%, 84%, 86%, 88.4%, 90.4% {
		transform: scaleY(1.7);
	}
	74%, 93.2% {
		opacity: 1;
	}
}

@keyframes tail {
	17.2%, 38.4%, 73.6%, 94.8% {
		transform: rotate(0deg);
	}
	18.8%, 22.8%, 24.8%, 26.4%, 28.4%, 30.4%, 32.4%, 34.4%, 36.4%, 75.2%, 78.8%, 80.8%, 82.8%, 84.8%, 86.8%, 88.8%, 90.8%, 92.8% {
		transform: rotate(12deg);
	}
	21.2%, 21.6%, 23.6%, 25.6%, 27.2%, 29.6%, 31.6%, 33.6%, 35.6%, 37.6%, 77.6%, 78%, 80%, 82%, 84%, 86%, 88%, 90%, 92%, 94% {
		transform: rotate(-12deg);
	}
}

@keyframes tailGroup {
	10.4%, 14.4%, 17.2%, 38.4%, 51.2%, 55.6%, 66.8%, 70.8%, 73.6%, 94.8% {
		transform: rotate(25deg) translateX(0px) translateY(0px);
	}
	18.8%, 22.8%, 24.8%, 26.4%, 28.4%, 30.4%, 32.4%, 34.4%, 36.4%, 75.2%, 78.8%, 80.8%, 82.8%, 84.8%, 86.8%, 88.8%, 90.8%, 92.8% {
		transform: rotate(-10deg) translateX(-15px);
	}
	21.2%, 21.6%, 23.6%, 25.6%, 27.2%, 29.6%, 31.6%, 33.6%, 35.6%, 37.6%, 77.6%, 78%, 80%, 82%, 84%, 86%, 88%, 90%, 92%, 94% {
		transform: rotate(50deg) translateX(15px);
	}
	13.2%, 54%, 69.2% {
		transform: rotate(5deg) translateY(-30px) translateX(-5px);
	}
}
