﻿body {
	background-color: #0a0a0a;
	color: #e5e5e5;
	cursor: none;
	overflow-x: hidden;
}

/* Custom Cursor */
.custom-cursor {
	position: fixed;
	top: 0;
	left: 0;
	width: 20px;
	height: 20px;
	border: 1px solid rgba(255, 255, 255, 0.5);
	border-radius: 50%;
	pointer-events: none;
	z-index: 9999;
	transform: translate(-50%, -50%);
	transition: width 0.3s, height 0.3s, background-color 0.3s, border-color 0.3s;
	mix-blend-mode: difference;
}

	.custom-cursor.hovered {
		width: 50px;
		height: 50px;
		background-color: rgba(255, 255, 255, 0.1);
		border-color: transparent;
		backdrop-filter: blur(2px);
	}

/* Noise Overlay */
.noise-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 50;
	opacity: 0.05;
	background: url('data:image/svg+xml,%3Csvg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"%3E%3Cfilter id="noiseFilter"%3E%3CfeTurbulence type="fractalNoise" baseFrequency="0.65" numOctaves="3" stitchTiles="stitch"/%3E%3C/filter%3E%3Crect width="100%25" height="100%25" filter="url(%23noiseFilter)"/%3E%3C/svg%3E');
}

/* Transitions */
.fade-enter-active, .fade-leave-active {
	transition: opacity 1s ease;
}

.fade-enter-from, .fade-leave-to {
	opacity: 0;
}

.slide-up-enter-active {
	transition: all 1s cubic-bezier(0.16, 1, 0.3, 1);
	transition-delay: 0.2s;
}

.slide-up-leave-active {
	transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.slide-up-enter-from {
	opacity: 0;
	transform: translateY(40px);
}

.slide-up-leave-to {
	opacity: 0;
	transform: translateY(-20px);
}

.slide-up-enter-to, .slide-up-leave-from {
	opacity: 1;
	transform: translateY(0);
}

.menu-slide-enter-active, .menu-slide-leave-active {
	transition: transform 0.7s cubic-bezier(0.77, 0, 0.175, 1);
}

.menu-slide-enter-from, .menu-slide-leave-to {
	transform: translateX(100%);
}

.accordion-enter-active, .accordion-leave-active {
	transition: all 0.5s cubic-bezier(0.77, 0, 0.175, 1);
	max-height: 500px;
	opacity: 1;
}

.accordion-enter-from, .accordion-leave-to {
	max-height: 0;
	opacity: 0;
	margin-top: 0;
}

.loading-enter-active, .loading-leave-active {
	transition: opacity 1s ease;
}

.loading-leave-to {
	opacity: 0;
}

/* Scrollbar */
::-webkit-scrollbar {
	width: 8px;
}

::-webkit-scrollbar-track {
	background: #0a0a0a;
}

::-webkit-scrollbar-thumb {
	background: #333;
	border-radius: 4px;
}

.fade-scale-enter-active {
	transition: all .4s ease;
}

.fade-scale-enter {
	opacity: 0;
	transform: scale(.9);
}
