.teg-app {
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  background: var(--bg);
}
.teg-stage {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 28px;
  padding: 0 24px;
}
.teg-button {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  border: 1px solid var(--border);
  background: var(--bg-elev);
  color: var(--fg);
  font-family: var(--serif);
  font-size: 36px;
  cursor: pointer;
  box-shadow: var(--shadow-card);
  transition: transform 80ms ease, background 200ms ease, border-color 200ms ease, box-shadow 200ms ease;
}
.teg-button:hover { box-shadow: var(--shadow-hover); }
.teg-button:active { transform: scale(0.96); }
.teg-button[data-state="warmed"] {
  background: var(--bg-elev-2);
  border-color: var(--accent);
}
.teg-button[data-state="dimmed"] {
  opacity: 0.6;
}
.teg-button[data-state="hum"] {
  animation: teg-hum 4s ease-in-out infinite;
}
@keyframes teg-hum {
  0%, 100% { box-shadow: var(--shadow-card); }
  50% { box-shadow: 0 0 0 8px var(--accent-soft); }
}
.teg-mark {
  display: inline-block;
  letter-spacing: 0.06em;
}
.teg-trace {
  font-family: var(--mono);
  font-size: 12px;
  color: var(--fg-faint);
  letter-spacing: 0.04em;
  text-align: center;
  min-height: 1.4em;
  max-width: 28ch;
  line-height: 1.4;
}
.teg-trace.faint { opacity: 0.5; }
.teg-trace .glyph {
  font-size: 16px;
  color: var(--accent);
  margin-right: 6px;
}
