Spaces:
Sleeping
Sleeping
| * { | |
| box-sizing: border-box; | |
| margin: 0; | |
| padding: 0; | |
| } | |
| body { | |
| font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; | |
| line-height: 1.6; | |
| color: #333; | |
| background-color: #f5f5f5; | |
| } | |
| .container { | |
| max-width: 1000px; | |
| margin: 0 auto; | |
| padding: 20px; | |
| } | |
| h1 { | |
| text-align: center; | |
| margin-bottom: 30px; | |
| color: #2c3e50; | |
| } | |
| .benchmark-stats { | |
| display: flex; | |
| justify-content: center; | |
| gap: 30px; | |
| margin-bottom: 30px; | |
| padding: 15px; | |
| background-color: #fff; | |
| border-radius: 8px; | |
| box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); | |
| } | |
| .benchmark-stats span { | |
| font-weight: 600; | |
| } | |
| .puzzle-container { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 20px; | |
| background-color: white; | |
| padding: 20px; | |
| border-radius: 8px; | |
| box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); | |
| } | |
| .puzzle-image-wrapper { | |
| display: flex; | |
| justify-content: center; | |
| width: 100%; | |
| } | |
| .puzzle-image-container { | |
| text-align: center; | |
| position: relative; | |
| display: inline-block; | |
| margin: 0 auto 15px auto; | |
| max-width: 100%; | |
| } | |
| #puzzle-image { | |
| max-width: 100%; | |
| max-height: 500px; | |
| border-radius: 4px; | |
| display: block; | |
| } | |
| #puzzle-image.clickable { | |
| cursor: pointer; | |
| border: 2px solid #3498db; | |
| } | |
| .puzzle-question { | |
| text-align: center; | |
| } | |
| .puzzle-question h3 { | |
| margin-bottom: 15px; | |
| color: #2c3e50; | |
| font-size: 18px; | |
| } | |
| .input-group { | |
| display: flex; | |
| justify-content: center; | |
| gap: 10px; | |
| margin-bottom: 15px; | |
| } | |
| #user-answer { | |
| padding: 10px; | |
| border: 1px solid #ddd; | |
| border-radius: 4px; | |
| font-size: 16px; | |
| width: 200px; | |
| } | |
| #submit-answer { | |
| padding: 10px 20px; | |
| background-color: #2ecc71; | |
| color: white; | |
| border: none; | |
| border-radius: 4px; | |
| cursor: pointer; | |
| font-size: 16px; | |
| transition: background-color 0.3s; | |
| } | |
| #submit-answer:hover { | |
| background-color: #27ae60; | |
| } | |
| #submit-answer:disabled { | |
| background-color: #95a5a6; | |
| cursor: not-allowed; | |
| } | |
| .result-message { | |
| font-weight: 600; | |
| margin-top: 10px; | |
| min-height: 24px; | |
| } | |
| .result-message.correct { | |
| color: #2ecc71; | |
| } | |
| .result-message.incorrect { | |
| color: #e74c3c; | |
| } | |
| .result-message.instruction { | |
| color: #3498db; | |
| } | |
| /* Click marker styles */ | |
| .click-marker { | |
| position: absolute; | |
| width: 20px; | |
| height: 20px; | |
| border-radius: 50%; | |
| background-color: rgba(231, 76, 60, 0.7); | |
| border: 2px solid #e74c3c; | |
| transform: translate(-50%, -50%); | |
| pointer-events: none; | |
| /* Add animation */ | |
| animation: pulse 1s infinite alternate; | |
| z-index: 10; | |
| } | |
| @keyframes pulse { | |
| from { | |
| transform: translate(-50%, -50%) scale(1); | |
| box-shadow: 0 0 0 0 rgba(231, 76, 60, 0.4); | |
| } | |
| to { | |
| transform: translate(-50%, -50%) scale(1.2); | |
| box-shadow: 0 0 0 10px rgba(231, 76, 60, 0); | |
| } | |
| } | |
| @media (max-width: 768px) { | |
| .benchmark-stats { | |
| flex-direction: column; | |
| align-items: center; | |
| gap: 10px; | |
| } | |
| } | |
| /* Rotation CAPTCHA styles */ | |
| .rotation-layout { | |
| display: flex; | |
| justify-content: space-around; | |
| align-items: center; | |
| width: 100%; | |
| margin-bottom: 15px; | |
| } | |
| .reference-image-container, | |
| .object-image-container { | |
| flex: 0 0 45%; | |
| text-align: center; | |
| position: relative; | |
| } | |
| .reference-image-container::before, | |
| .object-image-container::before { | |
| content: attr(data-label); | |
| display: block; | |
| font-size: 0.8rem; | |
| color: #666; | |
| margin-bottom: 5px; | |
| } | |
| .reference-image-container::before { | |
| content: "Reference"; | |
| } | |
| .object-image-container::before { | |
| content: "Rotate to match"; | |
| } | |
| #reference-image, | |
| #object-image { | |
| max-width: 100%; | |
| max-height: 200px; | |
| object-fit: contain; | |
| } | |
| /* Rotation controls */ | |
| .rotation-controls { | |
| display: flex; | |
| justify-content: center; | |
| margin-top: 15px; | |
| gap: 20px; | |
| } | |
| .rotate-left, | |
| .rotate-right { | |
| width: 40px; | |
| height: 40px; | |
| border-radius: 50%; | |
| background-color: #2980b9; | |
| color: white; | |
| font-size: 20px; | |
| border: none; | |
| cursor: pointer; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| transition: background-color 0.2s; | |
| } | |
| .rotate-left:hover, | |
| .rotate-right:hover { | |
| background-color: #3498db; | |
| } | |
| .rotate-left:active, | |
| .rotate-right:active { | |
| background-color: #1c638d; | |
| } | |
| /* Submit button for rotation puzzles */ | |
| .rotation-submit { | |
| text-align: center; | |
| margin-top: 15px; | |
| } | |
| .submit-rotation { | |
| background-color: #27ae60; | |
| color: white; | |
| border: none; | |
| border-radius: 4px; | |
| padding: 8px 16px; | |
| font-size: 16px; | |
| cursor: pointer; | |
| transition: background-color 0.2s; | |
| } | |
| .submit-rotation:hover { | |
| background-color: #2ecc71; | |
| } | |
| .submit-rotation:active { | |
| background-color: #219653; | |
| } | |
| /* Ensure the puzzle container properly displays rotation puzzles */ | |
| .puzzle-image-wrapper { | |
| width: 100%; | |
| max-width: 600px; | |
| margin: 0 auto; | |
| } | |
| /* Responsive adjustments */ | |
| @media (max-width: 768px) { | |
| .rotation-layout { | |
| flex-direction: column; | |
| gap: 20px; | |
| } | |
| .reference-image-container, | |
| .object-image-container { | |
| flex: 0 0 100%; | |
| } | |
| } | |
| /* Slider Puzzle Styles */ | |
| .background-container { | |
| position: relative; | |
| width: 100%; | |
| max-width: 500px; | |
| margin: 0 auto; | |
| box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); | |
| } | |
| .slider-component { | |
| position: absolute; | |
| cursor: move; | |
| user-select: none; | |
| touch-action: none; | |
| box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3); | |
| transition: box-shadow 0.2s ease; | |
| } | |
| .slider-component:hover { | |
| box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4); | |
| } | |
| .slider-component:active { | |
| box-shadow: 0 5px 20px rgba(0, 0, 0, 0.5); | |
| } | |
| .slider-submit { | |
| margin-top: 15px; | |
| text-align: center; | |
| } | |
| .submit-slider { | |
| background-color: #4CAF50; | |
| color: white; | |
| border: none; | |
| padding: 8px 20px; | |
| font-size: 16px; | |
| cursor: pointer; | |
| border-radius: 4px; | |
| transition: background-color 0.3s ease; | |
| } | |
| .submit-slider:hover { | |
| background-color: #45a049; | |
| } | |
| .submit-slider:disabled { | |
| background-color: #cccccc; | |
| cursor: not-allowed; | |
| } | |
| /* Hover instructions for the slider */ | |
| .background-container::before { | |
| content: "Drag the puzzle piece to the correct position"; | |
| position: absolute; | |
| top: -30px; | |
| left: 50%; | |
| transform: translateX(-50%); | |
| padding: 5px 10px; | |
| background-color: rgba(0, 0, 0, 0.7); | |
| color: white; | |
| border-radius: 4px; | |
| font-size: 12px; | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| pointer-events: none; | |
| white-space: nowrap; | |
| } | |
| .background-container:hover::before { | |
| opacity: 1; | |
| } | |
| /* Add responsive styles for smaller screens */ | |
| @media (max-width: 600px) { | |
| .background-container { | |
| max-width: 100%; | |
| } | |
| .slider-component img { | |
| max-width: 100%; | |
| } | |
| } | |
| /* Target area marker for slider puzzle debug */ | |
| .target-area { | |
| position: absolute; | |
| border-radius: 50%; | |
| border: 2px dashed #00cc00; | |
| background-color: rgba(0, 204, 0, 0.2); | |
| pointer-events: none; | |
| z-index: 5; | |
| animation: pulse-green 1.5s infinite alternate; | |
| } | |
| @keyframes pulse-green { | |
| from { | |
| box-shadow: 0 0 0 0 rgba(0, 204, 0, 0.4); | |
| background-color: rgba(0, 204, 0, 0.2); | |
| } | |
| to { | |
| box-shadow: 0 0 0 10px rgba(0, 204, 0, 0); | |
| background-color: rgba(0, 204, 0, 0.3); | |
| } | |
| } | |
| /* Debugging coordinates label */ | |
| .coords-label { | |
| position: absolute; | |
| background-color: rgba(0, 0, 0, 0.7); | |
| color: white; | |
| padding: 2px 5px; | |
| font-size: 10px; | |
| border-radius: 3px; | |
| white-space: nowrap; | |
| z-index: 20; | |
| } | |
| /* Unusual Detection Grid Styles */ | |
| .unusual-detection-grid { | |
| display: grid; | |
| max-width: 600px; | |
| margin: 0 auto; | |
| background-color: #fff; | |
| box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); | |
| } | |
| .grid-cell { | |
| position: relative; | |
| cursor: pointer; | |
| border: 2px solid #333; | |
| overflow: hidden; | |
| transition: transform 0.2s ease; | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| min-height: 80px; | |
| } | |
| .grid-cell:hover { | |
| transform: scale(0.98); | |
| } | |
| .cell-image { | |
| width: 100%; | |
| height: 100%; | |
| object-fit: cover; | |
| display: block; | |
| } | |
| .cell-overlay { | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| background-color: rgba(0, 120, 255, 0.5); | |
| opacity: 0; | |
| transition: opacity 0.2s ease; | |
| pointer-events: none; | |
| z-index: 2; | |
| } | |
| .checkmark { | |
| position: absolute; | |
| top: 50%; | |
| left: 50%; | |
| transform: translate(-50%, -50%); | |
| color: white; | |
| font-size: 32px; | |
| font-weight: bold; | |
| opacity: 0; | |
| transition: opacity 0.2s ease; | |
| pointer-events: none; | |
| z-index: 3; | |
| text-shadow: 1px 1px 3px rgba(0,0,0,0.7); | |
| } | |
| .submit-unusual { | |
| margin-top: 15px; | |
| padding: 10px 20px; | |
| background-color: #4CAF50; | |
| color: white; | |
| border: none; | |
| border-radius: 4px; | |
| cursor: pointer; | |
| font-size: 16px; | |
| } | |
| .submit-unusual:hover { | |
| background-color: #45a049; | |
| } | |
| .submit-unusual:disabled { | |
| background-color: #cccccc; | |
| cursor: not-allowed; | |
| } | |
| /* End Unusual Detection Styles */ | |
| /* Image Matching Styles */ | |
| .matching-layout { | |
| display: flex; | |
| justify-content: space-around; | |
| align-items: center; | |
| width: 100%; | |
| margin-bottom: 15px; | |
| } | |
| .option-image-container { | |
| flex: 0 0 45%; | |
| text-align: center; | |
| position: relative; | |
| } | |
| .option-image-container::before { | |
| content: "Match This"; | |
| } | |
| #option-image { | |
| max-width: 100%; | |
| max-height: 200px; | |
| object-fit: contain; | |
| } | |
| /* Navigation controls */ | |
| .image-matching-controls { | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| margin-top: 15px; | |
| gap: 20px; | |
| } | |
| .navigate-left, | |
| .navigate-right { | |
| width: 40px; | |
| height: 40px; | |
| border-radius: 50%; | |
| background-color: #2980b9; | |
| color: white; | |
| font-size: 20px; | |
| border: none; | |
| cursor: pointer; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| transition: background-color 0.2s; | |
| } | |
| .navigate-left:hover, | |
| .navigate-right:hover { | |
| background-color: #3498db; | |
| } | |
| .navigate-left:active, | |
| .navigate-right:active { | |
| background-color: #1c638d; | |
| } | |
| /* Indicator dots */ | |
| .indicator-dots { | |
| display: flex; | |
| gap: 5px; | |
| } | |
| .dot { | |
| width: 10px; | |
| height: 10px; | |
| border-radius: 50%; | |
| background-color: #bdc3c7; | |
| transition: background-color 0.2s; | |
| } | |
| .dot.active { | |
| background-color: #2980b9; | |
| } | |
| /* Submit button for image matching */ | |
| .image-matching-submit { | |
| text-align: center; | |
| margin-top: 15px; | |
| } | |
| .submit-image-matching { | |
| background-color: #27ae60; | |
| color: white; | |
| border: none; | |
| border-radius: 4px; | |
| padding: 8px 16px; | |
| font-size: 16px; | |
| cursor: pointer; | |
| transition: background-color 0.2s; | |
| } | |
| .submit-image-matching:hover { | |
| background-color: #2ecc71; | |
| } | |
| .submit-image-matching:active { | |
| background-color: #219653; | |
| } | |
| /* Responsive adjustments */ | |
| @media (max-width: 768px) { | |
| .matching-layout { | |
| flex-direction: column; | |
| gap: 20px; | |
| } | |
| .reference-image-container, | |
| .option-image-container { | |
| flex: 0 0 100%; | |
| } | |
| } | |
| /* Add styles for Patch Select grid */ | |
| .patch-select-grid { | |
| width: 100%; | |
| max-width: 500px; | |
| margin: 0 auto; | |
| border: 2px solid #ccc; | |
| overflow: hidden; | |
| position: relative; | |
| height: 450px; /* Set a fixed height */ | |
| box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); | |
| } | |
| .patch-select-image-container { | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| z-index: 0; | |
| } | |
| .patch-select-image-container img { | |
| object-fit: cover; | |
| width: 100%; | |
| height: 100%; | |
| } | |
| .patch-select-cell { | |
| position: relative; | |
| z-index: 1; | |
| min-height: 80px; /* Increase minimum height */ | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| border: 2px solid rgba(255, 255, 255, 0.5); | |
| } | |
| .patch-select-cell:hover { | |
| background-color: rgba(0, 123, 255, 0.2); | |
| border: 3px solid rgba(0, 123, 255, 0.7); | |
| } | |
| .patch-select-cell.selected { | |
| background-color: rgba(0, 123, 255, 0.3); | |
| border: 3px solid rgba(0, 123, 255, 0.8); | |
| box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.5); | |
| } | |
| /* Object Match Styles */ | |
| .object-match-container { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| gap: 15px; | |
| margin-bottom: 20px; | |
| } | |
| .object-match-horizontal-layout { | |
| display: flex; | |
| flex-direction: row; | |
| justify-content: center; | |
| align-items: center; | |
| gap: 30px; | |
| width: 100%; | |
| } | |
| .object-match-reference, | |
| .object-match-options { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| background-color: #f5f5f5; | |
| border-radius: 8px; | |
| padding: 15px; | |
| box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); | |
| width: 300px; | |
| position: relative; | |
| } | |
| .object-match-reference-img, | |
| .object-match-option-img { | |
| max-width: 100%; | |
| height: auto; | |
| border-radius: 4px; | |
| margin-bottom: 10px; | |
| max-height: 200px; | |
| object-fit: contain; | |
| } | |
| .object-match-caption { | |
| font-weight: bold; | |
| font-size: 16px; | |
| margin-top: 5px; | |
| } | |
| .object-match-controls { | |
| display: flex; | |
| justify-content: space-between; | |
| width: 100%; | |
| margin-top: 10px; | |
| } | |
| .object-match-arrow { | |
| background-color: #4CAF50; | |
| color: white; | |
| border: none; | |
| border-radius: 50%; | |
| width: 40px; | |
| height: 40px; | |
| font-size: 18px; | |
| cursor: pointer; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| } | |
| .object-match-arrow:hover { | |
| background-color: #45a049; | |
| } | |
| .object-match-indicators { | |
| display: flex; | |
| justify-content: center; | |
| gap: 8px; | |
| margin-top: 15px; | |
| } | |
| .object-match-dot { | |
| width: 10px; | |
| height: 10px; | |
| background-color: #ddd; | |
| border-radius: 50%; | |
| cursor: pointer; | |
| } | |
| .object-match-dot.active { | |
| background-color: #4CAF50; | |
| } | |
| .object-match-submit { | |
| padding: 10px 20px; | |
| background-color: #4CAF50; | |
| border: none; | |
| color: white; | |
| border-radius: 4px; | |
| cursor: pointer; | |
| font-size: 16px; | |
| margin-top: 15px; | |
| } | |
| .object-match-submit:hover { | |
| background-color: #45a049; | |
| } | |
| /* Responsive adjustments for Object Match */ | |
| @media (max-width: 768px) { | |
| .object-match-horizontal-layout { | |
| flex-direction: column; | |
| gap: 20px; | |
| } | |
| .object-match-reference, | |
| .object-match-options { | |
| width: 100%; | |
| } | |
| } | |
| /* Dart Count Styles */ | |
| .dart-count-container { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| gap: 15px; | |
| margin-bottom: 20px; | |
| } | |
| .dart-count-horizontal-layout { | |
| display: flex; | |
| flex-direction: row; | |
| justify-content: center; | |
| align-items: center; | |
| gap: 30px; | |
| width: 100%; | |
| } | |
| .dart-count-reference, | |
| .dart-count-options { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| background-color: #f5f5f5; | |
| border-radius: 8px; | |
| padding: 15px; | |
| box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); | |
| width: 300px; | |
| position: relative; | |
| } | |
| .dart-count-reference-img, | |
| .dart-count-option-img { | |
| max-width: 100%; | |
| height: auto; | |
| border-radius: 4px; | |
| margin-bottom: 10px; | |
| max-height: 200px; | |
| object-fit: contain; | |
| } | |
| .dart-count-caption { | |
| font-weight: bold; | |
| font-size: 16px; | |
| margin-top: 5px; | |
| } | |
| .dart-count-controls { | |
| display: flex; | |
| justify-content: space-between; | |
| width: 100%; | |
| margin-top: 10px; | |
| } | |
| .dart-count-arrow { | |
| background-color: #4CAF50; | |
| color: white; | |
| border: none; | |
| border-radius: 50%; | |
| width: 40px; | |
| height: 40px; | |
| font-size: 18px; | |
| cursor: pointer; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| } | |
| .dart-count-arrow:hover { | |
| background-color: #45a049; | |
| } | |
| .dart-count-indicators { | |
| display: flex; | |
| justify-content: center; | |
| gap: 8px; | |
| margin-top: 15px; | |
| } | |
| .dart-count-dot { | |
| width: 10px; | |
| height: 10px; | |
| background-color: #ddd; | |
| border-radius: 50%; | |
| cursor: pointer; | |
| } | |
| .dart-count-dot.active { | |
| background-color: #4CAF50; | |
| } | |
| .dart-count-submit { | |
| padding: 10px 20px; | |
| background-color: #4CAF50; | |
| border: none; | |
| color: white; | |
| border-radius: 4px; | |
| cursor: pointer; | |
| font-size: 16px; | |
| margin-top: 15px; | |
| } | |
| .dart-count-submit:hover { | |
| background-color: #45a049; | |
| } | |
| /* Responsive adjustments for Dart Count */ | |
| @media (max-width: 768px) { | |
| .dart-count-horizontal-layout { | |
| flex-direction: column; | |
| gap: 20px; | |
| } | |
| .dart-count-reference, | |
| .dart-count-options { | |
| width: 100%; | |
| } | |
| } | |
| /* Difficulty stars styling */ | |
| .difficulty-stars { | |
| display: inline-block; | |
| margin-left: 10px; | |
| margin-bottom: 5px; | |
| } | |
| .difficulty-stars .star { | |
| color: #FFD700; /* Yellow color for stars */ | |
| font-size: 24px; /* Increased size */ | |
| margin-right: 5px; /* Increased spacing */ | |
| text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3); /* Added shadow for better visibility */ | |
| } | |
| .puzzle-difficulty { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| margin-top: 5px; | |
| margin-bottom: 15px; | |
| font-size: 16px; /* Increased text size */ | |
| font-weight: bold; /* Made text bold */ | |
| color: #333; | |
| background-color: #f8f8f8; /* Light background */ | |
| padding: 10px; | |
| border-radius: 5px; | |
| box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); | |
| max-width: 300px; | |
| margin-left: auto; | |
| margin-right: auto; | |
| } | |
| .puzzle-difficulty span { | |
| margin-right: 5px; | |
| } | |
| /* === Special Effects for Answer Results === */ | |
| /* Fireworks container */ | |
| .fireworks-container { | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| pointer-events: none; | |
| z-index: 9999; | |
| overflow: hidden; | |
| } | |
| /* Individual firework particles */ | |
| .firework { | |
| position: absolute; | |
| width: 8px; | |
| height: 8px; | |
| border-radius: 50%; | |
| animation: explode 1.5s forwards; | |
| opacity: 0; | |
| box-shadow: 0 0 10px 2px rgba(255, 255, 255, 0.7); | |
| } | |
| @keyframes explode { | |
| 0% { | |
| transform: translateY(0) scale(0.1); | |
| opacity: 0; | |
| } | |
| 25% { | |
| opacity: 1; | |
| } | |
| 50% { | |
| opacity: 0.8; | |
| } | |
| 100% { | |
| transform: translateY(-250px) scale(1.2); | |
| opacity: 0; | |
| } | |
| } | |
| /* Happy face animation */ | |
| .happy-face-container { | |
| position: fixed; | |
| top: 50%; | |
| left: 50%; | |
| transform: translate(-50%, -50%); | |
| z-index: 9999; | |
| pointer-events: none; | |
| font-size: 180px; | |
| animation: happy-face-animation 2.5s forwards; | |
| opacity: 0; | |
| text-shadow: 0 0 20px rgba(255, 215, 0, 0.8); | |
| } | |
| @keyframes happy-face-animation { | |
| 0% { | |
| opacity: 0; | |
| transform: translate(-50%, -50%) scale(0.1) rotate(-20deg); | |
| } | |
| 20% { | |
| opacity: 1; | |
| transform: translate(-50%, -50%) scale(1.3) rotate(10deg); | |
| } | |
| 50% { | |
| transform: translate(-50%, -50%) scale(1.2) rotate(-5deg); | |
| } | |
| 80% { | |
| opacity: 1; | |
| transform: translate(-50%, -50%) scale(1.3) rotate(0deg); | |
| } | |
| 100% { | |
| opacity: 0; | |
| transform: translate(-50%, -50%) scale(0.8); | |
| } | |
| } | |
| /* Sad face animation */ | |
| .sad-face-container { | |
| position: fixed; | |
| top: 50%; | |
| left: 50%; | |
| transform: translate(-50%, -50%); | |
| z-index: 9999; | |
| pointer-events: none; | |
| font-size: 150px; | |
| animation: sad-face-animation 2s forwards; | |
| opacity: 0; | |
| } | |
| @keyframes sad-face-animation { | |
| 0% { | |
| opacity: 0; | |
| transform: translate(-50%, -50%) scale(0.1); | |
| } | |
| 50% { | |
| opacity: 1; | |
| transform: translate(-50%, -50%) scale(1.2); | |
| } | |
| 100% { | |
| opacity: 0; | |
| transform: translate(-50%, -50%) scale(0.8); | |
| } | |
| } | |
| /* Bounce animation for correct message */ | |
| .result-message.correct { | |
| color: #2ecc71; | |
| animation: bounce 0.5s; | |
| font-size: 1.5em; | |
| text-shadow: 0 0 5px rgba(46, 204, 113, 0.5); | |
| } | |
| @keyframes bounce { | |
| 0%, 20%, 50%, 80%, 100% { | |
| transform: translateY(0); | |
| } | |
| 40% { | |
| transform: translateY(-20px); | |
| } | |
| 60% { | |
| transform: translateY(-10px); | |
| } | |
| } | |
| /* Shake animation for incorrect message */ | |
| .result-message.incorrect { | |
| color: #e74c3c; | |
| animation: shake 0.5s; | |
| font-size: 1.5em; | |
| text-shadow: 0 0 5px rgba(231, 76, 60, 0.5); | |
| } | |
| @keyframes shake { | |
| 0%, 100% { | |
| transform: translateX(0); | |
| } | |
| 10%, 30%, 50%, 70%, 90% { | |
| transform: translateX(-5px); | |
| } | |
| 20%, 40%, 60%, 80% { | |
| transform: translateX(5px); | |
| } | |
| } |