@keyframes fadeIn { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } } @keyframes pulse { 0%, 100% { box-shadow: 0 0 15px rgba(255, 111, 97, 0.5); } 50% { box-shadow: 0 0 25px rgba(255, 111, 97, 1); } } body { font-family: "Roboto", sans-serif; background-color: #121212; color: #e0e0e0; margin: 0; display: flex; justify-content: center; align-items: center; height: 100vh; text-align: center; animation: fadeIn 1s ease-in-out; } .error-container { max-width: 600px; padding: 50px; background-color: #1e1e1e; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.5); border-radius: 12px; animation: fadeIn 1.5s ease-in-out; } .error-title { font-size: 2.5em; color: #ff6f61; margin-bottom: 15px; animation: fadeIn 2s ease-in-out; } .error-message { margin-bottom: 25px; font-size: 1.2em; animation: fadeIn 2.5s ease-in-out; } .crossmark { width: 56px; height: 56px; border-radius: 50%; display: block; stroke-width: 2; stroke: #dc3545; stroke-miterlimit: 10; margin: 10% auto; box-shadow: inset 0px 0px 0px #dc3545; animation: fill 0.4s ease-in-out 0.4s forwards, scale 0.3s ease-in-out 0.9s both; } .crossmark__circle { stroke-dasharray: 166; stroke-dashoffset: 166; stroke-width: 2; stroke-miterlimit: 10; stroke: #dc3545; fill: none; animation: stroke 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards; } .crossmark__cross { transform-origin: 50% 50%; stroke-dasharray: 48; stroke-dashoffset: 48; stroke: #fff; animation: stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.7s forwards; } @keyframes stroke { 100% { stroke-dashoffset: 0; } } @keyframes scale { 0%, 100% { transform: none; } 50% { transform: scale3d(1.1, 1.1, 1); } } @keyframes fill { 100% { box-shadow: inset 0px 0px 0px 30px #dc3545; } } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }