 :root {
 	--primary-blue: #0000ff;
 	--glass-bg: rgba(255, 255, 255, 0.03);
 	--glass-border: rgba(0, 0, 255, 0.2);
 }
 
 body {
 	font-family: "Poppins", sans-serif;
 	background-color: #ffffff;
 	color: #212121;
 }
 
 .text-outline {
 	-webkit-text-stroke: 1.5px #212121;
 	color: transparent;
 }
 
 .progress-bar {
 	animation: scroll-progress auto linear;
 	animation-timeline: scroll();
 }
 
 @keyframes scroll-progress {
 	from {
 		width: 0%;
 		background: #ffffff;
 	}
 	to {
 		width: 100%;
 		background: var(--primary-blue);
 	}
 }
 
 .grain {
 	position: fixed;
 	top: -50%;
 	left: -50%;
 	right: -50%;
 	bottom: -50%;
 	width: 200%;
 	height: 200vh;
 	background: transparent url("http://assets.iceable.com/img/noise-transparent.png") repeat 0 0;
 	animation: bg-animation 0.2s infinite;
 	opacity: 0.05;
 	visibility: visible;
 	pointer-events: none;
 	z-index: 100;
 }
 
 @keyframes bg-animation {
 	0% { transform: translate(0, 0); }
 	10% { transform: translate(-5%, -5%); }
 	20% { transform: translate(-10%, 5%); }
 	30% { transform: translate(5%, -10%); }
 	40% { transform: translate(-5%, 15%); }
 	50% { transform: translate(-10%, 5%); }
 	60% { transform: translate(15%, 0); }
 	70% { transform: translate(0, 10%); }
 	80% { transform: translate(-15%, 0); }
 	90% { transform: translate(10%, 5%); }
 	100% { transform: translate(5%, 0); }
 }
 
 .parallax-name {
 	animation: parallax-scroll auto linear;
 	animation-timeline: scroll();
 }
 
 @keyframes parallax-scroll {
 	from { transform: rotate(180deg) translateY(-10%); }
 	to { transform: rotate(180deg) translateY(10%); }
 }
 
 .blue-aura {
 	filter: blur(120px);
 	background: radial-gradient(circle, rgba(0, 0, 255, 0.15) 0%, rgba(0, 0, 255, 0) 70%);
 }
 
 .magnetic-hover {
 	transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1);
 }
 
 .magnetic-hover:hover {
 	transform: scale(1.1);
 }
 
 .glass-card {
 	background: rgba(255, 255, 255, 0.7);
 	backdrop-filter: blur(10px);
 	-webkit-backdrop-filter: blur(10px);
 	box-shadow: 0 8px 32px 0 rgba(0, 0, 255, 0.05);
 }
 
 .growing-line {
 	transform-origin: left;
 	animation: line-grow auto linear;
 	animation-timeline: scroll();
 }
 
 @keyframes line-grow {
 	from { transform: scaleX(0); }
 	to { transform: scaleX(1); }
 }
 
 .split-gradient {
 	background: linear-gradient(to bottom, #212121 50%, var(--primary-blue) 50%);
 	-webkit-background-clip: text;
 	-webkit-text-fill-color: transparent;
 	background-size: 100% 200%;
 	background-position: 0 0;
 	transition: background-position 0.5s ease;
 }
 
 .split-gradient:hover {
 	background-position: 0 100%;
 }
 
 .vertical-text {
 	writing-mode: vertical-rl;
 }
 
 .premium-rounded {
 	border-radius: 48px;
 }
 
 .geometric-bg {
 	background-image:
 		linear-gradient(rgba(0, 0, 255, 0.05) 1px, transparent 1px),
 		linear-gradient(90deg, rgba(0, 0, 255, 0.05) 1px, transparent 1px);
 	background-size: 100px 100px;
 }
 
 .tech-card-hover {
 	transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
 }
 
 .tech-card-hover:hover {
 	transform: translate(-4px, -4px);
 	box-shadow:
 		8px 8px 16px rgba(0, 0, 0, 0.1),
 		0 0 0 1px rgba(0, 0, 255, 0.05);
 }
 
 .tech-card-hover::after {
 	content: "";
 	position: absolute;
 	top: 0;
 	left: 0;
 	right: 0;
 	bottom: 0;
 	border-radius: 48px;
 	pointer-events: none;
 	opacity: 0;
 	transition: opacity 0.4s ease;
 	box-shadow:
 		4px 4px 12px rgba(0, 0, 255, 0.15),
 		8px 8px 24px rgba(0, 0, 255, 0.1);
 }
 
 .tech-card-hover:hover::after {
 	opacity: 1;
 }
 
 .hero-gradient-text {
 	background: linear-gradient(135deg, #212121 0%, var(--primary-blue) 100%);
 	-webkit-background-clip: text;
 	-webkit-text-fill-color: transparent;
 	background-clip: text;
 }
 
 .hero-tagline {
 	position: relative;
 }
 
 .hero-tagline::before {
 	content: "";
 	position: absolute;
 	left: -30px;
 	top: 50%;
 	transform: translateY(-50%);
 	width: 20px;
 	height: 2px;
 	background: var(--primary-blue);
 }
