| | #camera-feed, #captured-image { |
| | width: 100%; |
| | height: 100%; |
| | object-fit: cover; |
| | border: 1px solid black; |
| | } |
| |
|
| | .scan-effect { |
| | position: absolute; |
| | top: -100%; |
| | left: 0; |
| | width: 100%; |
| | height: 10px; |
| | background: linear-gradient(to bottom, |
| | rgba(0,255,255,0) 0%, |
| | rgba(0,255,255,0.8) 50%, |
| | rgba(0,255,255,0) 100%); |
| | opacity: 0; |
| | box-shadow: 0 0 10px rgba(0,255,255,0.5); |
| | } |
| |
|
| | @keyframes pulse { |
| | 0% { transform: scale(1); } |
| | 50% { transform: scale(1.05); } |
| | 100% { transform: scale(1); } |
| | } |
| |
|
| | .pulse { |
| | animation: pulse 2s infinite; |
| | } |
| |
|
| | button { |
| | margin: 10px 0; |
| | padding: 10px 20px; |
| | font-size: 16px; |
| | } |
| |
|
| | input[type="text"] { |
| | margin: 10px 0; |
| | padding: 5px; |
| | font-size: 16px; |
| | } |
| |
|
| | .camera-container { |
| | position: relative; |
| | overflow: hidden; |
| | border-radius: 0.5rem; |
| | width: 320px; |
| | height: 240px; |
| | margin: 20px auto; |
| | } |
| |
|
| | body { |
| | background-image: url('/images/background.jpg'); |
| | background-size: cover; |
| | background-position: center; |
| | background-repeat: no-repeat; |
| | } |
| |
|
| | .bg-transparent { |
| | background-color: rgba(128, 128, 128, 0); |
| | } |
| |
|
| |
|
| | @font-face { |
| | font-family: 'GeistMono'; |
| | src: url('/static/fonts/GeistMono-Black.ttf') format('truetype'); |
| | font-weight: normal; |
| | font-style: normal; |
| | } |
| |
|
| | .icon-geistmono { |
| | font-family: 'GeistMono', monospace; |
| | } |