  * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            background: linear-gradient(135deg, #FF7F3F 0%, #FFB84D 100%);
            min-height: 100vh;
            display: flex;
            justify-content: center;
            align-items: center;
            overflow: hidden;
        }

        .container {
            text-align: center;
            background: rgba(255, 255, 255, 0.95);
            padding: 60px 50px;
            border-radius: 30px;
            box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
            z-index: 10;
        }

        .title {
            font-size: 2.5rem;
            color: #333;
            margin-bottom: 15px;
            font-weight: 700;
            background: linear-gradient(135deg, #FF7F3F 0%, #FFB84D 100%);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
        }

        .subtitle {
            font-size: 1.1rem;
            color: #666;
            margin-bottom: 40px;
            font-weight: 300;
        }

        .inputs-container {
            display: flex;
            justify-content: center;
            gap: 20px;
            margin-bottom: 40px;
            flex-wrap: wrap;
        }

        .digit-input {
            width: 80px;
            height: 80px;
            font-size: 2.5rem;
            font-weight: bold;
            text-align: center;
            border: 3px solid #FF7F3F;
            border-radius: 15px;
            transition: all 0.3s ease;
            color: #FF7F3F;
            background: #FFF8F0;
            cursor: text;
        }

        .digit-input:focus {
            outline: none;
            border-color: #FFB84D;
            box-shadow: 0 0 20px rgba(255, 184, 77, 0.4);
            transform: scale(1.05);
            background: white;
        }

        .digit-input:hover {
            border-color: #FFB84D;
            box-shadow: 0 0 10px rgba(255, 184, 77, 0.2);
        }

        .digit-input.filled {
            background: linear-gradient(135deg, #FF7F3F 0%, #FFB84D 100%);
            color: white;
            border-color: transparent;
        }

        .shake-inputs .digit-input {
            border-color: #d32f2f;
            box-shadow: 0 0 15px rgba(211, 47, 47, 0.4);
        }

        .instruction {
            font-size: 0.95rem;
            color: #999;
            margin-top: 20px;
        }

        /* Error Message */
        .error-message {
            font-size: 1.1rem;
            color: #d32f2f;
            margin-top: 20px;
            padding: 15px 20px;
            background: #ffebee;
            border-radius: 10px;
            border: 2px solid #d32f2f;
            display: none;
            align-items: center;
            gap: 10px;
            animation: slideIn 0.3s ease-out;
            font-weight: 600;
        }

        .error-message.show-error {
            display: flex;
        }

        .error-icon {
            font-size: 1.5rem;
            animation: pulse-error 0.5s ease-in-out;
        }

        .error-text {
            margin: 0;
        }

        @keyframes slideIn {
            0% {
                opacity: 0;
                transform: translateY(-10px);
            }
            100% {
                opacity: 1;
                transform: translateY(0);
            }
        }

        @keyframes pulse-error {
            0%, 100% {
                transform: scale(1);
            }
            50% {
                transform: scale(1.2);
            }
        }

        .shake-inputs {
            animation: shake-inputs 0.5s ease-in-out;
        }

        @keyframes shake-inputs {
            0%, 100% { transform: translateX(0); }
            10% { transform: translateX(-8px); }
            20% { transform: translateX(8px); }
            30% { transform: translateX(-8px); }
            40% { transform: translateX(8px); }
            50% { transform: translateX(-5px); }
            60% { transform: translateX(5px); }
            70% { transform: translateX(-2px); }
            80% { transform: translateX(2px); }
            90% { transform: translateX(0); }
        }

        /* Container Transformed State */
        .container.won {
            animation: containerExpand 0.8s cubic-bezier(0.34, 1.56, 0.64, 1), giantPulse 0.6s ease-out 0.8s;
            background: white;
            padding: 80px 60px;
            min-width: 60%;
        }

        .container.won .inputs-container,
        .container.won .subtitle,
        .container.won .instruction {
            display: none;
        }

        .container.won .title {
            font-size: 3.5rem;
            margin-bottom: 20px;
            animation: epicBounce 1.2s cubic-bezier(0.68, -0.55, 0.265, 1.55) 0.3s, textGlow 1s ease-out 0.3s;
        }

        .win-message {
            font-size: 1.8rem;
            color: #333;
            margin-bottom: 30px;
            font-weight: 600;
            display: none;
        }

        .container.won .win-message {
            display: block;
        }

        .win-number {
            font-size: 2.5rem;
            font-weight: bold;
            color: #FF7F3F;
            background: #FFF8F0;
            padding: 20px 40px;
            border-radius: 20px;
            margin: 30px 0;
            font-family: 'Courier New', monospace;
            letter-spacing: 10px;
            display: none;
        }

        .container.won .win-number {
            display: block;
        }

        .win-text {
            font-size: 1.2rem;
            color: #666;
            margin: 20px 0;
            display: none;
        }

        .container.won .win-text {
            display: block;
        }

        .win-button {
            margin-top: 30px;
            padding: 15px 40px;
            font-size: 1.1rem;
            background: linear-gradient(135deg, #FF7F3F 0%, #FFB84D 100%);
            color: white;
            border: none;
            border-radius: 20px;
            cursor: pointer;
            font-weight: 600;
            transition: all 0.3s ease;
            box-shadow: 0 10px 30px rgba(255, 127, 63, 0.3);
            display: none;
        }

        .container.won .win-button {
            display: inline-block;
        }

        .win-button:hover {
            transform: translateY(-3px);
            box-shadow: 0 15px 40px rgba(255, 127, 63, 0.4);
        }

        .win-button:active {
            transform: translateY(-1px);
        }

        @keyframes containerExpand {
            0% {
                transform: scale(1) rotate(0deg);
                opacity: 1;
            }
            50% {
                transform: scale(1.05) rotate(2deg);
            }
            100% {
                transform: scale(1) rotate(0deg);
                opacity: 1;
            }
        }

        /* Modal Styles */
        .modal {
            display: none;
        }

        .modal.show {
            display: none;
        }

        @keyframes fadeInDark {
            0% {
                opacity: 0;
                background: rgba(0, 0, 0, 0);
            }
            50% {
                background: rgba(0, 0, 0, 0.3);
            }
            100% {
                opacity: 1;
                background: rgba(0, 0, 0, 0.7);
            }
        }

        .modal-content {
            background: white;
            padding: 80px 60px;
            border-radius: 40px;
            text-align: center;
            position: relative;
            z-index: 1001;
            animation: epicPopIn 1s cubic-bezier(0.34, 1.56, 0.64, 1), giantPulse 0.6s ease-out 1s;
            box-shadow: 0 50px 100px rgba(0, 0, 0, 0.3);
        }

        @keyframes epicPopIn {
            0% {
                transform: scale(0) rotate(-45deg);
                opacity: 0;
                filter: blur(10px);
            }
            50% {
                transform: scale(1.15) rotate(5deg);
                filter: blur(0);
            }
            100% {
                transform: scale(1) rotate(0deg);
                opacity: 1;
                filter: blur(0);
            }
        }

        @keyframes giantPulse {
            0% {
                box-shadow: 0 50px 100px rgba(0, 0, 0, 0.3);
            }
            50% {
                box-shadow: 0 20px 60px rgba(255, 127, 63, 0.5), 0 0 50px rgba(255, 127, 63, 0.3);
            }
            100% {
                box-shadow: 0 50px 100px rgba(0, 0, 0, 0.3);
            }
        }

        .modal-title {
            font-size: 3.5rem;
            font-weight: 900;
            margin-bottom: 20px;
            background: linear-gradient(135deg, #FF7F3F 0%, #FFB84D 100%);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            animation: epicBounce 1.2s cubic-bezier(0.68, -0.55, 0.265, 1.55) 0.3s, textGlow 1s ease-out 0.3s;
        }

        @keyframes epicBounce {
            0% {
                transform: translateY(-100px) scale(0.5);
                opacity: 0;
            }
            50% {
                transform: translateY(20px) scale(1.1);
            }
            85% {
                transform: translateY(-5px) scale(0.95);
            }
            100% {
                transform: translateY(0) scale(1);
                opacity: 1;
            }
        }

        @keyframes textGlow {
            0% {
                text-shadow: 0 0 10px rgba(255, 127, 63, 0.8), 0 0 20px rgba(255, 184, 77, 0.6);
                filter: brightness(1.3);
            }
            100% {
                text-shadow: none;
                filter: brightness(1);
            }
        }

        .modal-subtitle {
            font-size: 1.8rem;
            color: #333;
            margin-bottom: 30px;
            font-weight: 600;
        }

        .number-display {
            font-size: 2.5rem;
            font-weight: bold;
            color: #FF7F3F;
            background: #FFF8F0;
            padding: 20px 40px;
            border-radius: 20px;
            margin: 30px 0;
            font-family: 'Courier New', monospace;
            letter-spacing: 10px;
        }

        .modal-button {
            margin-top: 30px;
            padding: 15px 40px;
            font-size: 1.1rem;
            background: linear-gradient(135deg, #FF7F3F 0%, #FFB84D 100%);
            color: white;
            border: none;
            border-radius: 20px;
            cursor: pointer;
            font-weight: 600;
            transition: all 0.3s ease;
            box-shadow: 0 10px 30px rgba(255, 127, 63, 0.3);
        }

        .modal-button:hover {
            transform: translateY(-3px);
            box-shadow: 0 15px 40px rgba(255, 127, 63, 0.4);
        }

        .modal-button:active {
            transform: translateY(-1px);
        }

        /* Confetti */
        .confetti {
            position: fixed;
            width: 10px;
            height: 10px;
            background: #FF7F3F;
            pointer-events: none;
            border-radius: 50%;
            filter: brightness(1.3) drop-shadow(0 0 3px rgba(255, 127, 63, 0.8));
            box-shadow: 0 0 8px rgba(255, 127, 63, 0.6);
            z-index: 500000;
        }

        /* Flash Effect */
        .flash {
            position: fixed;
            top: 50%;
            left: 50%;
            width: 100px;
            height: 100px;
            background: radial-gradient(circle, rgba(255, 255, 255, 1) 0%, rgba(255, 200, 100, 0.6) 50%, transparent 100%);
            transform: translate(-50%, -50%);
            border-radius: 50%;
            animation: flashBurst 0.8s ease-out forwards;
            pointer-events: none;
        }

        @keyframes flashBurst {
            0% {
                width: 100px;
                height: 100px;
                opacity: 1;
                filter: brightness(2);
            }
            100% {
                width: 800px;
                height: 800px;
                opacity: 0;
                filter: brightness(1);
            }
        }

        /* Ring Effect */
        .ring {
            position: fixed;
            top: 50%;
            left: 50%;
            border: 3px solid #FF7F3F;
            border-radius: 50%;
            transform: translate(-50%, -50%);
            pointer-events: none;
            animation: ringExpand 1s ease-out forwards;
        }

        @keyframes ringExpand {
            0% {
                width: 50px;
                height: 50px;
                opacity: 1;
                border-color: #FFB84D;
            }
            100% {
                width: 400px;
                height: 400px;
                opacity: 0;
                border-color: #FF7F3F;
            }
        }

        /* Particles */
        .particle {
            position: fixed;
            pointer-events: none;
            font-size: 2rem;
            animation: particleFloat 2s ease-out forwards;
        }

        @keyframes particleFloat {
            0% {
                opacity: 1;
                transform: translate(0, 0) scale(1);
            }
            100% {
                opacity: 0;
                transform: translate(var(--tx), var(--ty)) scale(0);
            }
        }

        /* Shake effect */
        @keyframes shake {
            0%, 100% { transform: translateX(0) translateY(0); }
            10% { transform: translateX(-15px) translateY(-5px); }
            20% { transform: translateX(15px) translateY(5px); }
            30% { transform: translateX(-15px) translateY(-5px); }
            40% { transform: translateX(15px) translateY(5px); }
            50% { transform: translateX(-10px) translateY(0); }
            60% { transform: translateX(10px) translateY(0); }
            70% { transform: translateX(-5px) translateY(0); }
            80% { transform: translateX(5px) translateY(0); }
            90% { transform: translateX(-2px) translateY(0); }
        }

        .shake {
            animation: shake 0.3s ease-in-out;
        }

        .stars {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            width: 200px;
            height: 200px;
            pointer-events: none;
        }

        .star {
            position: absolute;
            font-size: 3rem;
            animation: starSpread 0.8s ease-out forwards;
        }

        @keyframes starSpread {
            0% {
                opacity: 1;
                transform: translate(0, 0) scale(1);
            }
            100% {
                opacity: 0;
                transform: translate(var(--tx), var(--ty)) scale(0.5);
            }
        }

        .glow {
            position: absolute;
            top: 50%;
            left: 50%;
            width: 400px;
            height: 400px;
            background: radial-gradient(circle, rgba(255, 127, 63, 0.6) 0%, rgba(255, 184, 77, 0.3) 40%, transparent 70%);
            border-radius: 50%;
            animation: superGlowPulse 1.5s ease-out forwards, glowExpand 1s ease-out forwards;
            pointer-events: none;
            box-shadow: 0 0 60px rgba(255, 127, 63, 0.5);
        }

        @keyframes superGlowPulse {
            0% {
                transform: translate(-50%, -50%) scale(0);
                opacity: 1;
                filter: brightness(2);
            }
            50% {
                opacity: 0.8;
                filter: brightness(1.5);
            }
            100% {
                transform: translate(-50%, -50%) scale(1);
                opacity: 0;
                filter: brightness(1);
                visibility: hidden;
            }
        }

        @keyframes glowExpand {
            0% {
                box-shadow: 0 0 0 rgba(255, 127, 63, 0.8);
            }
            50% {
                box-shadow: 0 0 60px rgba(255, 127, 63, 0.6);
            }
            100% {
                box-shadow: 0 0 100px rgba(255, 127, 63, 0);
            }
        }