 :root {
     --primary: hsl(215, 80%, 35%);
     --primary-light: hsl(215, 80%, 45%);
     --accent: hsl(175, 60%, 40%);
     --background: hsl(210, 20%, 98%);
     --foreground: hsl(215, 25%, 15%);
     --muted: hsl(215, 15%, 45%);
     --card: hsl(0, 0%, 100%);
 }

 * {
     margin: 0;
     padding: 0;
     box-sizing: border-box;
 }

 body {
     font-family: 'Inter', sans-serif;
     background: var(--background);
     min-height: 100vh;
     display: flex;
     align-items: center;
     justify-content: center;
     overflow: hidden;
     position: relative;
 }

 /* Animated Background */
 .bg-pattern {
     position: fixed;
     inset: 0;
     overflow: hidden;
     z-index: 0;
 }

 .bg-pattern::before {
     content: '';
     position: absolute;
     top: -50%;
     left: -50%;
     width: 200%;
     height: 200%;
     background: 
         radial-gradient(circle at 20% 80%, hsla(215, 80%, 35%, 0.08) 0%, transparent 50%),
         radial-gradient(circle at 80% 20%, hsla(175, 60%, 40%, 0.08) 0%, transparent 50%),
         radial-gradient(circle at 40% 40%, hsla(215, 80%, 45%, 0.05) 0%, transparent 40%);
     animation: bgFloat 20s ease-in-out infinite;
 }

 @keyframes bgFloat {
     0%, 100% { transform: translate(0, 0) rotate(0deg); }
     33% { transform: translate(2%, 2%) rotate(1deg); }
     66% { transform: translate(-1%, 1%) rotate(-1deg); }
 }

 /* Floating Shapes */
 .floating-shapes {
     position: fixed;
     inset: 0;
     pointer-events: none;
     z-index: 1;
 }

 .shape {
     position: absolute;
     border-radius: 50%;
     opacity: 0.1;
 }

 .shape-1 {
     width: 300px;
     height: 300px;
     background: linear-gradient(135deg, var(--primary), var(--accent));
     top: -100px;
     right: -100px;
     animation: float1 8s ease-in-out infinite;
 }

 .shape-2 {
     width: 200px;
     height: 200px;
     background: var(--accent);
     bottom: -50px;
     left: -50px;
     animation: float2 10s ease-in-out infinite;
 }

 .shape-3 {
     width: 150px;
     height: 150px;
     background: var(--primary);
     top: 50%;
     left: 10%;
     animation: float3 12s ease-in-out infinite;
 }

 @keyframes float1 {
     0%, 100% { transform: translate(0, 0) scale(1); }
     50% { transform: translate(-20px, 20px) scale(1.05); }
 }

 @keyframes float2 {
     0%, 100% { transform: translate(0, 0) rotate(0deg); }
     50% { transform: translate(30px, -20px) rotate(10deg); }
 }

 @keyframes float3 {
     0%, 100% { transform: translate(0, 0); }
     50% { transform: translate(15px, -25px); }
 }

 /* Main Container */
 .container {
     position: relative;
     z-index: 10;
     text-align: center;
     padding: 2rem;
     max-width: 600px;
 }

 /* 404 Number */
 .error-code {
     font-family: 'Plus Jakarta Sans', sans-serif;
     font-size: clamp(120px, 25vw, 200px);
     font-weight: 800;
     background: linear-gradient(135deg, var(--primary) 0%, var(--primary-light) 50%, var(--accent) 100%);
     -webkit-background-clip: text;
     -webkit-text-fill-color: transparent;
     background-clip: text;
     line-height: 1;
     margin-bottom: 1rem;
     position: relative;
     animation: pulse 3s ease-in-out infinite;
 }

 .error-code::after {
     content: '404';
     position: absolute;
     left: 50%;
     top: 50%;
     transform: translate(-50%, -50%);
     font-size: clamp(120px, 25vw, 200px);
     background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%);
     -webkit-background-clip: text;
     -webkit-text-fill-color: transparent;
     background-clip: text;
     opacity: 0.1;
     filter: blur(20px);
     z-index: -1;
 }

 @keyframes pulse {
     0%, 100% { transform: scale(1); }
     50% { transform: scale(1.02); }
 }

 /* Icon */
 .icon-container {
     width: 80px;
     height: 80px;
     margin: 0 auto 1.5rem;
     background: linear-gradient(135deg, var(--primary), var(--accent));
     border-radius: 50%;
     display: flex;
     align-items: center;
     justify-content: center;
     animation: bounce 2s ease-in-out infinite;
     box-shadow: 0 10px 40px hsla(215, 80%, 35%, 0.3);
 }

 .icon-container svg {
     width: 40px;
     height: 40px;
     color: white;
 }

 @keyframes bounce {
     0%, 100% { transform: translateY(0); }
     50% { transform: translateY(-10px); }
 }

 /* Text Content */
 .title {
     font-family: 'Plus Jakarta Sans', sans-serif;
     font-size: clamp(1.5rem, 4vw, 2rem);
     font-weight: 700;
     color: var(--foreground);
     margin-bottom: 0.75rem;
 }

 .description {
     font-size: 1rem;
     color: var(--muted);
     margin-bottom: 2rem;
     line-height: 1.6;
 }

 /* Buttons */
 .buttons {
     display: flex;
     gap: 1rem;
     justify-content: center;
     flex-wrap: wrap;
 }

 .btn {
     display: inline-flex;
     align-items: center;
     gap: 0.5rem;
     padding: 0.875rem 1.75rem;
     font-family: 'Inter', sans-serif;
     font-size: 0.95rem;
     font-weight: 600;
     border-radius: 12px;
     text-decoration: none;
     transition: all 0.3s ease;
     cursor: pointer;
     border: none;
 }

 .btn-primary {
     background: linear-gradient(135deg, var(--primary), var(--primary-light));
     color: white;
     box-shadow: 0 4px 20px hsla(215, 80%, 35%, 0.35);
 }

 .btn-primary:hover {
     transform: translateY(-2px);
     box-shadow: 0 8px 30px hsla(215, 80%, 35%, 0.45);
 }

 .btn-secondary {
     background: var(--card);
     color: var(--foreground);
     border: 2px solid hsla(215, 20%, 88%, 1);
     box-shadow: 0 2px 10px hsla(215, 30%, 20%, 0.05);
 }

 .btn-secondary:hover {
     border-color: var(--primary);
     color: var(--primary);
     transform: translateY(-2px);
 }

 .btn svg {
     width: 18px;
     height: 18px;
 }

 /* Card */
 .card {
     background: var(--card);
     border-radius: 20px;
     padding: 3rem 2rem;
     box-shadow: 
         0 4px 20px hsla(215, 30%, 20%, 0.08),
         0 1px 3px hsla(215, 30%, 20%, 0.05);
     border: 1px solid hsla(215, 20%, 88%, 0.5);
     animation: slideUp 0.6s ease-out;
 }

 @keyframes slideUp {
     from {
         opacity: 0;
         transform: translateY(30px);
     }
     to {
         opacity: 1;
         transform: translateY(0);
     }
 }

 /* Footer */
 .footer {
     margin-top: 2rem;
     padding-top: 1.5rem;
     border-top: 1px solid hsla(215, 20%, 88%, 0.5);
 }

 .footer-brand {
     display: flex;
     align-items: center;
     justify-content: center;
     gap: 0.75rem;
     margin-bottom: 0.5rem;
 }

 .footer-logo {
     width: 32px;
     height: 32px;
     background: linear-gradient(135deg, var(--primary), var(--accent));
     border-radius: 8px;
     display: flex;
     align-items: center;
     justify-content: center;
 }

 .footer-logo svg {
     width: 18px;
     height: 18px;
     color: white;
 }

 .footer-text {
     font-family: 'Plus Jakarta Sans', sans-serif;
     font-weight: 600;
     font-size: 0.9rem;
     color: var(--foreground);
 }

 .copyright {
     font-size: 0.8rem;
     color: var(--muted);
 }

 /* Responsive */
 @media (max-width: 480px) {
     .container {
         padding: 1rem;
     }

     .card {
         padding: 2rem 1.5rem;
     }

     .buttons {
         flex-direction: column;
     }

     .btn {
         width: 100%;
         justify-content: center;
     }
 }