<!DOCTYPE html>
<html lang="id">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Akses Terbatas | Jasa Printer Pro</title>
    <link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;600;700;800&display=swap" rel="stylesheet">
    <link rel="stylesheet" href="https://cdn.lineicons.com/4.0/lineicons.css">
    <style>
        :root {
            --primary: #2C6EEB;
            --danger: #EF4444;
            --navy: #050A15;
            --navy-deep: #02060E;
            --glass: rgba(255, 255, 255, 0.03);
            --glass-border: rgba(255, 255, 255, 0.08);
        }

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

        body {
            font-family: 'Plus Jakarta Sans', sans-serif;
            background-color: var(--navy-deep);
            background-image: 
                radial-gradient(circle at 20% 30%, rgba(44, 110, 235, 0.15) 0%, transparent 40%),
                radial-gradient(circle at 80% 70%, rgba(239, 68, 68, 0.1) 0%, transparent 40%);
            color: white;
            height: 100vh;
            display: flex;
            align-items: center;
            justify-content: center;
            overflow: hidden;
        }

        /* Particles Background */
        .bg-lines {
            position: absolute;
            inset: 0;
            background-image: linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px),
                              linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px);
            background-size: 50px 50px;
            z-index: 1;
        }

        .error-wrapper {
            position: relative;
            z-index: 10;
            perspective: 1000px;
        }

        .error-card {
            width: 460px;
            padding: 60px 40px;
            background: var(--glass);
            backdrop-filter: blur(30px);
            -webkit-backdrop-filter: blur(30px);
            border: 1px solid var(--glass-border);
            border-radius: 40px;
            text-align: center;
            box-shadow: 0 40px 100px rgba(0,0,0,0.5);
            transform-style: preserve-3d;
            animation: cardEntrance 1s cubic-bezier(0.16, 1, 0.3, 1);
            transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
        }

        .error-card:hover {
            transform: rotateX(5deg) rotateY(-5deg);
        }

        @keyframes cardEntrance {
            from { transform: translateY(50px) rotateX(-20deg); opacity: 0; }
            to { transform: translateY(0) rotateX(0); opacity: 1; }
        }

        .icon-box {
            position: relative;
            width: 120px;
            height: 120px;
            margin: 0 auto 40px;
            transform: translateZ(50px);
        }

        .icon-main {
            width: 100%;
            height: 100%;
            background: rgba(239, 68, 68, 0.1);
            border: 2px solid rgba(239, 68, 68, 0.3);
            border-radius: 35px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 50px;
            color: var(--danger);
            position: relative;
            z-index: 2;
            animation: iconFloat 4s ease-in-out infinite;
        }

        .icon-glow {
            position: absolute;
            inset: -10px;
            background: var(--danger);
            filter: blur(30px);
            opacity: 0.15;
            border-radius: 50%;
            z-index: 1;
            animation: glowPulse 2s ease-in-out infinite alternate;
        }

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

        @keyframes glowPulse {
            from { transform: scale(0.8); opacity: 0.1; }
            to { transform: scale(1.2); opacity: 0.25; }
        }

        h1 {
            font-size: 40px;
            font-weight: 800;
            margin-bottom: 20px;
            letter-spacing: -2px;
            background: linear-gradient(135deg, white 0%, rgba(255,255,255,0.5) 100%);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            transform: translateZ(30px);
        }

        p {
            font-size: 16px;
            color: rgba(255, 255, 255, 0.5);
            line-height: 1.7;
            margin-bottom: 50px;
            transform: translateZ(20px);
        }

        .actions {
            transform: translateZ(40px);
        }

        .btn-premium {
            position: relative;
            display: inline-flex;
            align-items: center;
            gap: 15px;
            background: linear-gradient(135deg, #2C6EEB 0%, #1A56D1 100%);
            padding: 20px 45px;
            border-radius: 20px;
            color: white;
            text-decoration: none;
            font-weight: 800;
            font-size: 15px;
            box-shadow: 0 20px 40px rgba(44, 110, 235, 0.3);
            transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
            overflow: hidden;
        }

        .btn-premium:hover {
            transform: translateY(-8px);
            box-shadow: 0 30px 60px rgba(44, 110, 235, 0.5);
        }

        .btn-premium::after {
            content: "";
            position: absolute;
            top: -50%;
            left: -50%;
            width: 200%;
            height: 200%;
            background: linear-gradient(45deg, transparent, rgba(255,255,255,0.2), transparent);
            transform: rotate(45deg);
            transition: 0.6s;
            opacity: 0;
        }

        .btn-premium:hover::after {
            left: 100%;
            opacity: 1;
        }

        .back-text {
            display: block;
            margin-top: 25px;
            font-size: 13px;
            color: rgba(255,255,255,0.3);
            font-weight: 600;
            letter-spacing: 2px;
            text-transform: uppercase;
        }

        /* Responsive */
        @media (max-width: 500px) {
            .error-card { width: 90vw; padding: 40px 20px; }
            h1 { font-size: 30px; }
        }
    </style>
</head>
<body>
    <div class="bg-lines"></div>
    
    <div class="error-wrapper">
        <div class="error-card">
            <div class="icon-box">
                <div class="icon-glow"></div>
                <div class="icon-main">
                    <i class="lni lni-lock-alt"></i>
                </div>
            </div>

            <h1>Akses Terbatas</h1>
            <p>Sistem mendeteksi upaya akses ke area terlarang. Halaman ini hanya diizinkan untuk otoritas administrator.</p>

            <div class="actions">
                <a href="/" class="btn-premium">
                    <span>Kembali ke Beranda</span>
                    <i class="lni lni-arrow-right"></i>
                </a>
            </div>

            <span class="back-text">Protected System — JP v2.0</span>
        </div>
    </div>

    <script>
        // Simple 3D Tilt Effect
        const card = document.querySelector('.error-card');
        document.addEventListener('mousemove', (e) => {
            const x = (window.innerWidth / 2 - e.pageX) / 25;
            const y = (window.innerHeight / 2 - e.pageY) / 25;
            card.style.transform = `rotateY(${x}deg) rotateX(${y}deg)`;
        });
    </script>
</body>
</html>
