* { margin: 0; padding: 0; box-sizing: border-box; } html, body { height: 100%; font-family: 'Poppins', sans-serif; background: linear-gradient(135deg, #74ebd5, #ACB6E5); display: flex; align-items: center; justify-content: center; } .card { background: white; padding: 2rem; border-radius: 12px; box-shadow: 0 8px 24px rgba(0,0,0,0.1); max-width: 480px; width: 90%; text-align: center; } .card h1 { font-size: 1.75rem; font-weight: 600; margin-bottom: 1.5rem; color: #333; } .semaphore { position: relative; width: 200px; height: 200px; margin: 0 auto 1.5rem; background: #e0f7fa; border-radius: 50%; box-shadow: inset 0 0 8px rgba(0,0,0,0.1); } .arm { position: absolute; bottom: 50%; left: 50%; width: 6px; height: 80px; background: #00796b; transform-origin: bottom center; animation: signal 9s steps(9) infinite; } .arm-left { transform: rotate(var(--l)); } .arm-right { transform: rotate(var(--r)); } @keyframes signal { 0% { --l: 135deg; --r: 270deg; } 11.11%{ --l: 45deg; --r: 180deg; } 22.22%{ --l: 225deg; --r: 90deg; } 33.33%{ --l: 225deg; --r: 180deg; } 44.44%{ --l: 270deg; --r: 0deg; } 55.56%{ --l: 225deg; --r: 270deg; } 66.67%{ --l: 270deg; --r: 315deg; } 77.78%{ --l: 90deg; --r: 270deg; } 88.89%{ --l: 45deg; --r: 180deg; } 100% { --l: 135deg; --r: 270deg; } } .question { font-size: 0.95rem; color: #555; } .semaphore { position: relative; } .semaphore::after { content: ""; position: absolute; top: -8px; left: -8px; right: -8px; bottom: -8px; border: 4px solid #ff5722; border-radius: 50%; opacity: 0; pointer-events: none; animation: cycle-indicator 9s linear infinite; } @keyframes cycle-indicator { 0%, 100% { opacity: 1; } 5%, 95% { opacity: 0; } }