:root {
  --color-bg: #000000;
  --color-text: #00ff41; 
  --font-mono: 'Courier New', Courier, monospace;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
  background-color: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-mono);
  min-height: 100dvh;
  display: flex; flex-direction: column;
  overflow-y: auto;
}
.hidden { display: none !important; }
.blink { animation: blink 1s step-end infinite; }
@keyframes blink { 50% { opacity: 0; } }
.loader {
  position: fixed; inset: 0; background: var(--color-bg); z-index: 1000;
  display: flex; justify-content: center; align-items: center; font-weight: bold;
}
.app {
  flex: 1; display: flex; flex-direction: column; padding: 10px;
}
.header {
  display: flex; justify-content: space-between; align-items: center;
  border-bottom: 1px solid var(--color-text); padding-bottom: 10px; margin-bottom: 10px;
}
.header h1 { font-size: 16px; font-weight: normal; }
.cam-btn {
  background: transparent; border: 1px solid var(--color-text);
  color: var(--color-text); font-family: var(--font-mono); padding: 5px 10px;
  cursor: pointer; transition: all 0.2s;
}
.cam-btn:active { background: var(--color-text); color: var(--color-bg); }
.video-container {
  flex: 1; display: flex; justify-content: center; align-items: center;
  overflow: hidden; position: relative;
  background: #050505; border: 1px solid rgba(0,255,65,0.3);
}
.ascii-display {
  font-family: var(--font-mono);
  font-size: 8px; 
  line-height: 8px;
  letter-spacing: 2px;
  white-space: pre;
  text-align: center;
  transform: scaleX(-1); 
  width: 100%;
  height: 100%;
  display: flex; justify-content: center; align-items: center;
}
.footer {
  margin-top: 10px; border-top: 1px solid var(--color-text); padding-top: 10px;
  font-size: 10px; text-align: center; opacity: 0.7;
}
