/* Gunakan style dasar dari 2.css */ body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif; background: linear-gradient(-45deg, #0c0c0c, #1a1a2e, #16213e, #0f172a); background-size: 400% 400%; animation: gradient 6s ease infinite; min-height: 100vh; color: #e2e8f0; overflow-x: hidden; } @keyframes gradient { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } /* Tambahan efek kaca dan neon sesuai 2.css */ .glass { background: rgba(255, 255, 255, 0.05); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); position: relative; } .neon-border { box-shadow: 0 0 20px rgba(102, 126, 234, 0.3); } /* Tambahan animasi glow jika dibutuhkan */ .animate-glow { animation: glow 2s ease-in-out infinite alternate; } @keyframes glow { from { box-shadow: 0 0 10px rgba(102, 126, 234, 0.5); } to { box-shadow: 0 0 20px rgba(102, 126, 234, 0.8), 0 0 30px rgba(102, 126, 234, 0.5); } } /* Stepper styling (jika kamu pakai multi-step form) */ .step-container { display: none; } .step-container.active { display: block; } .step-indicator { transition: all 0.3s ease; } .step-indicator.active { background-color: #6b7280; color: white; } .step-indicator.completed { background-color: #10b981; color: white; } /* Spinner loader */ .spinner { border: 2px solid #f3f3f3; border-top: 2px solid #6b7280; border-radius: 50%; width: 20px; height: 20px; animation: spin 1s linear infinite; display: inline-block; margin-right: 8px; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* Tombol loading state */ .loading #resetButton, .loading #checkButton, .loading #sendButton { pointer-events: none; opacity: 0.7; } /* Success checkmark (animasi centang) */ .success-checkmark { width: 50px; height: 50px; border-radius: 50%; display: block; stroke-width: 2; stroke: #10b981; stroke-miterlimit: 10; margin: 10px auto; box-shadow: inset 0px 0px 0px #10b981; animation: fill .4s ease-in-out .4s forwards, scale .3s ease-in-out .9s both; } .success-checkmark__circle { stroke-dasharray: 166; stroke-dashoffset: 166; stroke-width: 2; stroke-miterlimit: 10; stroke: #10b981; fill: none; animation: stroke 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards; } .success-checkmark__check { transform-origin: 50% 50%; stroke-dasharray: 48; stroke-dashoffset: 48; animation: stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.8s 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 #10b981; } }