.bomb-effect, .explosion-effect { position: fixed; left: 50%; top: 10%; transform: translate(-50%, -50%); width: 350px; z-index: 9999; opacity: 0; pointer-events: none; } .fade-in { animation: fadeIn 0.4s forwards; } .fade-out { animation: fadeOut 0.5s forwards; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } } #controls { text-align: center; margin-top: 20px; } #final-stop-button { font-size: 1.5rem; padding: 1rem 3rem; background-color: #dc3545; border-color: #dc3545; } #final-stop-container { margin-top: 2rem; text-align: center; } #grid-container { display: grid; grid-template-columns: repeat(10, 1fr); gap: 5px; max-width: 600px; margin: 20px auto; } #info-panel { text-align: center; margin-bottom: 20px; font-size: 18px; } #timer-display { font-size: 2.5rem; font-weight: bold; text-align: center; margin-bottom: 1.5rem; padding: 1.5rem; background-color: #fff3cd; border: 3px solid #ffc107; border-radius: 0.5rem; color: #856404; } /* CLOSE CALL DIALOG */ #close-dialog { border: 5px solid orange; padding: 2rem; background-color: yellow; text-align: center; } #close-dialog::backdrop { background-color: rgba(0, 0, 0, 0.7); } .close-warning { font-size: 3rem; font-weight: bold; color: orange; animation: flash-close 0.6s ease-in-out infinite; margin-bottom: 10px; } .close-message { font-size: 1.5rem; font-weight: bold; color: #856404; } #waiting-dialog { border: 5px solid red; padding: 2rem; background-color: yellow; text-align: center; } #waiting-dialog::backdrop { background-color: rgba(0, 0, 0, 0.7); } .alert { padding: 1.5rem; margin: 1rem 0; border-radius: 0.5rem; border: 2px solid; } .alert-info { background-color: #d1ecf1; border-color: #17a2b8; color: #0c5460; } .alert-success { background-color: #d4edda; border-color: #28a745; color: #155724; } .fancy-mode #game-container { background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%); padding: 30px; border-radius: 15px; box-shadow: 0 0 30px rgba(0, 0, 0, 0.3); } .fancy-mode #info-panel { color: white; font-size: 22px; text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); } .fancy-mode .grid-box { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border: 3px solid #fff; box-shadow: 0 0 10px rgba(102, 126, 234, 0.5); animation: pulse-border 1s infinite; color: white; font-weight: bold; } .fancy-mode .grid-box.collected { background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%); border-color: #ff0080; box-shadow: 0 0 20px rgba(245, 87, 108, 0.8); animation: pulse-collected 0.5s; } .fancy-mode .grid-box.lucky-number { background-color: gold; border: 3px solid #1e7e34; font-weight: bold; color: black; animation: flash-green 1s ease-in-out infinite; } .fancy-mode .grid-box.lucky-number.collected { background-color: #218838; border: 3px solid #1e7e34; color: white; animation: flash-green 1s ease-in-out infinite; } .grid-box { width: 50px; height: 50px; border: 2px solid #333; display: flex; align-items: center; justify-content: center; cursor: pointer; background-color: #e0e0e0; font-size: 12px; transition: all 0.3s; } .grid-box.bomb { background-color: #f44336; color: white; font-size: 24px; animation: explode 0.5s; } .grid-box.bomb-protected { background-color: #28a745; color: white; font-size: 2rem; animation: pulse-border 1s ease-in-out; } .grid-box.collected { background-color: #4CAF50; color: white; border-color: #45a049; } .grid-box.lucky-number { background-color: gold; border: 3px solid #1e7e34; font-weight: bold; color: black; animation: flash-green 1s ease-in-out infinite; } .grid-box:hover { background-color: #d0d0d0; transform: scale(1.05); } .hidden { display: none; } .waiting-text { font-size: 3rem; font-weight: bold; color: red; margin: 0; animation: flash-waiting 0.5s ease-in-out infinite; } @keyframes explode { 0% { transform: scale(1); } 50% { transform: scale(1.5); } 100% { transform: scale(1); } } @keyframes flash-green { 0%, 100% { background-color: #28a745; border-color: #1e7e34; } 50% { background-color: #5cb85c; border-color: #4cae4c; } } @keyframes flash-waiting { 0%, 100% { opacity: 1; } 50% { opacity: 0.3; } } @keyframes pulse-border { 0%, 100% { border-color: #fff; } 50% { border-color: #ffd700; } } @keyframes pulse-collected { 0% { transform: scale(1); } 50% { transform: scale(1.2); } 100% { transform: scale(1); } } dialog { border: none; border-radius: 10px; padding: 30px; box-shadow: 0 0 20px rgba(0, 0, 0, 0.3); } dialog h3 { margin-top: 0; color: #f44336; } dialog::backdrop { background: rgba(0, 0, 0, 0.7); } /* =============================================== */ /* General */ /* =============================================== */ /* Paragraphs */ p { font-size: 1.05em; } /* Form labels */ .otree-form label { font-size: 1.1em; } /* Radio / checkbox text */ .otree-form .controls { font-size: 1.1em; } /* Buttons */ .btn { font-size: 1.1em; padding: 10px 18px; } /* =============================================== */ /* Results */ /* =============================================== */ .table { width: 100%; margin-bottom: 0; } th, td { text-align: center; } .card-info { padding: 15px; box-shadow: 0 1px 2px rgba(0,0,0,0.15); margin-top: 15px; margin-bottom: 15px; } /* Instructions / Consent style */ .consent { max-width: 900px; margin: auto; } .consent p, .consent li { font-size: 22px !important; line-height: 1.7; } .consent b { font-size: 23px; } /* Headings */ .consent h1, .consent h2, .consent h3 { font-size: 24px; } /* Increase overall text size */ body { font-size: 18px; /* try 18–20px */ line-height: 1.6; }